ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
2017 Управление, вычислительная техника и информатика № 38
ДИСКРЕТНЫЕ ФУНКЦИИ И АВТОМАТЫ
УДК 004
DOI: 10.17223/19988605/38/10
И.Б. Бурдонов, А.С. Косачев ТЕСТИРОВАНИЕ СИСТЕМЫ АВТОМАТОВ
Статья посвящена проблеме тестирования составных систем, компоненты которых моделируются конечными автоматами, а взаимодействие между ними - обменом сообщениями по симплексным каналам связи. Система описывается ориентированным графом связей, вершины которого соответствуют автоматам компонентов, а дуги - каналам связи. При тестировании возможно наблюдение состояний автоматов и передаваемых сообщений. Гипотеза о связях предполагает, что граф связей статический и не содержит ошибок. Это позволяет существенно сократить время тестирования детерминированной системы вплоть до экспоненциального уменьшения числа тестовых воздействий.
Ключевые слова: ориентированный граф; покрытие графа; взаимодействующие автоматы; тестирование; сети.
Большинство сложных, особенно распределённых систем представляет собой набор взаимодействующих компонентов. В данной статье компоненты моделируются конечными автоматами, а взаимодействие - обменом сообщениями между автоматами. Структура связей между компонентами моделируется ориентированным графом (графом связей), в вершинах которого находятся автоматы, а дуги соответствуют симплексным каналам передачи сообщений. Внутренние дуги соединяют автоматы между собой, а внешние дуги связывают систему с её окружением. Внешняя входная дуга ведёт из внешней среды в один из автоматов, а внешняя выходная дуга ведёт из автомата во внешнюю среду. При тестировании тест играет роль внешней среды: передаёт сообщения в систему по внешним входным дугам и принимает от системы сообщения по внешним выходным дугам.
Если граф связей статический, т.е. не меняющийся в процессе работы системы, система (так же как её компоненты) может моделироваться конечным автоматом, получающимся из автоматов-компонентов с помощью подходящего оператора композиции, учитывающего граф связей.
Система работает правильно, если структура её связей правильна и каждый автомат в системе работает правильно. Обратное, вообще говоря, не верно, если требования к системе неоднозначно определяют её структуру, например, функциональные требования к системе, связывающие сообщения, получаемые от системы, с сообщениями, посылаемыми в систему. В данной статье целью тестирования является покрытие переходов автоматов системы, достижимых при работе этих автоматов в системе. Поэтому если в структуре связей нет ошибок (гипотеза о связях), т.е. граф связей автоматов совпадает с заданным, то такое тестирование сводится к проверке правильности переходов каждого автомата. Проблема в том, что автомат может тестироваться только как часть системы, т. е. тест не имеет непосредственного доступа к автомату, и вынужден осуществлять тестовые воздействия с помощью сообщений, посылаемых по внешним входным дугам, которые ведут, быть может, в другие автоматы. Тестирование компонента такой системы похоже на тестирование в контексте [1-5], когда этот компонент рассматривается как тестируемая система, а остальные - как контекст. Существенное отличие, однако, в том, что в таком контексте тоже возможны ошибки, но если верна гипотеза о связях, то только в компонентах, а не в графе связей. С другой стороны, при тестировании проверяется работа сразу нескольких компонентов, через которые проходят сообщения. Поскольку автомат тестируется как часть системы, могут быть проверены не все его переходы, которые проверяются при автономном тестировании с прямым доступом к автомату. Речь идет только о переходах автоматов, достижимых при его работе в составе системы.
Тестирование композиционного автомата системы, получающегося композицией автоматов по заданному графу связей, обеспечивает проход по всем его достижимым переходам. При этом, конечно, проверяются все достижимые переходы автоматов-компонентов, но может делаться много «лишней работы». Гипотеза о связях позволяет существенно сократить время тестирования.
В статье предлагается алгоритм построения набора тестов, который является полным (проверяет все достижимые переходы автоматов-компонентов) при выполнении двух условий: 1) верна гипотеза о связях; 2) система является детерминированной. Дополнительно алгоритм определяет недостижимые переходы автоматов. Предполагается, что нам известно, каким должен быть каждый автомат (задан граф переходов автомата с точностью до изоморфизма), и именно это проверяется при тестировании. Кроме того, тест может наблюдать как состояния автоматов в вершинах графа связей, так и сообщения на его дугах. Поскольку не налагается ограничений на связность графов переходов автоматов, полный набор тестов может содержать более одного теста. При переходе от одного теста к другому требуется рестарт системы. Такие предположения могут быть оправданы, например, при имитационном тестировании аппаратуры (simulation-based verification) (см. например, [6]).
1. Модель
Дуга рассматривается как очередь сообщений длины 1. По дуге можно послать сообщение, если она пуста (на ней нет сообщений), и с дуги можно принять сообщение, если она не пуста (на ней есть сообщение). Если сообщение передаётся по внутренней дуге a ^ b, то оно было послано автоматом в вершине a и будет принято автоматом в вершине b. Если a ^ b - внешняя входная дуга, то a - внешняя среда. Если a ^ b - внешняя выходная дуга, то b - внешняя среда. Автомат может принимать одновременно несколько сообщений по нескольким (не обязательно всем) входным дугам, но не более одного сообщения по каждой дуге, и посылать несколько сообщений по нескольким (не обязательно всем) выходным дугам, но не более одного сообщения по каждой дуге. Автомат предполагается детерминированным. В графе связей мы допускаем кратные дуги, для различения которых будем помечать их символами из алфавита Z. Для простоты будем считать, что все вершины перенумерованы 0, 1, 2, ..., k, где k - число вершин, в которых находятся автоматы, а номер 0 соответствует внешней среде. Введём формальные определения и обозначения.
Граф связей определяется как набор G = (V, Z, E), где V = {0, 1, ..., k} - конечное множество вершин, E с (Vx Z х V) \ ({0} х Z х {0}) - конечное множество дуг (у внешней среды 0 нет дуг-петель). Дуга (v, z, w) задана начальной вершиной v, пометкой z и конечной вершиной w. Дуга (0, z, w) - внешняя входная дуга, (v, z, 0) - внешняя выходная дуга. Кроме того, Iv = {(a, z, v) | (a, z, v) e E} - множество дуг, заканчивающихся в вершине v, Ov = {(v, z, b) | (v, z, b) e E} - множество дуг, начинающихся в вершине v. I0 содержит все внешние входные дуги, O0 - внешние выходные дуги, E \ (I0 u O0) - внутренние дуги.
Пусть M- множество всех возможных сообщений, общее для всех автоматов в системе.
Для множеств A и B через AB обозначим множество всех отображений из B в A.
Система автоматов определяется как граф связей G, в котором каждой вершине v поставлен в соответствие автомат Av = (M, Sv, Xv, Yv, Tv, s0v), где Sv - конечное множество состояний автомата, Xv = {x \3f (x с f & f e MIv)} - множество стимулов (входных символов), Yv = {y (y с f & f e MOv)} -множество реакций (выходных символов), Tv с Sv х Xv х Yv х Sv - конечное множество переходов, s0v e Sv - начальное состояние автомата. Обозначим: s — ?x!y ^ t = (s, x, y, t) e Tv, s — ?x!y ^ = 3t (s,
x, y, t) e Tv. Там, где это не приведёт к недоразумению, мы будем в неформальном тексте сам переход (s, x, y, t) обозначать стрелкой s — ?x!y ^ t. Состояние t будем называть постсостоянием перехода. Если постсостояние несущественно, то переход (s, x, y, t) будем обозначать стрелкой s — ?x!y Дугу из Iv будем называть входной дугой автомата в вершине v, а дугу из Ov - выходной дугой этого автомата. Стимул автомата - это частично определённое отображение x: Iv ^ M, которое каждой входной дуге i e Dom(x) ставит в соответствие сообщение x(i), принимаемое по этой дуге. Реакция автомата - это частично определённое отображение y: Ov ^ M, которое каждой выходной дуге j e Dom(y) ставит в соответствие сообщение y(j), посылаемое по этой дуге.
Для описания состояния входных и выходных дуг автомата в вершине V введём два частично-определённых отображения хЛ ^ М и у/: OV ^ {М}. Первое отображение каждой непустой входной дуге / е Л ставит в соответствие сообщение т е М, находящееся на этой дуге. Второе отображение
каждой пустой выходной дуге ] е Оу ставит в соответствие множество сообщений М. Эти отображения
# # «
xV и yV порождают множества потенциальных стимулов и потенциальных реакций, которые автомат может, соответственно, принять и послать при данном состоянии входных и выходных дуг, если, конечно, в текущем состоянии автомата определены соответствующие переходы: X* = {х: М | Бот(х) с Бот(ху#) & V/ е Бот(х) (х(/) = х/(/'))}, У* = {у: ОV ^ М | Бот(у) с Бот(у *)}.
Определим формальное условие выполнения перехода 5 - ?х!у ^ £ х е X* & у е У*.
2. Детерминизм
Для того чтобы система автоматов была детерминированной, потребуем детерминированности каждого из этих автоматов. Прежде всего, состояние и стимул должны однозначно определять реакцию и постсостояние перехода:
1) Vs,x,x'у,у'5 - ?х!у ^ Г & 5 - ?х!у' ^ Г ^ у = у' & t = Г.
Распределение х/ сообщений по входным дугам автомата неоднозначно определяет стимул, принимаемый автоматом, поскольку автомат может как принимать, так и не принимать сообщения с непустых входных дуг. Будем говорить, что стимулы х и х' совместимы, и обозначать х « х', если при некотором отображении х/ автомат может принять любой из этих стимулов, т.е. х е X* и х' е X*. Формально х « х' = V/ е Бот(х) п Бот(х') (х(/) = х'(/)). Заметим, что все стимулы во множествеX* совместимы
друг с другом. Отсюда вытекает второе требование детерминизма автомата:
2) нет переходов из одного состояния по разным совместимым стимулам: V5,х,х'уу',t,t' х Ф х' & х « х ^ -,(5 - ?х!у ^ & 5 - ?х'!у'
Теорема 1. Если выполнены оба требования детерминизма, то состояние 5у автомата в вершине V
и отображения х/ и у/ однозначно определяют, выполняет ли автомат какой-либо переход, и если выЛ Л
полняет, то сам переход, т.е. однозначно определяют принимаемый стимул xV , посылаемую реакцию yV
Л
и постсостояние ^ .
Доказательство. По определению отображения х/ и у* однозначно определяют множества XV и У/. Из второго требования детерминизма следует, что при любом распределении х/ сообщений на входных дугах автомата, порождающем множествоX* потенциальных стимулов, не более одного из этих стимулов ху е X* может быть принято автоматом в данном состоянии 5у. Такой стимул ху будем называть выбираемым, он может отсутствовать. Правда, это не означает, что выбираемый стимул ху (если он есть) обязательно будет принят автоматом, поскольку выполнение перехода с приёмом этого стимула обусловлено возможностью послать реакцию. Рассмотрим все случаи поведения автомата в состоянии 5, при заданных х# и уV (однозначно определяющих Ху# и Уу#), определяя, будет ли выполнен переход, и если буЛ Л Л
дет, то сам переход, т.е. принимаемый стимул ху , посылаемую реакцию уу и постсостояние ^ .
Если имеется выбираемый стимул ху е X/, то он единственный по второму требованию детерминизма. При этом, если для некоторой реакции у есть переход 5у - ?х!у ^ t и у е У*, т.е. реакция у может быть послана (нужные выходные дуги пусты), то автомат выполнит этот переход (он единственный по первому требованию детерминизма), ху х, уу у, tv t. В противном случае автомат не выполнит никакого перехода, ху = 0, уу = 0, ^ = 5у. Последнее имеет место и в случае отсутствия выбираемого стимула. Теорема 1 доказана.
3. Композиция
Определим композицию детерминированных автоматов по заданному графу связей. Результатом композиции будет автомат («5, X, У, Т, 50), отражающий работу системы в целом, включая все автоматы-компоненты и все дуги.
Состояние системы есть набор 5 = (^1, 52, • ••, 5к, В), где 52, • ••, 5к есть набор состояний её автоматов, а В: Е ^ М - частично-определённое отображение, задающее распределение сообщений по дугам графа связей: оно для каждой непустой дуги указывает находящееся на ней сообщение^ Начальное состояние системы 50 = (51о, 520, •••, ^¿о, 0), в котором каждый автомат находится в своём начальном состоянии, а сообщений на дугах нет
Определение переходов композиции зависит от предполагаемого режима работы • В синхронном режиме за один такт срабатывают все автоматы, которые могут выполнить переход, а в асинхронном -только один такой автомат (вообще говоря, некоторое подмножество автоматов), выбираемый недетерминированным образом^ Поскольку в рамках данной статьи нас интересуют только детерминированные системы, асинхронный режим далее не рассматривается •
Определим переходы композиции формально^ В состоянии системы 5 внешняя среда может послать в систему сообщения по любым пустым внешним входным дугам и принять сообщения с любых занятых внешних выходных дуг Это определяет допустимые внешние стимулы и реакции Стимул
х: 10 ^ М допустим, если Бот(х) п Вот(В) = 0, в частности всегда допустим пустой стимул х = Реакция у: О0 ^ М допустима, если у с В, в частности всегда допустима пустая реакция у = 0^ Если
Л АЛЛ
стимул х и реакция у допустимы, то в композиции определяется переход 5 — ?х!у ^ t, где t = (^ , ¿2, • ••, , В )• Определим для каждого V постсостояние ^ и распределение сообщений В •
Рассмотрим вершину v. Для состояния системы 5 однозначно определяются отображение х, как сужение отображения В на множество входных дуг ,-го автомата: х* = {(7, т)|(7, т) е В & 7 е I,}, и отображение у/, которое каждой пустой выходной дуге ,-го автомата ставит в соответствие множество М всех сообщений: у/ = {(/', М) |у е О^\Оот(В)} • По теореме 1 при заданных х/ и у * автомат в вершине V выполняет не более одного перехода, и однозначно определяются принимаемый стимул х„ и
Л Л Л
посылаемая реакция у, , а также постсостояние и , которое и становится частью состояния t •
Определим В • Сначала положим В : = В • Рассмотрим, как должно меняться расположение сообщений на дуге е = (7, г, /')•
1 В состоянии 5 дуга е была пустой, тх^ е £ ^от(В) Если / Ф 0, тоу-й автомат не принимает с неё сообщения, тх^ е £ Бот(х/ )• Если 7 Ф 0, то 7-й автомат посылает по этой дуге сообщение т, если е е Бот(уг) & у7 (е) = т, тогда пара (е, т) добавляется в В \ Если / = 0, то е £ Вот(у)• Если 7 = 0, то е е Вот(х) ^ е е Вот(В ) & В (е) = х(е), тх^ если внешняя среда посылает по внешней входной дуге е сообщение х(е), то пара (е, х(е)) добавляется в В\
2) В состоянии 5 на дуге е было сообщение т, тх^ е е Вот(В) & В(е) = т• Если / Ф 0, тоу-й автомат принимает это сообщение, если е е Бот(х/) & х/ (е) = т, тогда пара (е, х/ (е)) удаляется из В • Если 7 Ф 0, то 7-й автомат не может послать по этой дуге никакого сообщения, поскольку дуга в состоянии 5 занята, тх^ е £ Вот(у7 )• Если/ = 0, то е е Бот(у) ^ е £ Бот(В ) & В(е) = у(е), тх^ если внешняя среда принимает по внешней выходной дуге е сообщение у(е), то пара (е, у(е)) удаляется из В • Если 7 = 0, то е £ Вот(х).
__ Л . Л Л Л Л
Тем самым, В = (В и х иу1 и ••• иук) \ (у и х1 и ••• и хк )•
Будем говорить, что такая композиция детерминированных автоматов детерминирована, если в каждом достижимом (из начального состояния) состоянии каждая пара допустимых стимула и реакции однозначно определяет постсостояние системы, тх^ выполняемый переход^
Теорема 2. Композиция детерминированных автоматов детерминирована^
Доказательство. Нужно показать, что 1) каждый автомат вершины графа связей может выполнить не более одного перехода и 2) распределение В определяется однозначно^ И то и другое следует из теоремы 1 и определения композиции Теорема 2 доказана^
4. Генерация тестов
В данной статье целью тестирования системы автоматов является покрытие всех достижимых переходов автоматов • На каждом такте тест посылает в тестируемую систему сообщения по пустым
внешним входным дугам (не обязательно всем) и принимает от системы по занятым внешним выходным дугам (не обязательно всем) имеющиеся на них сообщения. Определим композицию системы и теста. Состояние композиции есть пара состояний системы и теста. Переход композиции соответствует паре (допустимый стимул, допустимая реакция), что определяет возможные постсостояния системы и теста, т.е. возможные постсостояния композиции. Заметим, что приём или неприём тестом сообщений с внешних выходных дуг системы, по сути, является дополнительным тестовым воздействием на систему, поскольку меняет выполнимость тех или иных переходов. Сам переход композиции является внутренним, т. е. ничем не помечен, поскольку композиция системы и теста замкнута и ни с чем не взаимодействует. Формально переходы композиции системы и теста определяются следующим правилом вывода: 5 - ?х!у ^ t & 5 ' — ?у!х ^ Г Ь 55 ' ^ tt'.
Если тест и система детерминированы, то их композиция тоже будет детерминирована в следующем смысле: в каждом её состоянии определено не более одного перехода.
Тестовая последовательность есть конечная последовательность пар (х1, у1), ..., (хп, уп), которой в тестируемой системе соответствует маршрут (цепочка смежных переходов) 50 - ?х1!у1 ^ 51 -...^ 5п-1 -- ?хп!уп ^ 5п, а в тесте - маршрут 5 '0 - ?у1 !х1 ^ 5 ' 1 - ...^ 5 ' п-1 - ?уп!хп ^ 5 ' п. Каждое состояние 5/ и 5 ' / соответствует префиксу тестовой последовательности длиной /. Для такой тестовой последовательности детерминированный тест состоит только из указанной выше цепочки переходов.
Какие проверки выполняются при прогоне теста на каждом /-м такте? 1) Выполнился ли в тесте переход 5 ' ^ - ?у/+1!х/+1 ^ 5 ' /+1; если не выполнился, то фиксируется ошибка. 2) Для каждого автомата в системе: правильно ли изменилось его состояние, правильно ли он выполнил приём стимула (с каких входных дуг принял сообщения), правильно ли он выполнил выдачу реакции (на какие выходные дуги послал сообщения, и правильные ли эти сообщения).
Прогон тестовой последовательности покрывает некоторое множество переходов автоматов системы. Поскольку система детерминирована, это множество одно и то же при разных прогонах данной тестовой последовательности (с рестартом между прогонами), поэтому тестовую последовательность достаточно прогонять один раз. Мы будем рассматривать только конечные наборы тестов, после завершения прогона одного теста выполняется рестарт системы и прогоняется следующий тест из набора. Набор тестов покрывает множество переходов автоматов, которое является объединением множеств переходов автоматов, покрываемых тестами из этого набора. Набор тестов будем называть полным, если он покрывает все переходы всех автоматов, достижимые при работе этих автоматов в системе. Ставится задача генерации полного набора тестов.
Для решения этой задачи мы предлагаем использовать любой алгоритм генерации полного набора тестов для одного автомата. Таких алгоритмов предложено довольно много, по сути, они сводятся к построению набора маршрутов, покрывающих граф переходов автомата, достижимых из его начального состояния (см., например, [7]). В качестве такого автомата для наших целей берётся автомат системы, получаемый с помощью композиции, описанной в предыдущем разделе. Покрывая все достижимые переходы композиционного автомата системы, мы, конечно, покрываем все достижимые переходы автоматов-компонентов. Однако такой набор тестов может быть избыточным для решения нашей задачи: покрытие всех достижимых переходов автоматов-компонентов не обязательно требует покрытия всех достижимых переходов композиционного автомата системы.
Поэтому предлагается в процессе генерации полного набора тестов для композиционного автомата системы применять процедуру фильтрации, которая будет отбрасывать «лишние» тесты. Эта процедура работает следующим образом. С самого начала создаётся пустое множество Т генерируемого набора тестов и множество Р непокрытых переходов автоматов, которое сначала равно множеству всех переходов всех автоматов. Когда генерируется очередной 1-й тест Т/ для композиционного автомата системы, вычисляется множество Р/ переходов автоматов, покрываемое этим тестом. Тесту соответствует маршрут в композиционном автомате. Каждому переходу этого маршрута соответствует множество переходов в автоматах-компонентах (не более одного в каждом автомате); объединение этих множеств по всем переходам маршрута и есть множество Р/. Далее алгоритм фильтрации проверяет, покрывает ли /-й тест какой-либо новый, ещё не покрытый переход какого-либо автомата компонента. Если Р, п Р = 0, то никаких новых переходов
7-й тест не покрывает, и он отбрасывается• В противном случае тест добавляется к набору тестов Т := Т и {Т7}, а из множества непокрытых переходов удаляются новые переходы Р := Р \ Р7. После того как все тесты сгенерированы и отфильтрованы, получившееся множество Т является полным набором тестов, а множество Р - множеством недостижимых переходов автоматов компонентов •
5. О размере тестового набора
Теорема 3. Для любого числа состояний автоматов компонентов п1, п2 ,•••, пк существует такая система, что время тестирования (в тактах), необходимое для покрытия всех достижимых переходов композиции, равно О(п1п2...пк), а минимальное время, достаточное для покрытия всех достижимых переходов автоматов-компонентов, равно 0(n1+n2+...+nk).
Доказательство. Рассмотрим систему, изображённую на рис. 1.
Рис. 1. Пример системы автоматов
Здесь имеется единственное сообщение: М = {1}. Все автоматы в вершинах однотипные и различаются числом состояний п7. Автомат в вершине 7 имеет две входные дуги, обозначенные а7 и Ь7, и одну выходную дугу а7+1. Соответственно, имеются два стимула (а7,1) и (Ь7, 1) и единственная непустая реакция - (а7+1, 1). Автомат 7 в состоянии / Ф п7 - 1, получая по входной дуге а7 сообщение 1, переходит в следующее состояние у+1 без выдачи реакции, а в состоянии п7 -1 переходит в начальное состояние 0 с посылкой сообщения 1 по единственной выходной дуге а7+1. Тем самым автомат 7 на каждую порцию из принятых им п7 сообщений по входной дуге а7 посылает одно сообщение следующему автомату 7 + 1 или внешней среде, если 7 = к. Кроме того, в состоянии 0 есть переход-петля по приёму сообщения по дуге Ь7 с выдачей сообщения следующему автомату 7 + 1 или окружению, если 7 = к.
Рассмотрим состояние композиции вида 5 = (51, 52, ..., 5к, 0), где состояние 7-го автомата 57 = 0, ..., п7-1. Начальное состояние 50 = (0, 0, ..., 0, 0). Обозначим 5тах = (п1 - 1, п2 - 1, ..., пк- 1, 0). Состояние 5 можно понимать как пару 5 = (5~, 0), где - число, записанное в позиционной системе счисления слева направо от младшей позиции 1 к старшей позиции к: 1, 2, •••, к, и п7 - основание системы счисления в позиции 7. Число таких состояний равно п1п2...пк. Поскольку все они достижимы из начального состояния, время тестирования композиционной системы равно О(п1п2...пк).
Как наиболее быстро покрыть все переходы автомата 7? Для этого достаточно: 1) п7 раз послать сообщение по дуге а7 и 2) один раз - по дуге Ь7. Для автомата 0 пункт 1 тест может выполнить непосредственно, поскольку дуга а1 внешняя. Для автомата 7 > 1 пункт 1 можно выполнить, посылая п7 раз сообщение по внешней дуге Ь7-1 в предыдущий автомат с номером 7 - 1. Пункт 2 тест также может выполнить непосредственно, поскольку дуга Ь7 внешняя. Тем самым, время тестирования всех переходов автоматов-компонентов равно 0(п1 + ... + пк). Теорема 3 доказана.
Заметим, что для п1 = п2 = ... = пк = п имеем соотношение пк и пк, т.е. для фиксированного числа к компонентов получаем экспоненциальное уменьшение времени тестирования.
Заключение
Сформулируем направления дальнейших исследований.
1. Оптимизация. Предложенный алгоритм фильтрации строит набор тестов не обязательно оптимальный по времени тестирования и / или числу тестов. Возникает задача поиска оптимального набора, которая, вообще говоря, сводима к задаче о поиске минимального покрытия [8, 9].
2. Недетерминизм. Нужно определить такие ограничения на недетерминизм системы и / или составляющих её автоматов, которые позволяли бы выполнять полное тестирование за конечное время и разработать соответствующие алгоритмы тестирования. Неплохие решения этой задачи предложены для автономного тестирования, когда автомат находится под непосредственным управлением теста [1013] (не в контексте окружающей его части системы).
3. Конформность. В данной статье при тестировании проверяется изоморфизм автомата-компонента реализации его спецификации, заданной как автомат. В общем случае между автоматом компонента в реализации и автоматом компонента в спецификации задаётся отношение конформности, которое слабее изоморфизма: квази-редукция, симуляция и т.п. Это требует более сложного алгоритма тестирования. В то же время, если при тестировании мы можем наблюдать состояние реализации (как предполагается в данной статье), то возможно полное автономное тестирование за конечное время для конформности типа редукции или слабой симуляции [2, 3, 10-20]. Для составной системы возникает проблема декомпозиции системных требований, известная также как проблема несохранения конформности. Она заключается в том, что композиция реализаций компонентов, конформных спецификациям этих компонентов, в общем случае неконформна спецификации системы, в частности композиции спецификаций компонентов. Этой проблеме посвящён ряд работ [2, 4, 21], но возникает задача переосмысления предложенных решений для тестирования компонентов составной системы, когда верна гипотеза о связях.
4. Обобщение. В данной работе дуга графа связей реализует очередь длины 1. Но могут быть и другие дуги: очередей большей, в том числе неограниченной длины, очереди с приоритетами, стеки и т.п. Нужно обобщить понятие дуги с помощью определения автомата дуги. Более того, автомат дуги мог бы иметь несколько входов и выходов, как автомат вершины. Композиция должна быть определена для пары автоматов, выход одного из которых соединён с входом другого. На таком соединении происходит синхронное взаимодействие автоматов, где один автомат посылает сообщение тогда и только тогда, когда другой автомат это сообщение принимает. Для детерминизма системы, по-видимому, к автомату дуги нужно предъявить дополнительные (по сравнению с автоматом вершины) требования.
ЛИТЕРАТУРА
1. Revised Working Draft on "Framework: Formal Methods in Conformance Testing". JTC1/SC21/WG1/Project 54/1, ISO Interim
Meeting. ITU-T on. Paris, 1995.
2. Бурдонов И.Б., Косачев А.С., Кулямин В.В. Теория соответствия для систем с блокировками и разрушением. М. : Наука,
2008. 412 с.
3. Бурдонов И.Б. Теория конформности (функциональное тестирование программных систем на основе формальных моделей).
LAP Lambert Academic Publishing, 2011. 428 с.
4. Бурдонов И.Б., Косачев А.С. Пополнение спецификации для ioco // Программирование. 2011. № 1. С. 3-18.
5. Petrenko A., Yevtushenko N., Von Bochmann G., Dssoul Ri. Testing in context: framework and test derivation // Computer Commu-
nications. 1996. V. 19(14). Р. 1236-1249.
6. Камкин А., Чупилко М. Обзор современных технологий имитационной верификации аппаратуры // Программирование.
2011. № 3. С. 42-49.
7. Бурдонов И.Б., Косачев А.С., Кулямин В.В. Неизбыточные алгоритмы обхода ориентированных графов. Детерминирован-
ный случай // Программирование. 2003. № 5. С. 59-69.
8. Левитин А.В. Алгоритмы: введение в разработку и анализ. М. : Вильямс, 2006. С. 160-163.
9. Кормен T.K., Лейзерсон Ч.И., Ривест Р. Л., Штайн К. Алгоритмы: построение и анализ. 2-е изд. М. : Вильямс, 2006. С. 456-458.
10. Бурдонов И.Б., Косачев А.С. Полное тестирование с открытым состоянием ограниченно недетерминированных систем // Программирование. 2009. № 6. С. 3-18.
11. Бурдонов И.Б., Косачев А.С. Семантики взаимодействия с отказами, дивергенцией и разрушением. Ч. 2. Условия конечного полного тестирования // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2011. № 2 (15). С. 89-98.
12. Бурдонов И.Б., Косачев А.С. Тестирование конформности на основе соответствия состояний // Труды ИСП РАН. 2010. № 18. С. 183-220.
13. Бурдонов И.Б., Косачев А.С. Безопасное тестирование симуляции систем с отказами и разрушением // Моделирование и анализ информационных систем. 2010. Т. 17(4). С. 27-40.
14. Bourdonov I.B., Kossatchev A.S., Kuliamin V.V. Formal Conformance Testing of Systems with Refused Inputs and Forbidden Actions // Proceedings of the Workshop on Model Based Testing (MBT 2004). Elsevier, 2006.
15. Бурдонов И.Б., Косачев А.С., Кулямин В.В. Формализация тестового эксперимента // Программирование. 2007. № 5. С. 332.
16. Бурдонов И.Б., Косачев А.С., Кулямин В.В. Безопасность, верификация и теория конформности // Материалы Второй международной научной конференции по проблемам безопасности и противодействия терроризму. МГУ, 2006. М. : МЦНМО, 2007. С. 135-158.
17. Бурдонов И.Б., Косачев А.С. Системы с приоритетами: конформность, тестирование, композиция // Труды ИСП РАН. 2008. Т. 14 (1). С. 23-54.
18. Бурдонов И.Б., Косачев А.С. Тестирование с преобразованием семантик // Труды ИСП РАН. 2009. Т. 17. С.193-208.
19. Kossachev A., Burdonov I. Formal Conformance Verifcation, Short Papers of the 22nd IFIP ICTSS / eds. by Alexandre Petrenko, Adenilso Simao, Jose Carlos Maldonado. Natal, Brazil, 2010. Р. 1-6.
20. Бурдонов И.Б., Косачев А.С. Семантики взаимодействия с отказами, дивергенцией и разрушением // Программирование. 2010. № 5. С. 3-23.
21. Бурдонов И.Б., Косачев А.С. Согласование конформности и композиции // Программирование. 2013. № 6. С. 3-15.
Бурдонов Игорь Борисович, д-р физ.-мат. наук. E-mail: [email protected] Косачев Александр Сергеевич, канд. физ.-мат. наук. E-mail: [email protected] Институт системного программирования РАН (ИСП РАН) (г. Москва)
Поступила в редакцию 25 июня 2016 г.
Igor Burdonov, Alexander Kossatchev (Institute for System Programming of the Russian Academy of Sciences, Moscow, Russian Federation).
Testing of automata system.
Keywords: directed graph; graph coverage; communicating automata; testing; networks. DOI: 10.17223/19988605/38/10
The problem of testing of aggregate systems is considered. The system is described as an oriented graph where the nodes correspond to component automata while edges correspond to simplex communication channels. The following hypothesis is assumed: the graph of links is static and the link structure is error-free. At each state, a component automaton can accept and send multiple messages through incoming and outgoing edges (at most one message through each edge). The goal of testing is to cover transitions of component automata reachable during the system work. It is assumed that during testing it is possible to observe the state changes of automata and the messages on the edges. The general model is considered when the system can simultaneously contain multiple messages, but not more than one for each edge. An automata composition is defined and the restrictions on automata making the system deterministic are described. An algorithm of test generation is proposed basing on test filtration generated for covering all transitions of the deterministic composition system. A test is rejected if it covers only transitions of the components that are covered by other tests. A simplified system model with only one message in transit is considered at the end. Using this example, we show that the hypothesis on links allows considerably reduce the number of required testing actions from the product of state numbers of the component automata to the sum of these numbers. If all the automata have the same number of states then it gives the exponential reduction of the number of test actions. In conclusion, some directions of future research are considered.
REFERENCES
1. Revised Working Draft on "Framework: Formal Methods in Conformance Testing". (1995) JTC1/SC21/WG1/Project 54/1, ISO Inter-
im Meeting, ITU-T on. Paris.
2. Burdonov, I.B., Kosachev, A.S. & Kulyamin, V.V. (2008) Teoriya sootvetstviya dlya sistem s blokirovkami i razrusheniem [Con-
formance theory of the systems with refused inputs and forbidden actions]. Moscow: Nauka.
3. Bourdonov, I.B. (2011) Teoriya konformnosti (funktsional'noe testirovanie programmnykh sistem na osnove formal'nykh modeley)
[Conformance theory (functional testing on formal model base)]. LAP Lambert Academic Publishing.
4. Bourdonov, I.B. & Kosachev, A.S. (2011) Popolnenie spetsifikatsii dlya ioco [Specification Completion for IOCO]. Programmiro-
vanie - Programming and Computer Software. 37(1). pp. 3-18.
5. Petrenko, A., Yevtushenko, N., Von Bochmann, G. & Dssoul, Ri. (1996) Testing in context: framework and test derivation. Computer
Communications. 19(14). pp. 1236-1249. DOI: 10.1016/S0140-3664(96)01157-7
6. Kamkin, A. & Chupilko, M. (2011) Obzor sovremennykh tekhnologiy imitatsionnoy verifikatsii apparatury [Survey of modern technolo-
gies of simulation-based verification of hardware]. Programmirovanie - Programming and Computer Software. 37(3). pp. 42-49.
7. Bourdonov, I.B., Kossachev, A.S. & Kulyamin, V.V. (2005) Neizbytochnye algoritmy obkhoda orientirovannykh grafov. Determini-
rovannyy sluchay [Irredundant Algorithms for Traversing Directed Graphs: The Deterministic Case]. Programmirovanie - Programming and Computer Software. 29(5). pp. 59-69.
8. Levitin, A.V. (2006) Algoritmy: vvedenie v razrabotku i analiz [Introduction to the design and analysis of algorithms], Moscow:
Vil'yams. pp. 160-163.
9. Cormen, T., Leiserson, C., Rivest, R. & Stein, C. (2001) Algoritmy: postroenie i analiz [Introduction to Algorithms]. 2nd ed. Trans-
lated from Enlgish by I. Krasikov. Moscow: Vil'yams. pp. 456-458.
10. Bourdonov, I.B. & Kossachev, A.S. (2009) Polnoe testirovanie s otkrytym sostoyaniem ogranichenno nedeterminirovannykh sistem [Complete open-state testing of limitedly nondeterministic systems]. Programmirovanie - Programming and Computer Software. 6. pp. 3-18.
11. Bourdonov, I.B. & Kossatchev, A.S. (2001) Semantics of Interaction with Refused Inputs, Divergence and Forbidden Actions. Part 2. The condition of finite complete testing. Vestnik Tomskogo gosudarstvennogo universiteta. Upravlenie, vychislitel'naya tekhnika i informatika - Tomsk State University Journal of Control and Computer Science. 2(15). pp. 89-98. (In Russian).
12. Bourdonov, I.B. & Kossatchev, A.S. (2010) Testirovanie konformnosti na osnove sootvetstviya sostoyaniy [Conformance testing based on a state relation]. Trudy ISP RAN - Proceedings of the Institutefor System Programming of the RAS. 18. pp. 183-220.
13. Bourdonov, I.B. & Kossatchev, A.S. (2010) Safe simulation testing of systems with refusals and destructions. Automatic Control and Computer Sciences 17(4). pp. 27-40. DOI: 10.3103/S0146411611070042
14. Bourdonov, I.B., Kossatchev, A.S. & Kuliamin, V.V. (2006) Formal Conformance Testing of Systems with Refused Inputs and Forbidden Actions. Electronic Notes in Theoretical Computer Science. 164(4). pp. 1-128. DOI: 10.1016/j.entcs.2006.09.008
15. Bourdonov, I.B., Kosachev, A.S. & Kuliamin, V.V. (2007) Formalizatsiya testovogo eksperimenta [Formalization of Test Experiments]. Programmirovanie - Programming and Computer Software. 5. pp. 3-32.
16. Bourdonov, I.B., Kossachev, A.S. & Kuliamin, V.V. (2006) [Safety, verification and conformance theory]. The Proceedings of the Second International Conference on the Problems of Safety and Counteraction Against Terrorism. Moscow: MTsNMO. pp. 135158. (In Russian).
17. Bourdonov, I.B. & Kossatchev, A.S. (2008) Sistemy s prioritetami: konformnost', testirovanie, kompozitsiya [Systems with priority: conformance, testing, composition]. Trudy ISP RAN - Proceedings of the Institute for System Programming of the RAS. 14(1). pp. 23-54.
18. Burdonov, I.B. & Kosatchev, A.S. (2009) Testirovanie s preobrazovaniem semantik [Testing with semantics conversion]. Trudy ISP RAN - Proceedings of the Institute for System Programming of the RAS. 17. pp. 193-208.
19. Kossachev, A. & Bourdonov, I. (2010) Formal Conformance Verifcation. In: Petrenko, A., Simao, A. & Maldonado, J.C. (2010) Short Papers of the 22nd IFIPICTSS. Natal, Brazil. pp. 1-6.
20. Bourdonov, I.B. & Kossachev, A.S. (2010) Semantiki vzaimodeystviya s otkazami, divergentsiey i razrusheniem [Interaction semantics with refusals, divergence, and destruction]. Programmirovanie - Programming and Computer Software. 5. pp. 3-23.
21. Bourdonov, I.B. & Kossachev, A.S. (2013) Soglasovanie konformnosti i kompozitsii [Agreement between conformance and composition]. Programmirovanie - Programming and Computer Software. 6. pp. 3-15.