Способы разбиения на эквивалентности
Разбиение на эквивалентности является самым популярным способом тестирования черного ящика. В этом способе входная область данных программы делится на классы эквивалентности и для каждого класса эквивалентности разрабатывается один тестовый вариант. Класс эквивалентности – это набор данных с общими свойствами. Обрабатывая разные элементы класса, программа должна вести себя одинаково, иначе говоря, при обработке любого набора данных из классов эквивалентности в программе задействуется один и тот же набор операторов и связей между ними.
Разбиение на эквивалентности можно представить следующим образом.
Рисунок 15– Разбиение на эквивалентности
На данном рисунке представлены входные классы эквивалентности допустимых и недопустимых исходных данных, а так же классы выходных результатов. Классы эквивалентности могут быть определены на основе спецификаций на программу. Например, если спецификация задает в качестве допустимых входных величин целые числа в диапазоне 15–70, то класс эквивалентности допустимых исходных данных включает величины от 15 до 70 и несколько классов эквивалентности недопустимых исходных данных, к которым относятся целые числа <15, целые числа >70, исходные данные нецелочисленных типов.
Класс эквивалентности обычно включает множество значений данных, допустимых и недопустимых по условиям ввода.
Условия ввода может задавать:
1) Определенное значение;
2) Диапазон значений;
3) Множество конкретных величин;
4) Булево условие;
Сформулируем правила формирования классов эквивалентности.
1) Если условие ввода задает диапазон от n до m, то определяется два допустимых и один недопустимый класс эквивалентности V_Class={n…m}, Inv_Class1={x| x, x<n}, Inv_Class2={x| x, x>m}.
2) Если условие ввода задает конкретное значение a, то определяется один допустимый и два недопустимых класса эквивалентности V_Class={a}, Inv_Class1={x| x, x<a}, Inv_Class2={x| x, x>a}.
3) Если условие ввода задает множество значений {a, b, c}, то определяется один допустимый и один недопустимый класс эквивалентности V_Class={a, b, c}, Inv_Class={x| x, (x a)&(x b)&(x c)}.
4) Если условие ввода задает булево значение, например, True, то определяется один допустимый и один недопустимый класс эквивалентности V_Class={True}, Inv_Class={False}.
После построения классов эквивалентности разрабатываются тестовые варианты, причем каждый тестовый вариант выбирается таким образом, чтобы проверить сразу наибольшее количество свойств класса эквивалентности.
Дата добавления: 2016-09-20; просмотров: 302;