DOI 10.25987^Ти.2020.16.2.006 УДК 519.7
АВТОМАТИЗАЦИЯ ПРОЦЕССОВ ТЕСТОВОГО КОНТРОЛЯ КОНЕЧНЫХ АВТОМАТОВ
Г.В. Петрухнова, С.А. Пруткова
Воронежский государственный технический университет, г. Воронеж, Россия
Аннотация: объектом исследования являются особенности автоматизации процессов тестового контроля работы конечных автоматов. Конечный автомат используется в качестве модели цифрового устройства или программного модуля. Операция тестового контроля - это информационная операция, при которой на одни контакты конечного автомата подаётся совокупность входных сигналов, а с других контактов снимаются реакции на эти сигналы. Тест контроля представлен бинарной матрицей и формируется генератором псевдослучайных чисел. При этом используется технология тестирования взвешенными псевдослучайными наборами. Вес входа - это частота подачи единичного логического сигнала на вход конечного автомата. Тестовый контроль конечного автомата осуществляется на основе заданного весового вектора. Разработанный программный продукт позволяет определить вес входа путем решения задачи оптимизации распределения вероятностей входных сигналов на основе обобщенного энтропийного критерия. Программный продукт позволяет управлять объектами тестирования, задавать вес для каждого входа конечного автомата, выбирать критерий оптимизации весового вектора из числа заданных, указывать параметры процесса оптимизации, проводить тестовый контроль конечных автоматов на основе заданного весового вектора, сохранять информацию об объекте тестирования, сохранять информацию о ходе тестового контроля и оптимизации, просматривать результаты тестового контроля и хода оптимизации. Представлен интерфейс программного продукта. Он может быть использован для исследования процессов оптимизации тестов и тестового контроля различных автоматных моделей
Ключевые слова: конечный автомат, энтропия, бинарная матрица, цифровое устройство, программный модуль, тестовый контроль
Введение
Путь к новым знаниям всегда лежит через получение, переработку и хранение информации. Современное общество является информационным. Процессы цифровизации, протекающие во всем мире, направлены на обеспечение автоматизации процессов получения, переработки и хранения информации во всех сферах человеческой деятельности и являются неотъемлемой чертой прогресса.
Стремительное развитие информационных технологий предопределило выход сферы приложений теории автоматов за пределы моделирования электронных устройств. Абстракции и модели, развитые в рамках теории автоматов, используются в различных научных дисциплинах. Среди них можно выделить такие как грамматика, математическая лингвистика, теория логических моделей, математическая логика и формальные аксиоматические системы, теория кодирования, теория вычислительной сложности, автоматное программирование и другие. Стоит отметить, что конечные автоматы тесно связаны с теорией алгоритмов и моделированием программных объектов. Модель объекта, представляемая в виде определенного
©Петрухнова Г.В., Пруткова С.А., 2020
формального автомата, называется автоматной моделью.
Данная статья посвящена тестовому контролю конечных автоматов (КА) [1] - [3] и автоматизации процессов такого тестирования. Представлена структура программного обеспечения для решения задач, возникающих при тестировании объектов, представленных в виде конечных автоматов.
В статье рассматривается контроль КА по принципу «годен - не годен». Операция контроля предполагает подачу на входы конечного автомата совокупности входных данных, снятие с выходов этой модели реакции на входные воздействия и последующий анализ информации. Контроль КА по принципу «годен - не годен» важен для внутрисхемного тестирования цифровых устройств, контроля аналогов автоматной модели, модернизации алгоритмов и программного обеспечения и других операций.
Задача автоматизации тестирования КА распадается на несколько относительно независимых частей [1]: формирование и оптимизацию тестовой последовательности, генерацию тестовых воздействий, проверку результатов тестового воздействия. В статье рассматривается структура программного обеспечения процессов генерации тестов контроля автоматных моделей.
Постановка задачи
Тест контроля будет формироваться генератором псевдослучайных чисел. При этом на каждый вход конечного автомата будут подаваться логические единицы с разной вероятностью (технология взвешенного тестирования объектов). Вес входа и = (и1 ...им), 0 <щ< 1, ¿ = 1,...,Ы, будет определяться путем решения задачи оптимизации распределения вероятностей входных сигналов. Для решения задачи оптимизации использован метод покоординатного спуска.
Реакцию конечного автомата на входные псевдослучайные воздействия представим в виде матрицы из К столбцов и N строк, каждый элемент которой равен или нулю, или единице:
Ун у12 . у1К
у21 у22 . у2К (1)
уЫ1 уЫ2 . уЫК
Задача оптимизации весового вектора может быть поставлена следующим образом. Требуется найти вектор и* = (и*,...,^), лежащий в области допустимых значений и* е У™ = {ы = (щ ...их), 0 < Ы; < 1, ¿=1, ...,Ы]. При этом выбранная целевая функция Н должна иметь минимальное значение.
Под целевой функцией Н будем понимать один из критериев качества, которые можно получить на основе обобщенного энтропийного критерия качества (2):
Н = а ^ ^ Р; ^1п(р;) + (1 - Р;) ^ 1п(1 - Р;)
^ • 1п(^) + (1 - Ч1) • 1п(1 -?;)) +
¡=1
с
^ wi •
+
+р
(2)
где а, р, у - коэффициенты;
м - длина теста;
К - число контрольных точек (входов, выходов, внутренних точек конечного автомата, к которым имеется доступ);
С - 2К возможных видов реакций (выходных наборов) конечного автомата на входные воздействия;
Р; - вероятность появления единичного сигнала в г'-м выходном наборе;
- вероятность появления единичного сигнала в '-й контрольной точке;
- вероятность появления г -го двоичного набора (у;1,у;2,у;з,-,Уг&) как реакции конечного автомата на внешнее воздействие.
На основе обобщенного критерия (2) получаются несколько частных энтропийных критериев, коэффициенты которых представлены в таблице.
Частные критерии
Частный Коэффициенты
критерий а р У
% 0 0
н7 0 1 0
я. 0 0 1
я4 V* % 0
я5 V* 0 1/к
я. 0 1 1
н7 V* % %
Результаты решения рассматриваемой задачи оптимизации представлены в работах [4],
[5].
На основе представленных выше энтропийных критериев разработано программное обеспечение для автоматической генерации тестов контроля конечных автоматов.
Структура программного обеспечения
В качестве объектов тестирования могут выступать программные модули и прототипы логических устройств. Разработанный программный продукт позволяет не только находить близкий к оптимальному весовой вектор КА, но и сохранять информацию об объекте тестового контроля, о ходе процесса оптимизации и о ходе тестирования. Данная информация, в зависимости от используемого объекта контроля, сохраняется в четырех разных типах файлов:
- файл с описанием тестируемого устройства;
- файл с описанием тестируемого программного модуля;
- файл с результатами оптимизации весового вектора;
- файл с результатами тестового контроля.
Структура функциональных модулей представлена на рис. 1.
Модуль «Главная» позволяет пользователю оперировать объектами тестирования: добавлять, редактировать и удалять. Для того, чтобы добавить объект, необходимо ввести следующие данные:
- название;
- количество входов;
- количество выходов;
- начальные частоты на входах;
- вид представления модели (если объект является прототипом цифрового устройства, то
вид представления - логические уравнения, иначе - файл тестируемой программы на языке С#).
Рис. 1. Структурная схема ПО
Для того чтобы редактировать объект, необходимо загрузить ранее добавленный файл с описанием этого объекта.
Модуль «Просмотр результатов» предоставляет возможность пользователю ознакомиться с результатами оптимизации и тестирования. Для этого достаточно загрузить файл с результатами оптимизации или тестирования с помощью открывшегося проводника.
Подробнее остановимся на модуле «Оптимизация». Перед началом процесса оптимизации необходимо выбрать ранее сохраненный файл с описанием объекта и путь для сохранения файла с результатом оптимизации. Стоит отметить, что процесс оптимизации весового вектора осуществляется только на эталонных объектах.
Под параметрами оптимизации понимается следующее:
- условие окончания выполнения алгоритма оптимизации;
- критерий оптимизации весового вектора согласно выражению (2) и таблице;
- шаг изменения веса каждого входа конечного автомата;
погрешность;
количество экспериментов или, другими словами, длина выборки, сформированной
генератором псевдослучайных чисел, на основе которой вычисляется вес входа.
Алгоритм оптимизации весового вектора имеет два условия остановки. Одним условием остановки является заданное число итераций выполнения алгоритма, другим заданная погрешность:
|Я;_! - Щ | < ерз, (3)
где - значение выбранного критерия оптимизации, полученное на предыдущем шаге;
- значение выбранного критерия оптимизации, полученное на текущем шаге;
ерБ (ерБ < 0.03) - заранее определенная погрешность.
Также алгоритм будет остановлен, если в процессе оптимизации шаг изменения веса уменьшится до нуля.
Рассматриваемый алгоритм оптимизации основывается на методе покоординатного спуска. Алгоритм данного процесса заключается в том, что выбирается i-й вход тестируемого объекта с определенным весом щ. Данный вес изменяется на величину Лб - шаг, заранее определенный, поочередно в обе стороны («+» и «-»). Если целевая функция убывает при полученном весе щ, то данный вес на i-м входе остается неизменным, и происходит переход на следующий вход г + 1.
После перебора всех входов необходимо действия. На рис. 2 представлена логика вы-
уменьшить шаг As на заданную величину, полнения процесса оптимизации, где step явля-
например 0.1, и повторить вышеописанные ется величиной As.
1
Уменьшить шаг
Вес оставить неизмененным. Переход к следующему входу
Изменить вес в +/- на J-ом входе
Конец
Рис. 2. Логика выполнения процесса оптимизации
Модуль «Тестирование» предоставляет возможность проверить пользователю эффективность работы алгоритма оптимизации. Для
начала тестирования выбирают эталонный объект с близким к оптимальному весовым вектором и тестируемый объект. Для сохране-
ния результатов тестирования требуется указать файл для записи результатов тестирования и путь к нему. На рис. 3 представлен примерный вид окна с результатами тестирования.
Рис. 3. Вид окна с результатами тестирования объекта
Из рисунка видно, что при использовании близкого к оптимальному весового вектора ошибка в работе автомата, названного «Устройство 1», находится уже при подаче первого тестового набора, при использовании входных частот логической единицы, равных 0.5, - на восьмом тестовом наборе.
Разработанное программное обеспечение позволило исследовать методики оптимизации весового вектора и последующего тестирования конечных автоматов. Результаты проведенных исследований показали эффективность взвешенного тестирования конечных автоматов.
Заключение
В данной статье рассматриваются задачи, возникающие при тестировании объектов, которые могут быть представлены как конечные автоматы. Контроль конечного автомата по принципу «годен - не годен» важен для прове-
дения внутрисхемного тестирования цифровых устройств, контроля аналогов автоматной модели, модернизации алгоритмов и программного обеспечения и других операций.
В статье представлена структура программного обеспечения для подготовки и проведению тестового контроля конечных автоматов по принципу «годен - не годен». Задача автоматизации тестирования конечного автомата распадается на несколько относительно независимых частей: управление объектами тестирования, формирование и оптимизация тестовой последовательности, генерация тестовых воздействий, проверка результатов тестового воздействия. В статье представлен пользовательский интерфейс основных подсистем разработанного программного продукта.
Проведенные экспериментальные исследования позволяют сделать вывод о целесообразности использования методик взвешенного тестирования конечных автоматов. Разработанный программный продукт может быть использован в учебном процессе в рамках дисциплин, связанных с синтезом цифровых автоматов, тестированием программного обеспечения, тестированием цифровых схем, а также для научных исследований процессов оптимизации тестов и тестового контроля различных автоматных моделей.
Литература
1. Бурдонов И.Б., Косачев А.С., Кулямин В.В. Использование конечных автоматов для тестирования программ // Институт Системного Программирования РАН. Электрон. дан. Режим доступа: URL: https://www.ispras.ru/publications/ispolzovanie_konechnykh _avtomatov_dlya_testirovaniya_programm.pdf
2. Верификация автоматных программ / С.Э. Вельдер, М.А. Лукин, А.А. Шалыто, Б.Р. Яминов. СПб.: Наука, 2011. 244 с.
3. Янкин Ю.Ю., Шалыто А.А. Метод создания программного обеспечения модулей, выполненных на основе программируемых логических интегральных схем // Системы управления и обработки информации. 2013. № 26. С. 128-135.
4. Петрухнова Г.В. Энтропийный критерий на основе меры симметричности бинарной матрицы // Вестник Рязанского государственного радиотехнического университета. 2019. № 1. С. 66-72.
5. Петрухнова Г.В. Анализ свойств симметрии бинарной матрицы в задачах тестирования цифровых устройств // Актуальные проблемы прикладной математики, информатики и механики: тр. Междунар. науч. конф. Воронеж: Научно-исследовательские публикации, 2019. С. 1595-1606.
Поступила 29.01.2020; принята к публикации 23.03.2020
Информация об авторах
Петрухнова Галина Викторовна - канд. техн. наук, доцент, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: gvpetruhnova@mail.ru
Пруткова София Александровна - магистрант, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: sof-prutkova@yandex.ru
AUTOMATION OF TEST CONTROL PROCESSES OF FINITE STATE MACHINES
G.V. Petrukhnova, S.A. Prutkova Voronezh State Technical University, Voronezh, Russia
Abstract: the object of research is the automation features of test control processes of finite state machines. A finite state machine is used as a model of a digital device or a software module. Test control operation is testing information operation [1], in which a set of in-circuit control input signals is being fed into inputs of finite state machines while оutput responses to these signals are being taken from other contacts. The control test is presented in the form of a binary matrix and is generated by a pseudo-random number generator. In this case, technology of weighted pseudo-random testing is used. Input weight is the frequency of supplying a single logical signal to the input of the finite state machines. Test control of the finite state machine is carried out on the basis of a given weight vector. The developed software product allows one to determine the input weight input by solving the problem of optimizing the probability distribution of input signals based on a generalized entropy criterion. The software product allows one to manage test objects, to set the weight for each input of the state machine, to select optimization criteria for the vector of weights from the specified set, to set parameters for the optimization process, to conduct test control of the finite state machines, to save information about the test object based on the set vector of weights, to save information about the testing management and the optimization process; to view test results and optimization process. The software product interface is presented. The software product can be used to research the processes of test optimization and test control of various automaton models
Key words: finite state machine, entropy, binary matrix, digital device, software module, test control, automation of processes
References
1. Burdonov I.B., Kosachev A.S., Kulyamin V.V. "The use of finite state machines for testing programs", Institute of System Programming RAS (Institut Sistemnogo Programmirovaniya RAN), available at: https://www.ispras.ru/publications/ispolzovanie_konechnykh_avtomatov_dlya_testirovaniya_programm.pdf
2. Velder S.E., Lukin M. A., Shalyto A.A., Yaminov B.R. "Verification of automaton programs" ("Verifikatsiya avtomatnykh program"), St. Petersburg, Nauka, 2011, 244 p.
3. Yankin Yu.Yu., Shalyto A.A. "A method for creating software for modules based on programmable logic integrated circuits", Management and Information Processing Systems» (Sistemy upravleniya i obrabotki informatsii), 2013, no. 26, pp.128-135
4. Petrukhnova G.V. "Entropy criterion based on measure of a binary matrix symmetry", Bulletin of Ryazan State Radio Engineering University (Vestnik Ryazanskogo gosudarstvennogo radiotekhnicheskogo universiteta), 2019, no 1, pp. 66-72.
5. Petruhnova G.V. "The analysis of of binary matrix symmetry properties in the tasks concerned with testing of digital devices", Proc. qf Intern. Conf.: Applied Mathematics, Computational Science and Mechanics: Current Problems (Aktual'nye problemy prikladnoy matematiki, informatiki i mekhaniki), Voronezh, 2019, pp. 1595-1606.
Submitted 29.01.2020; revised 23.03.2020
Information about the authors
Galina V. Petrukhnova, Cand. Sc. (Technical), Associate Professor, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh 394026 Russia), e-mail: gvpetruhnova@mail.ru
Sofiya A. Prutkova, MA, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh 394026 Russia), e-mail: sof-prutkova@yandex. ru