Page 8 - И.В. Рудаков, А.В. Ребриков - ПРОВЕРКА ВЫПОЛНЕНИЯ ФУНКЦИОНАЛЬНЫХ ТРЕБОВАНИЙ К АЛГОРИТМУ НА ОСНОВЕ СТРУКТУРНОЙ ГЕНЕРАЦИИ МОДУЛЬНЫХ ТЕСТОВ

рой изменяет уровень цикломатической сложности наименьшим обра-
зом. Более эффективен с точки зрения качества получаемых тестов,
однако более затратный.
Метод комбинированного исключения.
Совмещает в себе идеи
методов группового и итеративного исключения. Если переменные и
операторы слабо влияют друг на друга, данный метод исключает их,
как метод группового исключения, в противном случае он исключа-
ет их в течение итеративного процесса. Слабость связи исчисляется
уровнем связи в графе зависимостей алгоритма.
Жадный конструктивный метод.
Пространство поиска предста-
вляется как направленный ацикличный граф, корнем которого являет-
ся пустое множество. В пространстве с
n
оптимизаций корень содер-
жит
n
детей, представляющих множества размером в один элемент.
Каждый последующий узел содержит
2
n
детей, которые представля-
ют добавление отличающейся оптимизации к той, что находится в
родительском узле. Конструктивный алгоритм спускается от корня,
выбирая на каждом шаге узел с наилучшим значением порождаемо-
го покрытия до тех пор, пока не сконструирует множество заданной
длины.
Структурная генерация с масштабированием показала существен-
ное улучшение покрытия кода при одновременном уменьшении обще-
го числа тестов (рис. 1) и лучших временных характеристиках, чем у
полной верификации.
На рис. 2 показано время генерации в зависимости от глубины аб-
стракции, а также число обнаруженных ошибок. График числа обнару-
женных ошибок позволяет определить примерный уровень насыщения
Рис. 1. Сравнение способов генерации тестов по покрытию кода
74
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012