Предположение об ошибке черный ящик

  1. Анализ причинно-следственных связей

Метод анализа
причинно-следственных связей помогает
системно выбирать высокорезультативные
тесты. Он дает полезный побочный эффект,
позволяя обнаруживать неполноту и
неоднозначность исходных спецификаций.

Для использования
метода необходимо понимание булевской
логики (логических операторов — и, или,
не). Построение тестов осуществляется
в несколько этапов.

1. Спецификация
разбивается на «рабочие » участки, так
как таблицы причинно-следственных
связей становятся громоздкими при
применении метода к большим спецификациям.
Например, при тестировании компилятора
в качестве рабочего участка можно
рассматривать отдельный оператор языка.

2. В спецификации
определяются множество причин и множество
следствий. Причина
есть отдельное входное условие или
класс эквивалентности входных условий.
Следствие
есть выходное условие или преобразование
системы. Каждым причине и следствию
приписывается отдельный номер.

3. На основе анализа
семантического (смыслового) содержания
спецификации строится таблица истинности,
в которой последовательно перебираются
все возможные
комбинации причин и определяются
следствия каждой комбинации причин.
Таблица снабжается примечаниями,
задающими ограничения и описывающими
комбинации причин и/или следствий,
которые являются невозможными из-за
синтаксических или внешних ограничений.
Аналогично, при необходимости строится
таблица истинности для класса
эквивалентности.

Примечание.
При этом можно использовать следующие
приемы:

  • По возможности
    выделять независимые группы
    причинно-следственных связей в отдельные
    таблицы.

  • Истина обозначается
    «1». Ложь обозначается «0». Для
    обозначения безразличных состояний
    условий применять обозначение «Х»,
    которое предполагает произвольное
    значение условия (0 или 1).

4. Каждая строка
таблицы истинности преобразуется в
тест. При этом по возможности следует
совмещать тесты из независимых таблиц.

Недостаток метода
заключается в том, что он неадекватно
исследует граничные условия.

  1. Предположение об ошибке

Часто программист
с большим опытом выискивает ошибки «без
всяких методов». При этом он
подсознательно использует метод
«предположение об ошибке». Процедура
метода предположения об ошибке в
значительной степени основана на
интуиции. Основная идея метода состоит
в том, чтобы перечислить в некотором
списке возможные ошибки или ситуации,
в которых они могут появиться, а затем
на основе этого списка составить тесты.
Другими словами, требуется перечислить
те специальные случаи, которые могут
быть не учтены при проектировании.

  1. Пример применения методов тестирования «черным ящиком»

Пусть необходимо
выполнить тестирование программы,
определяющей точку пересечения двух
прямых на плоскости. Попутно, она должна
определять параллельность прямой одной
их осей координат.

В основе программы
лежит решение системы линейных уравнений:

Ax + By
= C
и
Dx + Ey = F.

5.1. Метод эквивалентных
разбиений

Используя метод
эквивалентных разбиений,

получаем для всех коэффициентов один
правильный класс эквивалентности
(коэффициент — вещественное число) и
один неправильный (коэффициент — не
вещественное число). Откуда можно
предложить 7 тестов:

1) все коэффициенты
— вещественные числа;

2)- 7) поочередно
каждый из коэффициентов — не вещественное
число.

5.2. Метод граничных
условий

Можно считать, что
для исходных данных граничные условия
отсутствуют (коэффициенты — «любые»
вещественные числа).

Для результатов
— получаем, что возможны варианты:
единственное решение, прямые сливаются
(множество решений), прямые параллельны
(отсутствие решений). Следовательно,
можно предложить тесты, с результатами
внутри области:

  1. результат —
    единственное решение (

    0);

  2. результат —
    множество решений (
    = 0 и x=y=0);

  3. результат —
    отсутствие решений (
    = 0, но x0
    или y0);

и с результатами
на границе:

  1.  =
    0,01;

  2.  =
    -0,01;

  3.  = 0,
    x
    =
    0,01, y
    =
    0;

  4.  = 0,
    y
    =
    -0,01, x
    =
    0.

5.3. Метод анализа
причинно-следственных связей

Определяем множество
условий.

а)
для определения типа прямой:

— для определения
типа и существования первой прямой;

— для определения
типа и существования второй прямой;

б) для определения
точки пересечения:

 = 0

x
= 0

y
= 0

Выделяем
три группы причинно-следственных связей
(определение типа и существования первой
линии, определение типа и существования
второй линии, определение точки
пересечения) и строим таблицы
истинности.

