Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект.doc
Скачиваний:
148
Добавлен:
01.05.2014
Размер:
606.21 Кб
Скачать

Маршруты делятся на:

1) Вычислительные маршруты. На каждом маршруте фиксируются данные и для каждого данного выбираются максимальные, минимальные значения, значения в точках разрыва и 1-2 средних значения. Сложность ,

- число вычислительных маршрутов

- число данных в i-м маршруте

2) Маршруты принятия логических решений. Сложность оценивается числом ветвлний на каждом маршруте.

Общая сложность программы ,

где с1 и с2 – весовые коэффициенты, задаваемые в зависимости от назначения программы.

Для оценки структурной сложности при тестировании логики программы вводят упрощенные критерии тестирования, поскольку полное тестирование невозможно.

Критерий 1. Критерий минимального покрытия. Отобранные маршруты должны хотя бы один раз покрывать каждую вершину и каждую дугу графа управления программы. Повторная проверка дуг не требуется.

Пример 1.

Критерий 1.

М1: 1-2-4-8

2

М2: 1-2-4-5-6-8

3

М3: 1-3-4-5-7-8

3

жирным выделены ветвления

Пример 2.

,

Критерий 1.

М1: 1-2-14

1

М2: 1-3-4-6-8-6-8-14

5

М3: 1-3-5-7-9-10-11-12-13-14

5

М4: 1-3-4-5-7-9-10-9-10-11-7-9-10-11-12-14

9

Критерий 2. Отбор базовых маршрутов, оцениваемых по цикломатическому числу графа (число McCabe)

ЦМЧ:

где - число связных компонент графа, равно числу дуг, необходимых для того, чтобы граф стал максимально связным (граф, в котором любая вершина достижима из любой другой вершины)

(если нет тупиков)

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

Для примера 1.

М1: 1-2-4-8

М2: 1-2-4-5-6-8

М3: 1-3-4-5-7-8

М4: 1-2-4-5-7-8

(М5): 1-3-4-8 – возможен, но не включается так как состоит из М1 и М3

(М6): 1-3-4-5-6-8 – возможен, но не включается так как состоит из М2 и М3

Для примера 2

М1: 6-8

М2: 9-10

М3: 7-9-10-11

М1-М3 – линейно-независимые циклические

М4: 1-2-14

М5: 1-3-4-6-8-14

М6: 1-3-5-7-9-10-11-12-13-14

М7: 1-3-4-5-7-9-10-11-12-13-14

М8: 1-3-4-5-7-9-10-11-12-14

М4-М8 – линейно независимые ациклические

S2=26

жирным – ветвления

Исследование графов реальных программ позволяют сделать замечания:

1) суммарная структурная сложность в основном определяется числом ветвлений и меньшей степени зависит от других структурных компонент графа

2) при фиксированном числе вершин в «широких» графах будет больше маршрутов, но сами маршруты будут короче, и наоборот, «узкие» графы имеют меньшее число, но более продолжительных маршрутов, в результате чего оценка сложности S2 меняется меньше чем цикломатическое число и больше коррелированна с общим числом графа. Для автоматического анализа графа по второму критерию можно использовать матрицы смежности, в которых элемент aij=1 если вершина j достижима из вершины j за одни шаг, и матрицы достижимости, в которых элемент dij, если вершина j достижима из i за любое число шагов.

n – число вершин

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

Успешно тестируются программы, у которых Z<=10

Могут тестироваться программы с Z<=30

Для программ с Z>30 успешное тестирование практически невозможно

Критерий 3.

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

Для примера 2.

М1: 1-2-14

М2: 1-3-4-6-8-14

М3: 1-3-4-6-8-6-8-14

М4: 1-3-5-7-9-10-11-112-14

М5: 1-3-5-7-9-10-9-10-11-7-9-10-11-12-14

М6: 1-3-4-5-7-9-10-11-12-13-14

М7: 1-3-4-5-7-9-10-11-7-9-10-11-12-13-14

М8: 1-3-5-7-9-10-11-12-13-14

М9: 1-3-5-7-9-10-11-7-9-10-11-12-13-14

М10: 1-3-4-5-7-9-10-11-12-14

М11: 1-3-4-5-7-9-10-11-7-9-10-11-12-14

S2=66

Недостаток:

учет только однократного повторения циклов, в действительности при тестировании необходимо проверить минимально возможное повторение циклов, максимальное значение повторения циклов и 1-2 промежуточных значения