Способ тестирования базового пути потоковый граф

Способ тестирования базового пути

Тестирование базового пути – это способ, который основан на принципе «белого ящика». Автор этого способа – Том МакКейб (1976) [49].

Способ тестирования базового пути дает возможность:

q получить оценку комплексной сложности программы;

q использовать эту оценку для определения необходимого количества тестовых вариантов.

Тестовые варианты разрабатываются для проверки базового множества путей (маршрутов) в программе. Они гарантируют однократное выполнение каждого оператора программы при тестировании.

Потоковый граф

Для представления программы используется потоковый граф. Перечислим его особенности.

1. Граф строится отображением управляющей структуры программы. В ходе отображения закрывающие скобки условных операторов и операторов циклов (end if; end loop) рассматриваются как отдельные (фиктивные) операторы.

2. Узлы (вершины) потокового графа соответствуют линейным участкам программы, включают один или несколько операторов программы.

3. Дуги потокового графа отображают поток управления в программе (передачи управления между операторами). Дуга – это ориентированное ребро.

4. Различают операторные и предикатные узлы. Из операторного узла выходит одна дуга, а из предикатного – две дуги.

4. Предикатные узлы соответствуют простым условиям в программе. Составное условие программы отображается в несколько предикатных узлов. Составным называют условие, в котором используется одна или несколько булевых операций (OR, AND).

5. Например, фрагмент программы

вместо прямого отображения в потоковый граф вида, показанного на рис. 6.4, отображается в преобразованный потоковый граф (рис. 6.5).

Рис. 6.4.Прямое отображение в потоковый граф

Рис. 6.5.Преобразованный потоковый граф

6. Замкнутые области, образованные дугами и узлами, называют регионами.

7. Окружающая граф среда рассматривается как дополнительный регион. Например, показанный здесь граф имеет три региона – Rl, R2, R3.

Пример 1.Рассмотрим процедуру сжатия:

1 выполнять пока нет EOF

1 читать запись;

2 если запись пуста

3 то удалить запись:

4 иначе если поле а >= поля b

6иначе удалить а;

7b конец выполнять;

Рис. 6.6.Преобразованный потоковый граф процедуры сжатия

Она отображается в потоковый граф, представленный на рис. 6.6. Видим, что этот потоковый граф имеет четыре региона.

Дата добавления: 2019-02-07 ; просмотров: 1235 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Источник

Способ тестирования базового пути

Тестирование базового пути — это способ, который основан на принципе «белого ящика». Автор этого способа — Том МакКейб (1976) [49].

Способ тестирования базового пути дает возможность:

q получить оценку комплексной сложности программы;

q использовать эту оценку для определения необходимого количества тестовых вариантов.

Тестовые варианты разрабатываются для проверки базового множества путей (маршрутов) в программе. Они гарантируют однократное выполнение каждого оператора программы при тестировании.

Потоковый граф

Для представления программы используется потоковый граф. Перечислим его особенности.

1. Граф строится отображением управляющей структуры программы. В ходе отображения закрывающие скобки условных операторов и операторов циклов (end if; end loop) рассматриваются как отдельные (фиктивные) операторы.

Читайте также:  Диабет способы лечения от него

2. Узлы (вершины) потокового графа соответствуют линейным участкам программы, включают один или несколько операторов программы.

3. Дуги потокового графа отображают поток управления в программе (передачи управления между операторами). Дуга — это ориентированное ребро.

4. Различают операторные и предикатные узлы. Из операторного узла выходит одна дуга, а из предикатного — две дуги.

4. Предикатные узлы соответствуют простым условиям в программе. Составное условие программы отображается в несколько предикатных узлов. Составным называют условие, в котором используется одна или несколько булевых операций (OR, AND).

5. Например, фрагмент программы

вместо прямого отображения в потоковый граф вида, показанного на рис. 6.4, отображается в преобразованный потоковый граф (рис. 6.5).

Рис. 6.4.Прямое отображение в потоковый граф

Рис. 6.5.Преобразованный потоковый граф

6. Замкнутые области, образованные дугами и узлами, называют регионами.

7. Окружающая граф среда рассматривается как дополнительный регион. Например, показанный здесь граф имеет три региона — Rl, R2, R3.

