Шаги способа тестирования базового пути
Для иллюстрации шагов данного способа используем конкретную программу — процедуру вычисления среднего значения:
процедура сред;
1 i := 1;
1 введено := 0;
1 колич := 0;
1 сум := 0;
вып пока 2 -вел( i ) <> stop и введено <=500 - 3
4 введено:= введено + 1;
если 5 -вел( i ) >= мин и вел( i ) <= макс - 6
7 то колич := колич + 1;
7 сум := сум + вел( i );
8 конец если;
8 i := i + 1;
9 конец вып;
10 если колич > 0
11 то сред := сум / колич;
12 иначе сред := stop;
13 конец если;
13 конец сред;
Заметим, что процедура содержит составные условия (в заголовке цикла и условном операторе). Элементы составных условий для наглядности помещены в рамки.
Шаг 1. На основе текста программы формируется потоковый граф:
q нумеруются операторы текста (номера операторов показаны в тексте процедуры);
q производится отображение пронумерованного текста программы в узлы и вершины потокового графа (рис. 6.7).
Рис. 6.7.Потоковый граф процедуры вычисления среднего значения
Шаг 2. Определяется цикломатическая сложность потокового графа — по каждой из трех формул:
1) V(G) = 6 регионов;
2) V(G) = 17 дуг - 13 узлов + 2 = 6;
3) V(G) = 5 предикатных узлов + 1 = 6.
Шаг 3. Определяется базовое множество независимых линейных путей:
Путь 1:1-2-10-11-13; /вел=stор, колич>0.
Путь 2:1-2-10-12-13;/вел=stop, колич=0.
Путь 3:1-2-3-10-11-13; /попытка обработки 501-й величины.
Путь 4:1-2-3-4-5-8-9-2-... /вел<мин.
Путь 5:1-2-3-4-5-6-8-9-2-... /вел>макс.
Путь 6:1-2-3-4-5-6-7-8-9-2-... /режим нормальной обработки.
ПРИМЕЧАНИЕ
Для удобства дальнейшего анализа по каждому пути указаны условия запуска. Точки в конце путей 4, 5, 6 указывают, что допускается любое продолжение через остаток управляющей структуры графа.
Шаг 4. Подготавливаются тестовые варианты, инициирующие выполнение каждого пути.
Каждый тестовый вариант формируется в следующем виде:
Исходные данные (ИД):
Ожидаемые результаты (ОЖ.РЕЗ.):
Исходные данные должны выбираться так, чтобы предикатные вершины обеспечивали нужные переключения — запуск только тех операторов, которые перечислены в конкретном пути, причем в требуемом порядке.
Определим тестовые варианты, удовлетворяющие выявленному множеству независимых путей.
Тестовый вариант для пути 1 ТВ1:
ИД: вел(k) = допустимое значение, где k < i;вел(i) = stop, где 2 < i < 500.
ОЖ.РЕЗ.: корректное усреднение основывается на k величинах и правильном подсчете.
ПРИМЕЧАНИЕ
Путь не может тестироваться самостоятельно, а должен тестироваться как часть путей 4, 5, 6 (трудности проверки 11-го оператора).
Тестовый вариант для пути 2 ТВ2:
ИД: вел(1)=stор.
ОЖ.РЕЗ.: сред=stор, другие величины имеют начальные значения.
Тестовый вариант для пути 3 ТВЗ:
ИД: попытка обработки 501-й величины, первые 500 величин должны быть правильными.
ОЖ.РЕЗ.: корректное усреднение основывается на k величинах и правильном подсчете.
Тестовый вариант для пути 4 ТВ4:
ИД: вел(i)=допустимое значение, где i ≤ 500; вел(k) < мин, где k < i.
ОЖ.РЕЗ.: корректное усреднение основывается на k величинах и правильном подсчете.
Тестовый вариант для пути 5 ТВ5:
ИД: вел(i)=допустимое значение, где i ≤ 500; вел(k) > макс, где k < i.
ОЖ.РЕЗ.: корректное усреднение основывается на п величинах и правильном подсчете.
Тестовый вариант для пути 6 ТВ6:
ИД: вел(i)=допустимое значение, где i ≤ 500.
ОЖ.РЕЗ.: корректное усреднение основывается на п величинах и правильном подсчете.
Реальные результаты каждого тестового варианта сравниваются с ожидаемыми результатами. После выполнения всех тестовых вариантов гарантируется, что все операторы программы выполнены по меньшей мере один раз.
Важно отметить, что некоторые независимые пути не могут проверяться изолированно. Такие пути должны проверяться при тестировании другого пути (как часть другого тестового варианта).