Второй критерий

advertisement
Оценка сложности продукта
Критерии выделения маршрутов
• Соответствуют критериям определения
структурной сложности программных модулей
• Критерии:
– Покрытия графа программы минимальным
количеством маршрутов, охватывающих дугу графа
хотя бы один раз (Х1)
– Выделения линейно-независимых маршрутов,
отличающихся хотя бы одной дугой (Х2)
– Выделения всех маршрутов при всех возможных
комбинациях дуг, входящих в маршруты (Х3)
Первый критерий
• Первый критерий (простейший) состоит в выборе минимального
множества маршрутов программы, охватывающих все
последовательности передач управления (ветвления при условных
операторах и переключателях) и учитывающих исполнение
программы по каждому направлению при ветвлении. По этому
критерию граф программы по управлению должен быть покрыт
минимальным набором путей, проходящих через каждый оператор
ветвления по каждой дуге хотя бы один раз. При этом в процессе
проверки гарантируется выполнение всех переходов между
операторами программы и каждого оператора не менее одного раза.
• Однако минимальное число маршрутов, выделяемых по первому
критерию, не обеспечивает исполнения каждого оператора при
различных сочетаниях предшествующих условий и
последовательностей операторов, образующих весь набор
маршрутов, проходящих через данное ветвление передачи
управления.
Второй критерий
• Второй критерий выбора маршрутов для оценки
сложности структуры заключается в
анализе базовых маршрутов в программе,
формируемых на основе
определения цикломатического числа исходного
графа проверяемой программы. Для определения
цикломатического числа – Z исходного графа
программы используется полное число вершин N,
количество связывающих дуг Y и число связных
компонент P
• Z = Y – N + 2*P
Второй критерий (2)
• Вычисление цикломатического числа осуществляется по
величинам, определяемым по максимально связанному графу,
т.е. графу, у которого любая вершина доступна из любой
другой. В максимально связном графе цикломатическое число
равно максимальному числу его линейно-независимых циклов.
Величина Pсоответствует количеству связных компонент
исходного графа или количеству дуг, необходимых для
превращения исходного графа в максимально связный граф.
Для большинства правильных (корректных) графов достаточно
замыкания начальной и конечной вершин. В этом случае Р = 1,
т.е. требуется одна замыкающая дуга. Если граф (программа)
составлены некорректно и в нем имеются тупиковые или
висячие вершины, то для его превращения в максимально
связный граф потребуется большее количество замыкающих
дуг.
Второй критерий (3)
• Таким образом, данный критерий требует проверки каждого
линейно-независимого цикла в максимально связном графе
программы. В исходном графе программы это соответствует
однократной проверке каждого линейно-независимого
ациклического маршрута и каждого линейно-независимого
цикла, в совокупности образующих базовые маршруты. Каждый
линейно-независимый цикл или маршрут отличается от всех
остальных хотя бы одной вершиной или дугой, т.е. его структура
не может быть полностью образована компонентами других
маршрутов.
• Для структурированных программ определение
цикломатического числа может осуществляться на основе
количества вершин, в которых происходит ветвление: Z = nв + 1.
Структурированными считаются программы, которые не имеют
циклов с несколькими выходами, а также не имеют переходов
внутрь циклов или условных операторов.
Пример оценки сложности
тестирования программ
1
1
2
5
2
3
5
4
6
4
9
7
7
12
11
6
3
8
10
8
9
14
15
10
11
13
16
17
12
19
18
14
20
13
Третий критерий проверки
• Однократная проверка не только линейно
независимых, но и всех линейно зависимых
циклов и ациклических маршрутов
• Анализ хотя бы один раз каждого из реально
ациклических маршрутов исходного графа
программы и каждого цикла, достижимого из этих
маршрутов
Третий критерий проверки (2)
• В нашем случае это 6 ациклических и 5
маршрутов, из которых достижимы элементарные
циклы
• Для реализации выделенных маршрутов
необходимо в 11 тестах задать 66 условий
• Особенностью последних 4 маршрутов и
соответствующим им ациклических маршрутов
является полный перебор сочетаний ветвлений в
вершинах 3 и 12
Третий критерий проверки (3)
• В реальных программах часть маршрутов
может оказаться нереализуемой
• Для каждого реализуемого маршрута
может быть необходимойпроверка при
нескольких прохождениях циклов и при
нескольких значениях каждой переменной
ссылки
• http://ru.wikipedia.org/wiki/Цикломатическа
я_сложность
Download