Пример 1.Рассмотрим процедуру сжатия:

1 выполнять пока нет EOF

1 читать запись;

2 если запись пуста

3 то удалить запись:

4 иначе если поле а >= поля b

6иначе удалить а;

7b конец выполнять;

Рис. 6.6.Преобразованный потоковый граф процедуры сжатия

Она отображается в потоковый граф, представленный на рис. 6.6. Видим, что этот потоковый граф имеет четыре региона.

Цикломатическая сложность

Цикломатическая сложность — метрика ПО, которая обеспечивает количественную оценку логической сложности программы. В способе тестирования базового пути Цикломатическая сложность определяет:

q количество независимых путей в базовом множестве программы;

q верхнюю оценку количества тестов, которое гарантирует однократное выполнение всех операторов.

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

ПРИМЕЧАНИЕ

Путь начинается в начальном узле, а заканчивается в конечном узле графа. Независимые пути формируются в порядке от самого короткого к самому длинному.

Перечислим независимые пути для потокового графа из примера 1:

Путь 1: 1-8.

Путь 2: 1-2-3-7а-7b-1-8.

Путь 3: 1-2-4-5-7а-7b-1-8.

Путь 4: 1-2-4-6-7а-7b-1-8.

Заметим, что каждый новый путь включает новую дугу.

Все независимые пути графа образуют базовое множество.

Свойства базового множества:

1) тесты, обеспечивающие его проверку, гарантируют:

q однократное выполнение каждого оператора;

q выполнение каждого условия по True-ветви и по False-ветви;

2) мощность базового множества равна цикломатической сложности потокового графа.

Значение 2-го свойства трудно переоценить — оно дает априорную оценку количества независимых путей, которое имеет смысл искать в графе.

Цикломатическая сложность вычисляется одним из трех способов:

1) цикломатическая сложность равна количеству регионов потокового графа;

2) цикломатическая сложность определяется по формуле

где Е — количество дуг, N — количество узлов потокового графа;

3) цикломатическая сложность формируется по выражению V(G) =p+ 1, где р — количество предикатных узлов в потоковом графе G.

Читайте также:  Способ применения таблеток пирацетам по 200 мг

Вычислим цикломатическую сложность графа из примера 1 каждым из трех способов:

1) потоковый граф имеет 4 региона;

2) V(G) = 11 дуг — 9 узлов + 2 = 4;

3) V(G) = 3 предикатных узла +1=4.

Таким образом, цикломатическая сложность потокового графа из примера 1 равна четырем.

Источник

Алгоритм тестирования базового пути

End if

Способ тестирования базового пути.

Суть метода (Т. МакКейб, 1976 г.) состоит в том, чтобы представить программу в виде графа, узлами которого являются отдельные операторы или их линейные последовательности. Выполнение тестового варианта соответствует отдельному пути в таком графе (называемом потоковым , т.к. путь в графе реализует поток управления при выполнении программы). Набор тестов строится таким образом, чтобы проверить базовое множество путей (маршрутов) в программе. Это гарантирует однократное выполнение каждого оператора программы при тестировании. Способ тестирования базового пути даёт возможность получить оценку комплексной сложности программы и использовать ее для определения необходимого количества тестовых вариантов.

Центральным понятием метода является потоковый граф. Он строится отображением управляющей структуры программы. В ходе отображения закрывающие скобки условных операторов и циклов (end if,end loop) рассматриваются как отдельные (фиктивные) операторы.

Узлы ( вершины ) потокового графа соответствуют линейным участкам программы, включают один или несколько операторов программы.

Дуги потокового графа отображают поток управления в программе (передачи управления между операторами).

Различают операторные и предикатные узлы. Предикатные узлы соответствуют простым условиям в программе. Составное условие программы отображается в несколько предикатных узлов. Составным называют условие, в котором используется одна или несколько булевых операций ( OR, AND ).

Например, фрагмент программы

if a OR b

then x

else y

вместо прямого отображения в потоковый граф вида, показанного на рис. 2.14а, отображается в преобразованный потоковый граф ( рис.2.14б )

Рис. 2.14. Отображение фрагмента программы в потоковый граф

Замкнутые области, образованные дугами и узлами, называют регионами. «Окружающая среда» графа рассматривается как дополнительный регион ( например, граф рис. 22б имеет три региона — R1, R2,R3).