A=0

B=0

C=0

Результат

0

0

X

прямая общего положения

0

1

0

прямая, параллельная оси ОХ

0

1

1

ось ОХ

1

0

0

прямая, параллельная оси ОУ

1

0

1

ось ОУ

1

1

Х

множество точек плоскости

Такая
же таблица строится для второй
прямой.

 = 0

x = 0

y = 0

Ед. реш.

Мн.реш.

Реш. нет

0

X

X

1

0

0

1

0

X

0

0

1

1

X

0

0

0

1

1

1

1

0

1

0

Каждая
строка этих таблиц преобразуется в
тест. При возможности (с учетом
независимости групп) берутся данные,
соответствующие строкам сразу двух или
всех трех таблиц.

В результате к уже
имеющимся тестам добавляются:

  1. проверки всех
    случаев расположения обеих прямых — 6
    тестов по первой прямой вкладываются
    в 6 тестов по второй прямой так, чтобы
    варианты не совпадали, — 6 тестов;

  2. выполняется
    отдельная проверка несовпадения условия
    x
    = 0 или y
    = 0 (в
    зависимости от того, какой тест был
    выбран по методу граничных условий) —
    тест также можно совместить с предыдущими
    6 тестами;

5.4. Метод предположения
об ошибке

Добавим еще один
тест: все коэффициенты — нули.

Всего получили 20
тестов по всем четырем методикам. Если
еще попробовать вложить независимые
проверки, то возможно число тестов можно
еще сократить. (Не
забудьте для каждого теста заранее
указывать результат!
).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

«Чёрный ящик» — тестирование функционального поведения программы с точки зрения внешнего мира (текст программы не используется).

Содержание

  • 1 Понятие «чёрного» ящика
  • 2 Исследование поведения «черного» ящика
  • 3 Тестирование по стратегии чёрного ящика
    • 3.1 Свойства правильно выбранного теста
    • 3.2 Методы стратегии чёрного ящика
      • 3.2.1 Эквивалентное разбиение
      • 3.2.2 Анализ граничных значений
      • 3.2.3 Анализ причинно-следственных связей
      • 3.2.4 Предположение об ошибке

[править] Понятие «чёрного» ящика

Под «чёрным ящиком» понимается объект исследования, внутреннее устройство которого неизвестно. Понятие «чёрный ящик» предложено У. Р. Эшби. В кибернетике оно позволяет изучать поведение систем, то есть их реакций на разнообразные внешние воздействия и в то же время абстрагироваться от их внутреннего устройства. На рис. 1 приведено схемное построение входов X(x1,x2,…,xn), выходов Y(y1,y2,…,ym), характеризуемых функцией перехода (δ) и функцией выхода (λ) «чёрного» ящика.

Манипулируя только лишь со входами и выходами, можно проводить определенные исследования. На практике всегда возникает вопрос, насколько гомоморфизм «чёрного» ящика отражает адекватность его изучаемой модели, то есть как полно в модели отражаются основные свойства оригинала.

Описание любой системы управления во времени характеризуется картиной последовательности её состояний в процессе движения к стоящей перед нею цели. Преобразование в системе управления может быть либо взаимно-однозначным и тогда оно называется изоморфным, либо только однозначным, в одну сторону. В таком случае преобразование называют гомоморфным.

«Чёрный» ящик представляет собой сложную гомоморфную модель кибернетической системы, в которой соблюдается разнообразие. Он только тогда является удовлетворительной моделью системы, когда содержит такое количество информации, которое отражает разнообразие системы. Можно предположить, что чем большее число возмущений действует на входы модели системы, тем большее разнообразие должен иметь регулятор.

В настоящее время известны два вида «чёрных» ящиков. К первому виду относят любой «чёрный» ящик, который может рассматриваться как автомат, называемый конечным или бесконечным. Поведение таких «чёрных» ящиков известно. Ко второму виду относятся такие «чёрные» ящики, поведение которых может быть наблюдаемо только в эксперименте. В таком случае в явной или неявной форме высказывается гипотеза о предсказуемости поведения «чёрного» ящика в вероятностном смысле. Без предварительной гипотезы невозможно любое обобщение, или, как говорят, невозможно сделать индуктивное заключение на основе экспериментов с «чёрным» ящиком. Для обозначения модели «чёрного» ящика Н. Винером [2] предложено понятие «белого» ящика. «Белый» ящик состоит из известных компонентов, то есть известных X, Y, δ, λ. Его содержимое специально подбирается для реализации той же зависимости выхода от входа, что и у соответствующего «чёрного» ящика. В процессе проводимых исследований и при обобщениях, выдвижении гипотез и установления закономерностей возникает необходимость корректировки организации «белого» ящика и смены моделей. В связи с этим, при моделировании исследователь должен обязательно многократно обращаться к схеме отношений «чёрный» — «белый» ящик.

