К повышению полноты тестов, построенных по модели расширенного автомата

К повышению полноты тестов, построенных по модели расширенного автомата

Язык статьи
Английский
Аннотация
Расширенные автоматы активно используются при построении тестов на основе формальных моделей. Однако полнота тестов, построенных по расширенному автомату на основе покрытия путей, переменных и т.п., остается практически неизвестной; более того, как известно, такие тесты не обнаруживают большое количество часто встречающихся функциональных ошибок в программных реализациях систем, поведение которых описано таким расширенным автоматом. В данной работе мы предлагаем способ для расширения множества тестовых последовательностей, построенных по расширенному автомату. Поведение расширенного автомата реализуется в языке Java с использованием достаточно простого шаблона. Далее тест, построенный по расширенному автомату одним из известных методов, проверяется па полноту относительно ошибок, сгенерированных инструментом µJava. Поскольку программа составлена по шаблону, то не обнаруженные тестом ошибки напрямую переносятся на ошибки в расширенном автомате. После этого различающая последовательность строится по некоторой автоматной абстракции расширенного автомата, поскольку существуют эффективные методы построения различающих последовательностей для конечных автоматов. Такой конечно автоматной абстракцией может быть, например, l-эквивалент, где l-эквивалент представляет собой дерево высоты l, которое частично описывает поведение расширенного автомата на входных последовательностях длины не более l. Поскольку l-эквиваленты суть конечные автоматы, то для не слишком больших l построение различающей последовательности достаточно просто. Исходный тест, расширенный такими различающими последовательностями, обнаруживает значительно больше ошибок в программных реализациях системы, для которой исходный расширенный автомат использовался как спецификация.
DOI
10.31144/si.2307-6410.2016.n7.p23-32
УДК
Страницы
23-32
Файл
Номер