ВВЕДЕНИЕ 6
1 Постановка задачи 7
2 Обзор модели управляющей структуры программы 8
2.1 Представление сложных выражений в условном операторе 11
3 Выявление областей значений переменных в двоичном дереве 11
3.1 Представление циклов в виде дерева условий 16
4 Обнаружение дефектов 17
5 Процесс верификации 19
6 Описание реализованного алгоритма 20
6.1 Структура входного файла 20
6.2 Описание реализации алгоритма верификации 22
7 Экспериментальные результаты 23
ЗАКЛЮЧЕНИЕ 26
ЛИТЕРАТУРА 27
В процессе разработки программного продукта возможно возникновение ошибок. Ошибки возникают ввиду человеческого фактора. И они могут повлиять на работу продукта, что может привести к существенным временным или материальным потерям. В связи с этим, для выявления ошибок в процессе разработки становится необходимым осуществление верификации программного обеспечения.
Верификация - это процесс определения, выполняют ли программные средства и их компоненты требования, наложенные на них. Этот процесс включает в себя создание тестовых данных, подаваемых на вход программе, сравнивание ожидаемых и фактических результатов на выходах программы . Зачастую срок разработки строго регламентирован по времени, ввиду чего верификация в ручном режиме, на крупных программных продуктах, может потребовать больших временных затрат, а также повышает риск упущения ошибки в программе.
Решением этой проблемы является автоматизация некоторых этапов процесса верификации, в том числе генерации тестовых данных, что позволяет значительно сократить время, затрачиваемое на проведение тестов, и снизить влияние человеческого фактора.
В данной работе рассмотрена и реализована модель управляющей структуры программного кода в виде двоичного дерева для обеспечения полного покрытия условных операторов и выполнения верификации программного кода.
Такая модель представления позволяет получить все пути исполнения программы, включая интервалы областей значений переменных, участвующих в операторах ветвления на каждом шаге. Применение данной модели позволяет увеличить эффективность верификации в ходе цикла разработки программного обеспечения, генерируя входные области данных программы, промежуточные значения для каждой итерации и область выходных данных программы, что является ключом к выявлению дефекта.
Результаты работы были представлены на IX Международной молодежной научной конференции «Математическое и программное обеспечение информационных, технических и экономических систем».