[править] Исследование поведения «черного» ящика

Рассмотрим, как изучается и исследуется поведение «черного» ящика второго вида. Предположим, что дана некоторая система управления, внутреннее строение которой неизвестно. Система управления имеет входы X(x1,x2,x3,…,xn) и выходы Y(y1,y2,y3,…,ym).

Способ исследования поведения данного «черного» ящика заключается в проведении эксперимента, результаты которого можно представить в виде табл. 1.

Такой способ исследования «черного» ящика называется протокольным. Значения входных величин в моменты времени t1,t2,…,tk) могут выбираться произвольно.

Таблица 1

Способ исследования «черного» ящика

Состояние входов Состояние выходов Время
x1(t1),x2(t1),…,xn(t1) y1(t1),y2(t1),…,xn(t1) t1
y1(t2),y2(t2),…,xn(t2) y1(t2),y2(t2),…,yn(t2) t2
………… ………… ….
………… ………… ….
y1(tk),y2(tk),…,xn(tk) y1(tk),y2(tk),…,yn(tk) tk

Другой способ исследования заключается в подаче на входы некоторых стандартных последовательностей. Этот способ особенно привлекателен, потому что позволяет сравнивать поведение нескольких «черных» ящиков с условием выбора таких, которые будут соответствовать предъявляемым требованиям.

Исследование систем управления связано с понятиями «вероятностный автомат», «вероятностная система», что требует изучения их вероятностных свойств. Для этих целей можно построить матрицу вероятностей (табл. 2), в которой для каждого входа xi и каждого выхода yi указывается условная вероятность pi, что yi возникает в ответ на xi [7], приведенной в табл. 2.

Разработка методов построения математических моделей «черного» ящика является одной из важных кибернетических проблем. При условии наличия математической модели «черного» ящика появляется возможность отнести его к какому-либо одному классу, все системы которого изоморфны по поведению.

Создание математического описания «черного» ящика является своего рода искусством. В некоторых случаях удается сформировать алгоритм, в соответствии с которым «черный» ящик реагирует на произвольный входной сигнал. Для большинства же случаев делаются попытки установить дифференциальные уравнения, которые связывают реакцию «черного» ящика с его входами или, как говорят, с его входными стимулами.

Для науки метод «чёрный» ящик имеет весьма большое значение. С его помощью в науке были сделаны очень многие выдающиеся открытия. Например, ученый Гарвей еще в XVII веке предугадал строение сердца. Он моделировал работу сердца насосом, позаимствовав идеи из совершенно другой области современных ему знаний — гидравлики. Практическая ценность метода «чёрный» ящик заключается во-первых, в возможности исследования очень сложных динамических систем, и, во-вторых, в возможности замены одного «ящика» другим. Окружающая действительность и биология дают массу примеров выявления строения систем методом «чёрного» ящика.

[править] Тестирование по стратегии чёрного ящика

В этой стратегии программа рассматривается как чёрный ящик. Целью тестирования ставится выяснение обстоятельств, в которых поведение программы не соответствует спецификации. Для обнаружения всех ошибок в программе необходимо выполнить исчерпывающее тестирование, то есть тестирование на всевозможных наборах данных. Для большинства программ такое невозможно, поэтому применяют разумное тестирование, при котором тестирование программы ограничивается небольшим подмножеством всевозможных наборов данных. При этом необходимо выбирать наиболее подходящие подмножества, подмножества с наивысшей вероятностью обнаружения ошибок.

[править] Свойства правильно выбранного теста

  1. Уменьшает более, чем на одно число других тестов, которые должны быть разработаны для разумного тестирования.
  2. Покрывает значительную часть других возможных тестов, что в некоторой степени свидетельствует о наличии или отсутствии ошибки до и после ограниченного множества тестов.

[править] Методы стратегии чёрного ящика

  1. Эквивалентное разбиение.
  2. Анализ граничных значений.
  3. Анализ причинно-следственных связей.
  4. Предположение об ошибке.

Рассмотрим подробнее каждый из этих методов:

[править] Эквивалентное разбиение

