Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзаменационные вопросы / Ответы на вопросы _ От Ежа.doc
Скачиваний:
50
Добавлен:
01.05.2014
Размер:
172.54 Кб
Скачать

29. Тестирование на основе потока управления. Критерий покрытия решений.

(Для саморазвития) 3 вида тестирования: 1. Модульноепроверка корректности структуры модулей и их основных конструктивных компонент (циклов, блоков, разветвлений), функций и данных (входных и выходных); 2.Интеграционное– проверка корректности управляющих и информационных связей между модулями. При проведении интеграционного тестирования важным является порядок сбора модулей в единую программу. Существует два основных подхода к комбинированию модулей: пошаговое – каждый модуль подключается к набору ранее оттестированных модулей; монолитное – все модули одновременно объединяются в программу; 3.Системное– проверка соответствия интегрированной в единое целое программной системы спецификациям с учетом среды и режима выполнения.

1 и 2 основаны на структуре программы, 3 основан на функциональной спецификации.

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

Критерий покрытие решений (ветвей)– при использовании этого критерия каждая дуга должна быть пройдена хотя бы один раз.

Пример

if ( (A > 1) & ( B=0 ) ) then X:=X/A;

if ( (A = 2) Or ( X>1 ) ) then X:=X+1;

Покрытие решений может быть реализовано двумя тестами, покрывающими либо пути aceиabd, либо путиacdиabe. Если выбрать второе покрытие, то входами двух тестов являются:A=3;B=0;X=3 (путьacd) иA=2;B=1;X=1 (путь

abe). Эти тесты также недостаточны. Например, если выбрано первое покрытие (путьacd),путь, гдеXне изменяется, будет проверен с вероятностью 50%. Если во втором условии имеется ошибка (например,X<1 вместоX>1), то эта ошибка тестами не будет обнаружена!

30. Тестирование на основе потока управления. Критерий покрытия условий.

Начало 29 вопроса.

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

Пример тот же. В программе имеются 4 условия: A> 1,B= 0,A= 2 иX> 1. Следовательно, требуется достаточное число тестов, чтобы реализовать ситуации, гдеA>1,A1,B=0 иB0 (первое условие) иA=2,A2,X>1,X1 (второе условие). Тесты, удовлетворяющие критерию покрытия условий, и соответствующие им пути: 1.A=2;B=0;X=4 (путьace); 2.A=1;B=1;X=1 (путьabd)

Критерий покрытия условий обычно лучше критерия покрытия решений, поскольку оно может вызвать выполнение решений в условиях, не реализуемых при покрытии решений.

С другой стороны, критерий покрытия условий может не удовлетворять критерию покрытия решений. Для рассмотренного примера предложенные тесты покрытия условий покрывают результаты всех решений, но это случайное совпадение. Например, два альтернативных теста: A=1,B= 0,X=3 иA=2,B=1,X=1 покрывают результаты всех условий, но только два из четырех результатов решений (оба они покрывают путьabeи, следовательно, не выполняют результат истина первого решения и результат ложь второго решения).