Тестирование базового пути
Введение
Какие возможности дает тестирование базового пути
Этапы тестирования базового пути
Пример работы
Формирование потокового графа
Формирование потокового графа
Структура потокового графа
Потоковый граф (структура)
Потоковый граф (типы узлов)
Определение цикломатической сложности потокового графа
Определение цикломатической сложности потокового графа
ЦС по количеству регионов
ЦС по количеству дуг и узлов
ЦС по предикатным узлам
Определение базового множества независимых линейных путей
Определение базового множества независимых линейных путей
Подготовка тест-кейсов, инициирующих выполнение каждого пути
Сравнение реальных и ожидаемых результатов
Зачем всё таки необходимо тестирование базового пути?
421.09K
Category: programmingprogramming

Лекция 6. Тестирование базового пути

1. Тестирование базового пути

ТЕСТИРОВАНИЕ
БАЗОВОГО ПУТИ
МДК 01.02 Поддержка и тестирование программных модулей
Преподаватель: Токарева Полина Николаевна

2. Введение

• Тестирование базового пути – это способ тестирования,
который основан на принципе «белого ящика»
• При использовании тестирования «белого ящика» известна
внутренняя структура программы, исследуются внутренние
элементы программы и связи между ними

3. Какие возможности дает тестирование базового пути

Способ тестирования базового пути дает возможность:
• получить оценку комплексной сложности программы;
• использовать эту оценку для определения необходимого
количества тест-кейсов.
• Тест-кейсы
разрабатываются для проверки базового
множества путей (маршрутов) в программе. Они
гарантируют однократное выполнение каждого оператора
программы при тестировании.

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

1.
Формирование потокового графа
2.
Определение цикломатической сложности потокового
графа
3.
Определение базового множества независимых линейных
путей
4.
Подготовка тест-кейсов, инициирующих выполнение
каждого пути
5.
Сравнение реальных и ожидаемых результатов

5. Пример работы

• Написать программу для
вычисления значения функции:
5 x 1 при x 2
f ( x)
1 3x при x 2

6. Формирование потокового графа

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

7. Формирование потокового графа

• Чтобы
построить потоковый
граф,
мы
пронумеровали
операторы
программы.
Операторы,
которые
идут
подряд и не содержат условий
или циклов, объединили в один
узел. Например, первые четыре
строки
программы,
где
объявляются переменные и
вводятся данные с клавиатуры,
обозначили цифрой 1.

8. Структура потокового графа

• Узлы
(вершины) потокового графа представляют собой
части программы, которые включают один или несколько
операторов.
• Дуги (линии) потокового графа показывают, как управление
передаётся от одного оператора к другому.
• Есть два типа узлов: операторные и предикатные. Из
операторного узла идёт максимум одна дуга, а из
предикатного — всегда две.
• Области, образованные узлами и дугами, называются
регионами. А всё, что вокруг графа, считается
дополнительным регионом.

9. Потоковый граф (структура)

Узлы
Дуги
Регионы

10. Потоковый граф (типы узлов)

предикатные
операторные
Предикатные
узлы
соответствуют простым
условиям в программе.
Если условие сложное
(использует логические
операции «и», «или» и т.
д.), оно разбивается на
несколько предикатных
узлов.

11. Определение цикломатической сложности потокового графа

• Цикломатическая
сложность — это показатель, который
помогает понять, насколько программа сложная с точки
зрения её логики.
• При тестировании программы цикломатическая сложность
показывает:
• сколько есть независимых путей в программе, которые стоит
проверить;
• какое максимальное количество тестов нужно провести, чтобы
каждый шаг программы выполнился хотя бы один раз.

12. Определение цикломатической сложности потокового графа

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

13. ЦС по количеству регионов

• Цикломатическая сложность равна
количеству регионов потокового графа. В
рассматриваемом примере потоковый граф G
имеет 2 региона (R1, R2), следовательно,
цикломатическая сложность равна V(G) = 2

14. ЦС по количеству дуг и узлов

• Цикломатическая сложность определяется по
формуле V(G) = E – N +2 , где E – количество
дуг, N – количество узлов потокового графа.
• В рассматриваемом примере число дуг в
потоковом графе равно E = 5, а число узлов
равно N = 5, следовательно, согласно
формуле выше, цикломатическая сложность
равна: V(G) = E – N + 2 = 5 – 5 + 2 = 2.

15. ЦС по предикатным узлам

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

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

• Независимым
называется любой путь, который
вводит новый оператор обработки или новое ПУТЬ 1
условие.
В
терминах
потокового
графа
независимый путь должен содержать дугу, не
входящую в ранее определенные пути.
• Путь
начинается в начальном узле, а
заканчивается
в
конечном
узле
графа.
Независимые пути формируются в порядке от
самого короткого к самому длинному. Все
независимые пути графа образуют базовое
множество.
ПУТЬ 2

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

Свойства базового множества:
• тесты,
обеспечивающие его проверку, гарантируют
однократное выполнение каждого оператора, а также
выполнение каждого условия по true-ветви и по false-ветви;
• мощность
базового множества равна цикломатической
сложности потокового графа.

18. Подготовка тест-кейсов, инициирующих выполнение каждого пути

• Подготавливаются
тест-кейсы, инициирующие выполнение каждого пути. Для
каждого тест-кейса (ТК) формируются входные данные и ожидаемые результаты.
• Количество
тест-кейсов
независимых путей
должно
соответствовать
выявленному
множеству

19. Сравнение реальных и ожидаемых результатов

• Реальные результаты каждого тест-кейса сравниваются с
ожидаемыми результатами.
• Определим реальные результаты работы программы в
рассматриваемом примере для каждого из тест-кейсов. Из
таблицы можно сделать вывод, что для каждого тест-кейса
реальный результат работы программы удовлетворяет
ожидаемому.

20. Зачем всё таки необходимо тестирование базового пути?

• Тестирование базового пути необходимо для того, чтобы
убедиться в корректности работы программы. Оно
позволяет проверить все основные пути выполнения
программы, включая различные условия и операторы. Это
помогает выявить ошибки и недочёты в коде, которые могут
привести к некорректной работе программы. Тестирование
базового пути помогает гарантировать, что каждый путь в
программе будет выполнен хотя бы один раз, что повышает
надёжность и качество программного обеспечения.
English     Русский Rules