Основу метода составляют два положения:

  1. Исходные данные необходимо разбить на конечное число классов эквивалентности. В одном классе эквивалентности содержатся такие тесты, что, если один тест из класса эквивалентности обнаруживает некоторую ошибку, то и любой другой тест из этого класса эквивалентности должен обнаруживать эту же ошибку.
  2. Каждый тест должен включать, по возможности, максимальное количество классов эквивалентности, чтобы минимизировать общее число тестов.

Разработка тестов этим методом осуществляется в два этапа: выделение классов эквивалентности и построение теста.

Классы эквивалентности выделяются путём выбора каждого входного условия, которые берутся с помощью технического задания или спецификации и разбиваются на две и более группы. Для этого используется следующая таблица:

Входное условие Правильные классы эквивалентности Неправильные классы эквивалентности

Выделение классов эквивалентности является эвристическим способом, однако существует ряд правил:

  1. Если входное условие описывает область значений, например «Целое число принимает значение от 0 до 999», то существует один правильный класс эквивалентности и два неправильных.
  2. Если входное условие описывает число значений, например «Число строк во входном файле лежит в интервале (1..6)», то также существует один правильный класс и два неправильных.
  3. Если входное условие описывает множество входных значений, то определяется количество правильных классов, равное количеству элементов в множестве входных значений. Если входное условие описывает ситуацию «должно быть», например «Первый символ должен быть заглавным», тогда один класс правильный и один неправильный.
  4. Если есть основание считать, что элементы внутри одного класса эквивалентности могут программой трактоваться по-разному, необходимо разбить данный класс на подклассы. На этом шаге тестирующий на основе таблицы должен составить тесты, покрывающие собой все правильные и неправильные классы эквивалентности. При этом составитель должен минимизировать общее число тестов.

Определение тестов:

  1. Каждому классу эквивалентности присваивается уникальный номер.
  2. Если еще остались не включенные в тесты правильные классы, то пишутся тесты, которые покрывают максимально возможное количество классов.
  3. Если остались не включенные в тесты неправильные классы, то пишут тесты, которые покрывают только один класс.

[править] Анализ граничных значений

Граничные условия — это ситуации, возникающие на высших и нижних границах входных классов эквивалентности.

Анализ граничных значений отличается от эквивалентного разбиения следующим:

  1. Выбор любого элемента в классе эквивалентности в качестве представительного осуществляется таким образом, чтобы проверить тестом каждую границу этого класса.
  2. При разработке тестов рассматриваются не только входные значения (пространство входов), но и выходные (пространство выходов).

Метод требует определённой степени творчества и специализации в рассматриваемой задаче.

Cуществует несколько правил:

  1. Построить тесты с неправильными входными данными для ситуации незначительного выхода за границы области значений. Если входные значения должны быть в интервале [-1.0 .. +1.0], проверяем −1.0, 1.0, −1.000001, 1.000001.
  2. Обязательно писать тесты для минимальной и максимальной границы диапазона.
  3. Использовать первые два правила для каждого из входных значений (использовать пункт 2 для всех выходных значений).
  4. Если вход и выход программы представляет упорядоченное множество, сосредоточить внимание на первом и последнем элементах списка.

Анализ граничных значений, если он применён правильно, позволяет обнаружить большое число ошибок. Однако определение этих границ для каждой задачи может являться отдельной трудной задачей. Также этот метод не проверяет комбинации входных значений.

[править] Анализ причинно-следственных связей

Этапы построения теста:

  1. Спецификация разбивается на рабочие участки.
  2. В спецификации определяются множество причин и следствий. Под причиной понимается отдельное входное условие или класс эквивалентности. Следствие представляет собой выходное условие или преобразование системы. Здесь каждой причине и следствию присваивается номер.
  3. На основе анализа семантического (смыслового) содержания спецификации строится таблица истинности, в которой последовательно перебираются всевозможные комбинации причин и определяются следствия для каждой комбинации причин.

Таблица снабжается примечаниями, задающими ограничения и описывающими комбинации, которые невозможны. Недостатком этого подхода является плохое исследование граничных условий.

[править] Предположение об ошибке

Программист с большим опытом выискивает ошибки без всяких методов, но при этом он подсознательно использует метод предположения об ошибке. Данный метод в значительной степени основан на интуиции. Основная идея метода состоит в том, чтобы составить список, который перечисляет возможные ошибки и ситуации, в которых эти ошибки могли проявиться. Потом на основе списка составляются тесты.

Теория тестирование по принципу «черного ящика»

Скачать 340,38 Kb.

