Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
479.74 Кб
Скачать

Лабораторна 1. Тестування потоків управління

Тестування потоків управління - це тестування програми відповідно до принципу "білого ящика", при якому відома структура програми і доступний вихідний її код.

Керуючим графом програми називається орієнтований граф виду G = (V, U, p0, q0) , де V - множина вершин (операторів програми) , U - множина ребер (управлінь), p0, q0 - виділені початкова та кінцева вершини.

Критерій покриття операторів ( ): кожен оператор програми повинен буди виконаний (покритий) хоча б один раз.

Критерій покриття рішень ( ): кожна гілка алгоритму (кожний перехід між вершинами КГП) має бути пройдена (виконана) хоча б один раз.

Критерій покриття шляхів ( ): кожен шлях в алгоритмі, де шлях - це послідовність вершин ( , ,..., , ) має бути протестований хоча б один раз. Два шляхи вважаються ідентичними, якщо послідовності вершин ідентичні.

Для більшого розуміння принципів тестування ПЗ розглянемо декілька прикладів на яких і продемонструємо всі основні аспекти використання згаданих вище критеріїв.

Function GD (var A, B: Byte): Byte;

Const C=5;

Var Rez: Byte;

Begin // 0

If A>=B then //1

Rez:=A-B //2

Else

Rez:=B-A; //3

If Rez<C then //4

Rez:=0; //5

GD:=rez; //6

End;

Тестовий набір, сформований відповідно до критерію покриття команд, має вигляд (X, Yет) = {(9,5,0), (5,9,0)}, де X – множина вхідних параметрів, Yет – еталонна множина вихідних параметрів. У тестуємій по даному набору програмі виконуються всі команди і проходяться наступні шляхи:

Тестовий набір, сформований відповідно до критерію покриття гілок, має вигляд (X, Yет) = {(9, 5, 0), (0, 255, 255)}. У тестуємій за даним критерієм програмі виконуються всі гілки, і проходяться наступна множина маршрутів:

Тестовий набір, сформований відповідно до критерію покриття маршрутів, має вигляд (X, Yет) = {(9, 5, 0), (0, 255, 255), (255, 0, 255), (5, 9, 0 )}. У тестуємій за даним критерієм функції виконуються всі маршрути:

Для демонстрації використання для тестування критеріїв умов і гілок-умов модифікуємо функцію GD наступним чином:

Function GD (var A, B: Byte): Byte;

Const C=5;

Var Rez: Byte;

Begin

Rez:=0; // 0

If (Abs(B-A)>=C) and (A>=B) then //1

Rez:=A-B //2

If (Abs(A-B)>=C) and (A<B) then //3

Rez:=B-A //4

GD:=rez; //5

End;

Для тестування умов необхідно протестувати всі можливі варіанти умов у даній програмі, тобто умови виду: , , ,

для оператора 1 і , , , для оператора 3. Тестовий набір достатній для покриття зазначених умов має вигляд (X, Yет) = {(15, 10, 5), (8, 10, 0)}. У тестуємій за даним критерієм програмі виконуються всі умови, і проходиться наступна множина маршрутів:

Тестовий набір, сформований відповідно до критерію гілок-умов, має вигляд (X, Yет) = {(15, 10, 5), (10, 15, 5), (8, 10, 0)}. У тестуємій за даним критерієм програмі виконуються всі гілки й умови, і проходиться наступна множина маршрутів:

Основні елементи блок схем