КРАТКИЕ СООБЩЕНИЯ
УДК 519.876.5
И. В. Р у д а к о в, А. В. Р е б р и к о в
МАСШТАБИРОВАНИЕ АЛГОРИТМОВ
ДЛЯ АВТОМАТИЧЕСКОЙ ГЕНЕРАЦИИ
МОДУЛЬНЫХ ТЕСТОВ
Рассмотрены вопросы разработки метода масштабирования ал-
горитмов, необходимого для проведения верификации программных
систем, обеспечивающей максимальный показатель структурного
покрытия элементов системы. Приведен разработанный метод
масштабирования, показано его место в процессе верификации
программных систем, а также представлены основные результа-
ты применения метода и их интерпретация.
E-mail:
;
Ключевые слова
:
тестирование, автоматическая генерация тестов, ве-
рификация, масштабирование алгоритмов.
Постоянно возрастающая сложность разрабатываемых программных си-
стем требует автоматизации процесса составления тестов, проверяющих кор-
ректность работы алгоритмов. В частности, особый интерес представляет
построение регрессионных тестов и тестов, направленных на обнаружение
статических ошибок, поскольку именно они позволяют выявить в среднем
90% ошибок, вносимых в код при разработке нового или доработке старого
функционала [1].
При анализе функционирования сложных алгоритмов полная, или фор-
мальная, верификация [2, 3] требует больших временн ´ых затрат [3], поэтому
в целях их сокращения необходимо иметь возможность проведения непол-
ной верификации [4]. Помимо сокращения временн ´ых затрат неполная ве-
рификация позволяет проверять системы с нецелочисленной логикой, что
невозможно сделать при полной верификации.
Необходимость разработки метода для неполной верификации программ-
ных систем обусловлена отсутствием единого синтетического метода такой
верификации [4]. Существующие аналоги являются узкоспециализирован-
ными, не обеспечивают требуемой степени покрытия кода или требуемого
уровня автоматизации верификации [4].
При проверке выполнения функциональных требований оказывается по-
лезным повысить уровень абстракции так, чтобы при составлении тестов
вычислительные ресурсы не расходовались на проверку несущественных
(с точки зрения данного функционального требования) свойств алгоритма.
Эта задача решается с помощью масштабирования алгоритма, при котором
задается набор событий, контролируемых в процессе составления тестов.
Множество наблюдаемых событий описывается как совокупность операто-
ров, информация о выполнении которых проверяется, и набора операндов,
значения которых также должны включаться в событие.
Требуется, с одной стороны, убрать из алгоритма как можно больше
операторов, не существенных для заданного уровня абстракции, а с другой
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2011. № 4 119