Pdf просмотр

страница 5/6
Дата 15.03.2023
Размер 340,38 Kb.
#206789
Тип Программа

Связанные:
Тестирование по принципу ЧЯ
теория

    Навигация по данной странице:

  • ПРИМЕР 2.Пример применения методов тестирования «черным ящиком»
1.4. Предположение об ошибке.
Часто программист с большим опытом выискивает ошибки «без всяких методов». При этом он подсознательно использует метод «предположение об ошибке». Процедура метода предположения об ошибке в значительной степени основана на интуиции. Основная идея метода состоит в том, чтобы перечислить в некотором списке возможные ошибки или ситуации, в которых они могут появиться, а затем на основе этого списка составить тесты.
Другими словами, требуется перечислить те специальные случаи, которые могут быть не учтены при проектировании.
ПРИМЕР
2.Пример применения методов тестирования «черным ящиком»
Пусть необходимо выполнить тестирование программы, определяющей точку пересечения двух прямых на плоскости. Попутно, она должна определять параллельность прямой одной их осей координат.
В основе программы лежит решение системы линейных уравнений:
Ax + By = C и Dx + Ey = F.
2.1.
Используя
метод эквивалентных разбиений,
получаем для всех коэффициентов один правильный класс эквивалентности (коэффициент — вещественное число) и один неправильный (коэффициент — не вещественное число). Откуда можно предложить 7 тестов:
1) все коэффициенты — вещественные числа;
2)- 7) поочередно каждый из коэффициентов — не вещественное число.
2.2.
По
методу граничных условий
: можно считать, что для исходных данных граничные условия отсутствуют
(коэффициенты — «любые» вещественные числа); для результатов — получаем, что возможны варианты: единственное решение, прямые сливаются (множество решений), прямые параллельны (отсутствие решений).
Следовательно, можно предложить тесты, с результатами внутри области:
1) результат — единственное решение (


0);
2) результат — множество решений (

= 0 и

x
=

y
=0);
3) результат — отсутствие решений (

= 0, но

x

0 или

y

0); и с результатами на границе:
1)

= 0,01;
2)

= -0,01;
3)

= 0,

x
= 0,01,

y
= 0;
4)

= 0,

y
= -0,01,

x
= 0.
2.3.
По методу анализа причинно-следственных связей:
Определяем множество условий. а) для определения типа прямой:








0 0
0
c
b
a
— для определения типа и существования первой прямой;








0 0
0
f
e
d
— для определения типа и существования второй прямой; б) для определения точки пересечения:



= 0

x
= 0

y
= 0
Выделяем три группы причинно-следственных связей (определение типа и существования первой линии, определение типа и существования второй линии, определение точки пересечения) и строим таблицы истинности.

Поделитесь с Вашими друзьями:


Блог седого тестировщика

говориМ о тестировании
простым языком

Обзор техник тест-дизайна

Время на прочтение: 3 мин.




  • Вячеслав Зимин



  • 15 июля, 2019



  • Нет комментариев

Это заключающая статья по теме техник тест-дизайна. Я долго думал, что можно написать, но решил в итоге поднять тему структуризации техник.

Очень часто мне приходилось сталкиваться с тем, что начинающие тестировщики (да и я сам раньше) путают понятия. Например, исследовательское тестирование — это техника или вид? А функциональное тестирование? Давайте разбираться.

Понятно, что я сам не смогу ответить на этот вопрос, но этого и не нужно. Достаточно обратиться к стандартам и посмотреть, какую же классификацию техник они предлагают. Далеко ходить не стал, посмотрел в сторону ISTQB и вот что получилось.

В первую очередь выделяют три категории методов проектирования тестов:

  1. Методы черного ящика.
  2. Методы белого ящика.
  3. Методы, основанные на опыте.

В чем их различие?

Методы черного ящика основываются на анализе как требований и спецификаций, так и самого продукта.

Можно сказать, что в этом случае мы подходим к тестированию продукта, как к черному ящику. Мы не знаем, что внутри системы, не видим ее код и архитектуру. Чем-то мы похожи на обычных пользователей, которые видят лишь итог работы команды разработки. Мы тестируем ящик, но не знаем, что находится внутри.

Методы белого ящика являются абсолютной противоположностью методам черного ящика и основываются на анализе архитектуры приложения, внутренней структуры и кода системы.

С помощью этого метода мы заглядываем внутрь объекта тестирования и знаем, как он устроен. Особенностью этих методов является то, что для тестирования не обязательно запускать программу, достаточно взглянуть на исходный код.

