Здавалка
Главная | Обратная связь

Структурное тестирование



Структурное тестирование называют также тестированием по «маршрутам», так как в этом случае тестовые наборы формируют путем анализа маршрутов, предусмотренных алгоритмом. Под маршрутами при этом понимают последовательности операторов программы, которые выполняются при конкретном варианте исходных данных.

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

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

Структурный подход к тестированию имеет ряд недостатков. Так тестовые наборы, построенные по данной стратегии:

•не обнаруживают пропущенных маршрутов;

•не обнаруживают ошибок, зависящих от обрабатываемых данных, на

пример, в операторе if (a - b) < eps - пропуск функции абсолютного значения

abs проявится только, если а < b;

•не дают гарантии, что программа правильна, например, если вместо

сортировки по убыванию реализована сортировка по возрастанию.

Для формирования тестов программу представляют в виде графа, вершины которого соответствуют операторам программы, а дуги представляют возможные варианты передачи управления. Ниже приведен текст программы, которая определяет значение х в зависимости от значений параметров процедуры. Алгоритм этой программы представлен на рис. 9.2, а, а соответствующий граф передач управления - на на рис. 9.2, б.

Рис. 9.2. Схема алгоритма процедуры примера (а) и ее граф передач управления

Формирование тестовых наборов для тестирования маршрутов может осуществляться по нескольким критериям:

•покрытие операторов;

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

•покрытие условий;

•покрытие решений/условий;

•комбинаторное покрытие условий.

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

Для фрагмента, алгоритм и граф которого представлены на рис. 9.2, можно было бы выполнить каждый оператор один раз, задав в качестве входных данных а = 2, b = 0, x = 3. Но при этом из второго условия следует, что переменная х может принимать любое значение, и в некоторых версиях языка Pascal это значение проверяться не будет (!).

 

 

-------------------------------------------------------------------------------------------------------Б-44 Тестирование программного обеспечения. Функциональное тестирование.Понятие тестирование ПО, суть функционального тестирования, методы формирования тестовых наборов.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.