Библиотека || ДонНТУ > Портал магистров ДонНТУ

Автоматизированная учебно-исследовательская система верификации и тестирования программ

О.Ф. Немолочнов, А.Г. Зыков, Л.Г. Осовецкий, К.В. Петров

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ

ФЕДЕРАЦИИ


ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ


САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ


Источник: http://spbcongress.ifmo.ru/file/trud2007.pdf




Верификации и тестированию подвергаются вычислительные (алгоритмические) процессы, порождаемые программами.

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

Вычислительный процесс (ВП), реализующий тот или иной метод преобразования информации через вычисление значений переменных по формулам и алгоритмам, может быть реализован как разными алгоритмами, так и описан на разных алгоритмических языках. Чтобы уйти от этого разнообразия предлагается использовать машинный код, задаваемый системой команд конкретного процессора (реального или виртуального), по которому на основе концепции вычислений [2] строится графо-аналитическая модель (ГАМ) вычислительного процесса [3].

При построении ГАМ всё множество команд программы разбивается на замк- нутые подмножества, образующие линейные, условные и объединительные верши- ны, которые описываются примитивами в виде вырожденных кубических покрытий.

Далее, с использованием свойств ВП как графа, осуществляется построение комплексных кубических покрытий для всех переменных, подлежащих верификации в анализируемых программах. При этом эталонное покрытие хранится в Базе знаний, а покрытия верифицируемых программ (например студенческих) в Базе данных. Эти покрытия и подлежат сравнению на эквивалентность [4].

Другой способ верификации основан на построении контролирующих тестов вычислительных процессов, подлежащих сравнению и их эквивалентность устанавливается перекрёстным тестированием. При построении тестов используется понятие простой логической неисправности константного типа условий-предикатов (УП) вычислительных процессов. Полнота контроля заданных константных неисправностей обеспечивает обход требуемых вершин и дуг графа ВП существенными значениями УП=TRUE’ \/ FALSE’. Для оценки полноты тестового контроля разработан и реализован метод моделирования логических неисправностей путём их непосредственного внесения в машинный код программы через её исполнение [5].