Методы, основанные на опыте, используют опыт разработчиков, тестировщиков и пользователей для проектирования, реализации и выполнения тестов. Их часто совмещают с методами черного и белого ящиков.

Итак, если это категории методов, значит они должны включать в себя и сами методы тест-дизайна (проектирования тестов). Давайте посмотрим, какие техники предлагает нам ISTQB.

Методы черного ящика (Black-box Test Techniques)

  1. Эквивалентное разбиение (Equivalence Partitioning). Эта техника говорит нам о том, что тестовые данные необходимо разбивать на некоторые группы, внутри которых результат выполнения тестов идентичен. Группы могут быть как для позитивных, так и для негативных значений.
    Подробнее о методе читаем тут https://vk.com/wall-172009645_386
  2. Анализ граничных значений (Boundary Value Analysis). Является продолжением предыдущего метода и говорит нам о том, что необходимо брать значения, которые лежат на границе классов.
    Подробнее о методе читаем тут https://vk.com/wall-172009645_386
  3. Тестирование с помощью таблицы альтернатив (Decision Table Testing). Это способ компактного представления модели со сложной логикой.
    Достаточно понятно метод описан тут http://blog.rocketbrain.ru/decision-table-test-design/ (если данная ссылка не работает, то читаем о методе тут https://training.qatestlab.com/blog/technical-articles/tables-solutions-and-their-usage-in-testing/)
  4. Тестирование с помощью таблицы переходов (State Transition Testing). Интересная техника, которая позволяет составлять высокоуровневые чек-листы.
    О ней я рассказывал в двух статьях https://vk.com/wall-172009645_515 и https://vk.com/wall-172009645_583
  5. Тестирование с помощью сценариев использования (Use Case Testing). Сценарии использования — это перечень действий, сценарий по которому пользователь взаимодействует с приложением, программой для выполнения какого-либо действия для достижения конкретной цели. Тестирование по сценариям проводится для того, чтобы обнаружить дополнительные логические дыры и баги в приложении, которые сложно найти в тестировании индивидуальных модулей, частей приложения отдельно друг от друга.
    Почитать можно в статье http://software-testing.ru/library/5-testing/78-2008-09-29-07-33-51
  6. Техника попарного тестирования (Pairwise Testing). Она не содержится в перечне техник ISTQB, но я тоже решил ее добавить. Используется, когда необходимо не просто протестировать продукт, а продукт с множеством взаимосвязанных входных данных.
    Подробнее тут https://vk.com/wall-172009645_468

Методы белого ящика

  1. Тестирование и покрытие операторов (Statement Testing and Coverage). Тестирование операторов направлено на проверку исполняемых операторов в коде. Покрытие вычисляется как отношение количества операторов, выполненных тестом, к общему числу операторов в тестируемом коде.
  2. Тестирование и покрытие условий (Decision Testing and Coverage). Тестирование условий направлено на проверку логических условий в коде, а также кода, выполняемого в зависимости от исхода условия. Покрытие вычисляется как отношение числа исходов условий, проверенных тестом, к общему числу исходов тестируемых условий.

Методы, основанные на опыте (Experience-based Test Techniques)

  1. Предположение об ошибках (Error Guessing). Это способ предотвращения ошибок, дефектов и отказов, основанный на знаниях тестировщика.
    Подробнее можно прочитать тут https://vk.com/wall-172009645_640
  2. Исследовательское тестирование (Exploratory Testing). Это достаточно гибкое тестирование, которое говорит нам о том, что тест-кейсы и чек-листы создаются, выполняются, анализируются и оцениваются динамически во время выполнения тестов.
    Исследовательское тестирование лучше всего подходит в ситуациях, когда документация недостаточная, либо вовсе отсутствует, в условиях очень сжатых сроков и как дополнение к другим, более формальным, методам тестирования.
  3. Тестирование на основе чек-листов (Checklist-based Testing). При тестировании по чек-листам тестировщик проектирует, реализует и выполняет тесты, указанные в чек-листе.
    Такие списки могут быть построены на опыте, на исторических данных об ошибках, на информации о приоритетах для пользователей и понимании, как и почему происходят отказы в программе.

***

Вот и все. Получается не так много, но познавательно. Думаю, это поможет начинающим тестировщикам немного больше понять тестирование и структуру техник тест-дизайна.

Автор статьи:

Вячеслав Зимин

Вячеслав Зимин

Тестировщик со стажем. Основатель школы седого тестировщика.

