Технологии разработки программного обеспечения

       

Способ разбиения по эквивалентности


Разбиение по эквивалентности — самый популярный способ тестирования «черного ящика» [3], [14].

В этом способе входная область данных программы делится на классы эквивалентности. Для каждого класса эквивалентности разрабатывается один тестовый вариант.

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

На рис. 7.2 каждый класс эквивалентности показан эллипсом. Здесь выделены входные классы эквивалентности допустимых и недопустимых исходных данных, а также классы результатов.

Классы эквивалентности могут быть определены по спецификации на программу.

Рис. 7.2. Разбиение по эквивалентности

Например, если спецификация задает в качестве допустимых входных величин 5-разрядные целые числа в диапазоне 15 000...70 000, то класс эквивалентности допустимых ИД (исходных данных) включает величины от 15 000 до 70 000, а два класса эквивалентности недопустимых ИД составляют:

q       числа меньшие, чем 15 000;

q       числа большие, чем 70 000.

Класс эквивалентности включает множество значений данных, допустимых или недопустимых по условиям ввода.

Условие ввода может задавать:

1) определенное значение;



2) диапазон значений;

3) множество конкретных величин;

4) булево условие.

Сформулируем правила формирования классов эквивалентности.

1. Если условие ввода задает диапазон п...т, то определяются один допустимый и два недопустимых класса эквивалентности:

q       V_Class={n.. .т} — допустимый класс эквивалентности;

q       Inv_С1аss1={x|для любого х: х < п} — первый недопустимый класс эквивалентности;

q       Inv_С1аss2={y|для любого у: у > т} — второй недопустимый класс эквивалентности.


2.  Если условие ввода задает конкретное значение а, то определяется один допустимый и два недопустимых класса эквивалентности:

q       V_Class={a};

q       Inv_Class1 ={х|для

любого х: х < а};

q       Inv_С1аss2={y|для любого у: у > а}.

3.  Если условие ввода задает множество значений {а, b, с}, то определяются один допустимый и один недопустимый класс эквивалентности:

q       V_Class={a, b, с};

q       Inv_С1аss={x|для любого х: (х
 а)&(х
 b)&(х
 с)}.

4.  Если условие ввода задает булево значение, например true, то определяются один допустимый и один недопустимый класс эквивалентности:

q       V_Class={true};

q       Inv_Class={false}.

После построения классов эквивалентности разрабатываются тестовые варианты. Тестовый вариант выбирается так, чтобы проверить сразу наибольшее количество свойств класса эквивалентности.

 


Содержание раздела