ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.04.2024
Просмотров: 179
Скачиваний: 1
Путь4: 1—2—4—6—7a—7b—1—8
Независимым называется любой путь на графе G, который вводит новый оператор обработки или новое условие. Т.е. не проходим по одной и той же ветке 2 раза.
Как определить цикломатическую сложность?
1. ; E – количество дуг
N – количество узлов (вершин).
В графе G:
2.
P – количество предикатных узлов.
Графы и отношения
Графы – основопологающий инструмент в тестировании. В тестировании исользуются различные
модели на основе графов:
1.Граф потоков управления
2.Граф потоков данных
3.Дерево вызовов
4.Граф конечного автомата
5.Граф потока транзакций.
Основные нотации при создании графов.
Граф представляется в ООП как набор объектов и отношений между ними. Как обозначаются
отношения между ними?: |
̌ , где ̌ – отношение. |
Друзья |
|
A |
B |
Дети одних |
|
родителей |
|
Отношения:
1.Объект «А» вызывает объект «B»
2.Объект «А»
3. Данные объекта «А» используются для вычисления объекта «B»
4.Объект «Б» включается в объект «А»
5.Симметричные (А является братом Б, Б является братом А)
6.Несимметричные (А является другом Б, а Б не считает А своим другом)
Романова Т.Н. – Технология программирования [2011]by Melvin |
Страница 48 |
Имя
- объект в графе.
узла
Вес узла. Узлы могут иметь свойства. Эти свойства называются весом узла. Задача тестирования – убедиться, что все узлы с заданным весом имеют действительно такой вес.
Связь – это «трелочка» (или линия – в случае двунаправленной стрелки), показывающая отношения между объектами. На этой стрелке пишутся отношения.
Вес связи – связи могут обладать свойствами, которые и называются «весом».
12
Имя
Начало
|
P=0,17 |
|
17 |
P=0.05 |
- На графе обозначена вероятность перехода из 12-й |
|
вершины в 17-ю и в 25-ю. |
|
25 |
-входящая связь.
-Входной узел: ни одной входящей связи.
Увыходного нет выходящих, только входящие.
Отношения (симметричность, транзитивность)
Отношения ̌ транзитивно, если из |
̌ |
̌ |
̌ . Графически: |
||
A |
быстрее |
быстрее |
C |
|
|
|
|
|
|||
|
|
|
|
Симметричность – очень важное свойство отношений, его следует тестировать. Какие отношения могут быть несимметричными? Отправил на печать – принтер взялся за бумагу, все, отменить назад нельзя. UNDO – симметричная операция.
Тестирование циклов
1.Сначала проходим цикл проходим заданное количество раз (для FOR).
2.Попытаемся пройти цикл N+1 раз.
3.Попытаемся пройти цикл N–1 раз.
4.Пройдем цикл 1 раз.
5.Пройдем цикл 2 раза.
6.Зададим индекс равным нулю.
Неструктурированные циклы (goto) не тестируются, а сразу перепроектируется.
Формирования очереди:
1.FIFO
2.LIFO
3.Пакет. Создается пакет и целиком запускается на выполнение.
Романова Т.Н. – Технология программирования [2011]by Melvin |
Страница 49 |
26.04.2011
Тестирование очередей и потоков данных.
Типы очередей – FIFO, LIFO.
Пакетная обработка – когда количество транзакций – конечное число. Напр., очередь накопилась до определенного числа – и она поступает на обработку. Пакет – очередь, состоящая из определенного конечного числа транзакций.
Случайное обслуживание – осуществляется случайным образом (обычно на основе вероятностной величины).
Очередь по приоритету. Каждая транзакция имеет свой приоритет, определяемый по определенному правилу. Бывает одноприоритетная очередь. Очередь по приоритету – это когда имеется одна очередь, а внутри этой очереди имеются несколько очередей.
Множественная обработка – это когда множество очередей, и имеется свое правило, какую очередь выбрать (на курском вокзале я покупаю билет в той кассе, где народу меньше, а в кассах аэрофлота я стою только в той очереди, где продается билет на нужный мне рейс).
Как тестировать очереди.
Несколько общих рекомендаций, которые дает Бейзер в тестировании черного ящика:
Тестирование пределов длины очереди. Т.е. пробуем превысить максимально заданное количество.
Тестирование пустой очереди. Активация обработки, когда в очереди нет ничего.
Проверка циклов. Очередь образуется, возможно, в каком-то цикле. Тогда нужно протестировать этот цикл по правилам тестирования циклов (см.предыдущую лекцию).
Динамическое изменение длины очереди.
Тестирование сортировки и выбора. В FIFO и LIFO идет либо прямая либо обратная сортировка соответственно. Поэтому здесь следует тестировать правильность сортировки, чтобы очередь работала как надо. Если идет сортировка на основе ключа, тогда надо еще просмотреть, как пройдет сортировка в случае повторяющихся ключей.
Тестирование очереди с множественными приоритетами. Тестируют каждую очередь, а затем более высокий уровень приоритетов – между очередями (см. пример с аэрофлотом выше).
Тестирование потоков данных.
Романова Т.Н. – Технология программирования [2011]by Melvin |
Страница 50 |
Построим граф потока данных (граф потока данных). На основе этого графа тестируем.
1
DEF(i) = {x|i-я вершина определяет переменную x}
b |
2 |
a |
множество определений данных |
USE(i)={x|i-ая вершина использует x} 3
Множество использований данных
4 |
DU-цепочка [x,I,j] |
DU-цепочки:*a,1,4+, *b,1,3+, *b,1,6+, *c,4,6+.
5
6 |
Шаги способа DU-тестирования. |
|
1.Построение управляющего графа программы.
2.Построение информационного графа программы.
3.Формируем DU-цепочки и записываем все переменные.
4.Построение маршрутов, которые следует протестировать.
5.Подготовка тестов.
Достоинства метода:
1.простота формирования DU-цепочек.
2.Простота автоматизации. Граф строится автоматически. Недостаток метода:
1.Трудно определить оптимальное число независимых путей. Дело в том, что число независимых путей тяжело определить.
Романова Т.Н. – Технология программирования [2011]by Melvin |
Страница 51 |