Межтекстовые Отзывы

Посмотреть все комментарии

Ближайшие события

  • Живые прямые эфиры с практикой


  • 2 октября в 19:00 по МСК.
  • Тренинг для начинающих (мини-группа на 10 человек).


  • с 16 октября и с 13 ноября

Ближайшие события

  • Прямой эфир «Баг-репорты: как составлять отчеты об ошибках без ошибок»


  • 2 сентября в 19:00 по МСК
  • Мини-курс «Путь в тестирование»


  • После регистации

Вам также может понравится

Что такое тестирование по методу белого ящика? Что такое тестирование по методу черного ящика? Есть ли у них сходство? Чем они отличаются? Каковы технические особенности реализации каждого метода на практике? Все эти вопросы мы рассмотрим в данной статье.

Сходство тестирования по методу «черный ящик» и методу «белый ящик»

Парадоксальность в очевидности. Сходство этих двух методов заключается в том, что оба имеют общую цель – повышение качества программного обеспечения.

Действительно, в разработке программного обеспечения тестирование всегда направлено поиск ошибок. Приступая к тестированию программного обеспечения, тестировщик всегда имеет в голове какой-то тезис. И в процессе тестирования, этот тезис будет либо подтвержден, либо опровергнут.

По сути, оба метода – это как две дороги, которые ведут к одному пункту назначения под названием «качество ПО». Но это не альтернативные дороги. Чтобы добраться до заданного пункта, нужно пройти обе.

Различия в методах тестирования «черный ящик» и «белый ящик»

Являясь частью одного целого (т.е. обеспечения качества), тестирование по методу черного ящика и тестирование по методу белого ящика затрагивают разные аспекты качества и представляют совершенно разный подход к тестированию программного обеспечения. Если продолжить нашу аналогию с дорогой к пункту назначения, можно сказать, что это две дороги, которые, хотя и идут в одном направлении, имеют свои изгибы, ответвления и вехи.

Иными словами, данные методы тестирования имеют огромное различие в фокусном внимании.

Фокусное внимание «черного ящика»

Тестирование по методу черного ящика проверяет функциональность системы в целом, не задумываясь над тем, как и каким образом работают шестеренки в данной системе. То есть, фокусируется на том, как приложение ведет себя во время использования. Именно поэтому данный метод обычно называют поведенческим тестированием и считают низкоуровневым методом контроля качества.

Действительно, цель «черного ящика» – улучшить внешнее качество приложения. Единственное, что здесь имеет значение, это удобство дизайна для конечного пользователя, а также то, работают ли все модули должным образом, работоспособна ли заданная функциональность.

Здесь тестировщики имеют дело с так называемыми «вводами» и «возвращенными результатами». Иными словами, они проверяют каждый «ввод» и сравнивают фактически полученные результаты с ожидаемыми. Если эти два параметра совпадают для каждого «ввода» в отношении конкретной тестируемой функциональности, работа данной функции признается корректной.

Условно говоря, при тестировании по методу черного ящика важно лишь то, что «2+2=4». Не важно, почему это так и каким образом это достигается. Важно лишь то, что данный тезис должен быть подтвержден.

Фокусное внимание «белого ящика»

Тестирование по методу белого ящика, напротив, фокусируется на внутреннем устройстве приложения. Здесь тестировщик исследует исходный код, структуру каталогов, маршрутизацию, циклы и петли обратной связи и т.д.

Тестирование «белый ящик» нацелено на повышение внутреннего качества программного обеспечения и создание продукта, который:

  • не имеет каких-либо «тупиков» и прочих антипаттернов,
  • имеет достаточный потенциал для дальнейшего развития.

Определенно, невозможно получить информацию о вышеупомянутых аспектах, проверяя только взаимодействие ввода и возвращенного результата. Поэтому данный метод тестирования, по сути, является структурным тестированием или тестированием на основе кода и считается высокоуровневым методом контроля качества.

Особенности применяемых техник тестирования

Логично предположить, что при тестировании методами черного и белого ящиков используются совершенно разные техники. При этом, данные различия предъявляют определённые требования к навыкам тестировщиков. Так, для низкоуровневого контроля качества тестировщикам не обязательно уметь программировать. Им даже не нужно знать язык программирования, который используется для разработки этого приложения. Для проведения тестирования методом белого ящика, напротив, глубокие знания в области разработки программного обеспечения и реализованных в данном приложении технологий просто необходимы.

Техники тестирования по методу черного ящика

