Рис. 2. Структура программного комплекса
Рис. 3. Время генерации символьных
решателей
На рис. 3 показано время генера-
ции для различных символьных реша-
телей, используемых в разработанном
программном комплексе, в зависимо-
сти от глубины абстракции, а также
число обнаруженных ошибок. График
числа обнаруженных ошибок позволя-
ет определить примерный уровень на-
сыщения при глубине абстракции 3,
после которого не происходит суще-
ственного повышения качества тести-
рования.
Структурная генерация с масшта-
бированием показала существенное
улучшение покрытия кода при одно-
временном уменьшении общего числа
тестов (рис. 4). При этом она показы-
вает лучшие временн ´ые характеристи-
ки, чем полная верификация.
Проведенные исследования позволили установить глубину абстракции,
после которой не происходит существенного повышения числа найденных
ошибок. Полученный результат используется в методе как первая оценка при
поиске достаточного уровня абстракции, что позволяет: существенно сокра-
тить время структурной генерации; установить число ложных срабатываний
(из 47 найденных ошибок 44 были подтверждены составленными вручную
тестами); показать, что разработанный метод позволяет генерировать тесты,
выявляющие больше ошибок и покрывающие больше кода, чем традицион-
ные методы ручного и автоматизированного составления тестов.
Кроме того, структурная генерация тестов применима к нецелочислен-
ным алгоритмам, которые не могут быть проверены с помощью формальной
верификации.
Эксперименты проводились на модулях с открытым исходным кодом
репозитория CPAN [9]. Программный комплекс, реализующий данную схему
122 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2011. № 4