Вторым важным понятием метода является цикломатическая сложность — метрика ПО, которая обеспечивает количественную оценку логической сложности программы. В способе тестирования базового пути цикломатическая сложность определяет количество независимых путей в базовом множестве программы и верхнюю оценку количества тестов, которое гарантирует однократное выполнение всех операторов.

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

Цикломатическая сложность вычисляется одним из трёх способов:

цикломатическая сложность равна количеству регионов потокового графа;

цикломатическая сложность определяется по формуле:

V (G) =E-N+2 где E — количество дуг, N — количество узлов потокового графа;

цикломатическая сложность формируется по выражения V(G)=p+1, где p — количество предикатных узлов в потоковом графе G.

Читайте также:  Способы получения каучука химия

Шаг 1. На основе текста программы формируется потоковый граф:

нумеруются операторы текста;

производится отображение пронумерованного текста программы в узлы и вершины потокового графа.

Шаг 2. Определяется цикломатическая сложность потокового графа (по любой из трёх формул).

Шаг 3. Определяется базовое множество независимых линейных путей.

Шаг 4. Подготавливаются тестовые варианты, инициирующие выполнение каждого пути. Каждый тестовый вариант (ТВ)формируется в следующем виде:

Исходные данные (И Д):

Ожидаемые результаты (ОЖ. РЕЗ.):

Исходные данные должны выбираться так, чтобы предикатные вершины обеспечивали нужные переключения — запуск только тех операторов, которые перечислены в конкретном пути, причём в требуемом порядке

(Задача на «занимательное программирование» — набор программ, выполняющих обработку текста на каком-либо языке и реализующих шаги 1 -4 алгоритма )

Пример 1.Рассмотрим процедуру “сжатия” файла, каждая запись которого состоит из двух полей, причем в результате обработки создается файл, записи которого содержат только одно поле, наибольшее из двух а или b.

Текст программы в псевдо-алгоритмической записи имеет следующий вид ( слева пронумерованы линейные участки и предикативные узлы ).

Procedure PRESS

1) Открыть_файл( );

1) do while ( NOT eof )

2) читать_запись( );

2) if ( запись_пуста )

3) then удалить_запись( );

4) else if ( поле а >= поля b)

5) then удалить_поле( b );

6) else удалить_поле( a );

7) end if;

8) end do;

9) Закрыть_файл( );

9) End proc

Потоковый граф изображен на рис 2.15

Рис. 2.15. Преобразованный потоковый граф процедуры «сжатия»

Этот потоковый граф имеет четыре региона, 9 узлов и 11 дуг. Независимые пути начинаются в начальном узле, а заканчивается в конечном узле графа и формируются в порядке от самого короткого к самому длинному. Такими путями будут следующие пути:

Путь 1:1-9.

Путь 2:1-2-3-7-8-1-9.

Путь 3: 1-2-4-5-7-8-1-9

Путь 4: 1-2-4-6-7-8-1-9.

Цикломатическая сложность графа V(G), вычисленная каждым из трёх способов равна:

потоковый граф имеет 4 региона — V(G) = 4;

V(G)=11дуг — 9 узлов + 2=4;

V (G) =3 предикатных узла + 1=4.

Таким образом, уровень сложности программы равен четырём.

Тестовые варианты для независимых путей будут иметь вид.

Путь 1:1-9.

ТВ1 :ИД: файл пуст

ОЖ. РЕЗ.: корректное завершение программы, файл не изменен.

Путь 2:1-2-3-7-8-1-9.

ТВ2: ИД: файл содержит одну пустую запись

ОЖ. РЕЗ.: корректное завершение программы, на выходе — пустой файл.

Путь 3:1-2-4-5-7-8-1-9.

ТВ3: ИД: файл содержит одну запись, в которой поле а больше поля в

ОЖ. РЕЗ.: корректное завершение программы, на выходе — файл с одной записью а.

Путь 4:1-2-4-6-7-8-1-9.

ТВ4: ИД: файл содержит одну запись, в которой поле в больше поля а

ОЖ. РЕЗ.: корректное завершение программы, на выходе — файл с одной записью в.

Источник

Оцените статью
Разные способы