Пример.

Метод покрытия операторов

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

Если для тестирования задать значения переменных А = 2, B = 0, Х=3, будет реализован путь асе, т. е. каждый оператор программы выполнится один раз (рис. Л5.1, а). Но если внести в алгоритм ошибки — заменить в первом условии and на or, а во втором Х> 1 на Х< 1 (рис. Л5.1, б), ни одна ошибка не будет об­наружена (табл. Л5.1). Кроме того, путь abd вообще не будет ох­вачен тестом, и если в нем есть ошибка, она также не будет об­наружена. В табл. Л5.1 ожидаемый результат определяется по блок-схеме на рис. Л5.1, а, а фактический — по рис. Л5.1, б.

Как видно из этой таблицы, ни одна из внесенных в алго­ритм ошибок не будет обнаружена.

Таблица Л5.1. Результат тестированияметодом покрытия операторов

Тест Ожидаемый результат Фактический результат Результат тестирования
А = 2, B = 0, Х=3 Х=2,5 Х=2,5 Неуспешно

Метод покрытия решений (покрытия переходов)

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

Для программы, приведенной на рис. Л5.1, покрытие реше­ний может быть выполнено двумя тестами, покрывающими пути {асе, abd\, либо {acd, abe]. Для этого выберем следующие исход­ные данные: {А = 3, B=0, Х=3} — в первом случае и {А = 2, В=1, Х= 1} — во втором. Однако путь, где А не меняется, будет проверен с вероятностью 50%: если во втором условии вместо условия Х> 1 записано Х< 1, то ошибка не будет обнаружена двумя тестами.

Результаты тестирования приведены в табл. Л5.2.


Таблица Л5.2. Результат тестирования методом покрытия решений

 

Тест Ожидаемый результат Фактический результат Результат тестирования
A = 3, B=0, X=3 Х=1 Х=1 Неуспешно
A = 2, B=1,X=1 Х=1 Х=1,5 Успешно