При тестировании методом «черного ящика» тестировщики сначала изучают спецификации тестирования программного обеспечения, после чего пробуют различные вводные данные, следуя заранее заданному набору тест-кейсов. Затем они просто сообщают разработчикам о выявленных ими проблемах, не вникая в причинно-следственные связи.

Условно говоря, здесь достаточно лишь констатировать факт, что в данной системе «2+2=5» вместо положенных «2+2=4». Установить точную причину выявленных проблем с функциональностью системы – есть задача разработчиков.

Среди техник тестирования по методу черного ящика, применяемых в нашей компании по разработке программного обеспечения, наиболее распространены:

  • Анализ классов эквивалентности, при котором тестировщик группирует все возможные входные данные по классам (т.е. группам вводных данных, при которых программа возвращает результат определенного характера, без какой-либо вариативности) и проверяет фактически возвращаемый результат при взаимодействии с представителем каждого класса.

Например, при тестировании модуля расчета суммы подлежащих к уплате процентов в зависимости от срока кредитования, за класс эквивалентности мы берем все значения в одном из диапазонах сроков кредитования. Т.е., если известно, что при сроке кредитования от 180 до 360 дней ставка по кредиту составляет 10%, то для проверки правильности возвращаемых результатов достаточно ввести лишь одно значение из указанного диапазона (например, 240).

  • Анализ граничных значений, где, как следует из названия, в качестве вводных данных используются только граничные значения, как по нижней, так и по верхней границе.

Так, для приведенного выше примера следует протестировать такие значения как 179, 180, 181, 359, 360 и 361.

  • Предугадывание ошибок, где тестировщики используют свою экспертизу в определенной предметной области и пытаются имитировать действия и условия, которые могут привести к ошибке работы системы.

Для приведенного нами примера тестируемого модуля расчета суммы подлежащих к уплате процентов в зависимости от срока кредитования, вводами здесь могут быть нецелые значения, буквы и иные символы, а также ввода в виде диапазонов (например, 200-250).

  • Нефункциональное тестирование (стресс-тесты, нагрузочные тесты и т.д.), когда проверяется производительность и масштабируемость системы, ее поведение при повышенных нагрузках, безопасность системы и т. д.

Техники тестирования по методу белого ящика

В процессе тестирования методом «белого ящика» тестировщики проверяют код, стремясь найти и исправить некорректные блоки. Как правило, для больших программ это происходит в форме написания автоматизированных тест-кейсов для обеспечения высокого уровня тестового покрытия. Однако, иногда используются и ручные тесты.

В нашей компании наиболее распространенными являются следующие техники тестирования по методу белого ящика:

  • Тестирование потоков управления, при котором проверяется правильность логики кода и его способность возвращать результаты надлежащим образом. Здесь производится тестирование ветвей, операторов и путей (а также альтернатив), в процессе которого проверяется и подтверждается, что каждая ветвь, оператор и путь выполняются, срабатывают, проходятся хотя бы один раз;
  • Тестирование потока данных, целью которого является поиск ошибок, ведущих к аномалиям и неправильному использованию данных и потоков данных.

Заключительный нюанс

Несмотря на то, что, говоря о методах тестирования, сначала говорится о методе «черного ящика», и только потом переходят к методу «белого ящика» (и данная статья – скорее подтверждение, нежели исключение этого паттерна), в реальной разработке последовательность применения данных методов кардинально противоположная.

Так, тестирование «черного ящика», как правило, проводится для проверки финальной сборки (как программы в целом, так и отдельного ее модуля). Это гарантирует, что взаимодействие пользователя с системой будет плавным, а реакция программы на каждое действие пользователя будет правильной и соответствующей требованиям программного обеспечения.

В свою очередь, тестирование методом белого ящика осуществляется непосредственно в процессе разработки, на завершающем этапе каждой итерации. Таким образом, ошибки кодирования могут быть обнаружены (и, соответственно, устранены) на ранней стадии разработки включительно.

Основная закономерность, которую мы определили для себя – чем лучше было проведено тестирование методом белого ящика, тем меньше ошибок будет выявлено при тестировании методом черного ящика. А следовательно, меньше доработок и исправлений.

Понравилась статья? Поделить с друзьями:
  • Предположение о нормальном распределении случайной ошибки
  • Предположение мать всех ошибок кто сказал
  • Предполагает ли совершение врачебной ошибки причинение вреда пациенту
  • Предохранитель для сброса ошибок форд мондео 3
  • Предотвращение ошибок бережливое производство