Основен метод за тестване на пътеки - Орлов С
Метод за тестване на основния път
Тестване на основния път Е метод, който се основава на принципа "бяла кутия". Авторът на този метод е Том Маккейб (1976) [49].
Методът за тестване на основния път позволява:
да получите оценка на сложната сложност на програмата;
използвайте тази оценка, за да определите необходимия брой тестови случаи.
Тестовите случаи са разработени за тестване на основния набор от пътеки (маршрути) в програмата. Те гарантират еднократно изпълнение на всяка програмна инструкция по време на тестване.
Графика на потока
График на потока се използва за представяне на програмата. Нека изброим неговите характеристики.
1. Графиката се изгражда чрез показване на контролната структура на програмата. Когато се показват, затварящите скоби на условни и циклични оператори (end if; end loop) се третират като отделни (фиктивни) изрази.
2. Възлите (върховете) на поточната графика съответстват на линейни секции на програмата, включват един или повече програмни отчети.
3. Дъгите на графиката на потока представляват контролния поток в програмата (контролни трансфери между оператори). Дъгата е ориентиран ръб.
4. Разграничаване между операторски и предикатни възли. Една дъга напуска операторския възел, а две дъги излизат от предикатния възел.
Предикатните възли отговарят на прости условия в програмата. Съставното програмно условие се съпоставя с няколко предикатни възли. Съединението е състояние, при което се използват една или повече булеви операции (OR, AND).
Например програмен фрагмент
ако А ИЛИ b
вместо директно картографиране на поточна графика на формата, показана на фиг. 6.4, се преобразува в трансформирана графика на потока (фиг. 6.5).
Фигура: 6.4. Директно картографиране в графика на потока
Фигура: 6.5. Графика на трансформиран поток
6. Затворените области, образувани от дъги и възли, се наричат региони.
7. Околната среда около графиката се счита за допълнителен регион. Например, графиката, показана тук, има три области - Rl, R2, R3.
Пример 1. Помислете за процедурата за компресиране:
1 изпълни още няма EOF
2, ако записът е празен
3 след това изтрийте записа:
4 иначе ако поле a> = поле b
6 иначе изтрийте a;
7b край за изпълнение;
Фигура: 6.6. Трансформирана поточна графика на процедурата за компресия
Той се съпоставя с графиката на потока, показана на фиг. 6.6. Виждаме, че тази графика на потока има четири области.
Цикломатична сложност
Цикломатичната сложност е софтуерна метрика, която количествено определя логическата сложност на програмата. По начина на тестване на основния път, цикломатичната сложност определя:
броят на независимите пътеки в основния набор от програмата;
горна граница за броя на тестовете, която гарантира, че всички оператори се изпълняват веднъж.
Всеки път, който въвежда нов оператор за обработка или ново условие, се нарича независим. По отношение на графиката на потока, независим път трябва да съдържа дъга, която не е включена в предварително дефинираните пътища.
ЗАБЕЛЕЖКА
Пътят започва в началния възел и завършва в крайния възел на графиката. Формират се независими пътеки от най-краткия до най-дългия.
Нека изброим независимите пътища за графиката на потока от пример 1:
Път 4: 1-2-4-6-7a-7b-1-8.
Имайте предвид, че всеки нов път включва нова дъга.
Всички независими пътища на графиката образуват основен набор.
Свойства на базовия набор:
1) тестовете, които гарантират неговата проверка, осигуряват:
еднократно изпълнение на всеки оператор;
изпълнение на всяко условие за Истински клон и Фалшив клон;
2) мощността на базовия набор е равна на цикломатичната сложност на графиката на потока.
Стойността на второто свойство е трудно надценена - тя дава априорна оценка на броя на независимите пътеки, което има смисъл да се търси в графиката.
Цикломатичната сложност се изчислява по един от трите начина:
1) цикломатичната сложност е равна на броя на регионите на графиката на потока;
2) цикломатичната сложност се определя по формулата
Където Д - брой дъги, Н - броя на възлите в графиката на потока;
3) цикломатичната сложност се формира от израза V (G) = p+ 1, където R - броят на предикатните възли в поточната графика G.
Нека изчислим цикломатичната сложност на графиката от пример 1 по всеки от трите начина:
1) графиката на потока има 4 области;
По този начин цикломатичната сложност на графиката на потока от пример 1 е четири.
Основни стъпки за тестване на пътя
За да илюстрираме стъпките на този метод, използваме специфична програма - процедурата за изчисляване на средната стойност:
бит, докато 2 -ve (i) <> стоп и въведени = min и led (i) 0
11 след това сряда: = сума/сума;
12 иначе сряда: = стоп;
Имайте предвид, че процедурата съдържа сложни условия (в заглавката на цикъла и в условния оператор). За по-голяма яснота, елементите на съставните условия са рамкирани.
Етап 1. График на потока се формира въз основа на текста на програмата:
текстовите оператори са номерирани (номерата на операторите са показани в текста на процедурата);
номерираният програмен текст се съпоставя с възлите и върховете на графиката на потока (фиг. 6.7).
Фигура: 6.7. График на потока на процедурата за изчисляване на средната стойност
Стъпка 2. Определя се цикломатичната сложност на графиката на потока - за всяка от трите формули:
Стъпка 3. Определя се основният набор от независими линейни пътеки:
Път 1: 1-2-10-11-13;/led = stor, количество> 0.
Път 2: 1-2-10-12-13;/led = стоп, количество = 0.
Път 3: 1-2-3-10-11-13;/опит за обработка на 501-ва стойност.
Начин 4: 1-2-3-4-5-8-9-2-./led макс.
Път 6: 1-2-3-4-5-6-7-8-9-2-./нормален режим на обработка.
ЗАБЕЛЕЖКА
За удобство на по-нататъшния анализ условията за стартиране са посочени за всеки път. Точките в края на пътища 4, 5, 6 показват, че е разрешено всяко продължаване през остатъка от контролната структура на графиката.
Стъпка 4. Тестовите случаи са подготвени за започване на изпълнението на всеки път.
Всеки тест се формира в следната форма:
Първоначални данни (ID):
Очаквани резултати (CUT CUT):
Първоначалните данни трябва да бъдат избрани така, че върховете на предикатите да осигурят необходимите превключватели - стартиране само на тези оператори, които са изброени в определен път и в необходимия ред.
Нека дефинираме тестови случаи, които отговарят на идентифицирания набор от независими пътеки.
Тест за път 1 TV1:
ДОКУМЕНТ ЗА САМОЛИЧНОСТ: води (к) = валидна стойност, където к макс, където к < i.
РАЗРЕЗ: правилното осредняване се основава на стойности и правилно изчисление.
Тест за път 6 TV6:
ДОКУМЕНТ ЗА САМОЛИЧНОСТ: воден (i) = валидна стойност, където i ? 500.
РАЗРЕЗ: правилното осредняване се основава на стойности и правилно изчисление.
Действителните резултати от всеки тестов случай се сравняват с очакваните резултати. След изпълнението на всички тестови случаи е гарантирано, че всички програмни инструкции се изпълняват поне веднъж.
Важно е да се отбележи, че някои независими пътища не могат да бъдат тествани изолирано. Такива пътища трябва да бъдат тествани при тестване на друг път (като част от друг тест).