Алгоритм тестирования методом ветвей и операторов отношений

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

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

a) построение множества ограничений условий;

b) выявление ограничения результата по каждому простому условию;

c) построение ограничивающего множества, посредством подстановки значений в константные формулы;

d) для каждого элемента ограничивающего множества разрабатываются тестовые варианты.

Тестирование этим методом будет также рассмотрено на примере процедуры сортировки вставкой. В данной процедуре имеет место составное условие (строка 4 листинга процедуры).

Insertion_Sort(A)

1 for j 1 to length[A]

2 do key A[j]

3 i j – 1

4 while i > 0 и A[i] > key

5 do A[i + 1] A[i]

6 i i – 1

7 A[i + 1] key

8 end for

Таким образом, имеется выражение (i > 0) & (A[i] > key). Это выражение является составным и содержит в себе два простых выражения.

Множество ограничения составного условий: , где

Ограничение на результат: .

Константная формула:

,

где (i > 0),

(A[i] > key).

Таблица значений формулы для построения ограничивающего множества (таблица 1):

Таблица 1 – Значения переменных для отношения выражения

 

 

Ограничивающее множество: .

Построение тестовых вариантов:

ТВ 1: Исходные данные: N = 5, A = {3, 2, 8, 9, 1} – проверка остановки сдвижки.

Ожидаемый результат: A = {3, 2, 8, 9, 1}.

ТВ 2: Исходные данные: N = 9, A = {9, 8, 17, 298, 1, 1, 4, 2, 4} – проверка на то, нарушает ли текущий элемент (key) порядок в массиве размером от 2 до N элементов.

Ожидаемый результат: A = {1, 1, 2, 4, 4, 8, 9, 17, 298}.

ТВ 3: Исходные данные: N = 3, A = {10, 2, 8} – проверка процесса сортировки.

Ожидаемый результат: A = {2, 8, 10}.