И.Б. Куфарева, В.Н. Тренькаев
ТЕСТИРОВАНИЕ КОНЕЧНЫХ АВТОМАТОВ В КОНТЕКСТЕ: МЕТОД СИНТЕЗА ПРОВЕРЯЮЩИХ ТЕСТОВ НА ОСНОВЕ СЕТЕВОГО ЭКВИВАЛЕНТА
Рассматривается метод синтеза полных проверяющих тестов для автоматной сети, состоящей из двух компонент: проверяемого автомата и контекстного автомата. Предполагается, что неисправности возможны только в проверяемом автомате. Предлагается метод построения теста, обнаруживающего все неисправности заданного класса. Метод основан на использовании так называемого сетевого эквивалента проверяемой компоненты.
Проверка правильности поведения управляющих дискретных систем является неотъемлемым элементом их производства и эксплуатации. Задача синтеза проверяющего теста заключается в построении конечного множества воздействий на систему, по реакции на которые можно определить правильность ее функционирования. Разработка алгоритмов синтеза тестов требует использования соответствующих математических моделей. Известно, что сети из конечных автоматов или автоматные сети являются одним из формальных способов описания поведения таких объектов, как системы логического управления и телекоммуникационные протоколы. В данной работе мы полагаем, что поведение как исправной, так и неисправной дискретных систем описывается автоматной сетью. При этом неисправности возможны только в одном из блоков системы, т.е. считается, что вероятность неисправности нескольких блоков значительно меньше, чем вероятность неисправности не более чем одного блока. При таких предположениях мы имеем задачу тестирования в контексте, т.е. когда автомат, описывающий неисправную часть системы, тестируется в контексте другого автомата, описывающего исправную часть системы.
Существующие методы тестирования в контексте условно можно разделить на два класса: синтез теста для системы в целом и синтез теста для части системы с последующей его трансляцией. В методах первого класса тесты строятся для автомата, который описывает совместное поведение проверяемого и контекстного автоматов. Однако такие тесты обнаруживают неисправности не только в тестируемом автомате, но и в контексте, и как следствие имеют большую длину. Кроме того, композиция автоматов может иметь слишком большое число состояний так, что регулярные методы с гарантированной полнотой могут оказаться практически неприменимыми. В методах второго класса тесты строятся для проверяемого автомата в изоляции. Далее полученный тест транслируется на вход автоматной сети. Оказывается, что задача трансляции всегда разрешима в случае, когда тесты строятся для так называемого сетевого эквивалента проверяемого автомата, который описывает его поведение в условиях погружения в автоматную сеть. В данной работе мы продолжаем развивать методы построения полных проверяющих тестов для компоненты автоматной сети на основе ее сетевого эквивалента, используя результаты, полученные в работах [1 - 3].
1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ
1.1. Автоматы
Недетерминированным (нд-) автоматом Л далее называется пятерка (БХ,У,к^0), где Б - множество состояний с выделенным начальным состоянием ^0; X и У
- соответственно входной и выходной алфавиты; к -функция поведения, отображающая множество БхХ в множество Р(Бу.У) непустых подмножеств множества 5хУ. Обычно четверки вида ^,х,^,у) называют переходами; при этом говорят, что автомат может перейти из состояния яеБ под действием входного символа хеХ в
состояние s' eS с выдачей выходного символа yeY, если h(s,x)={(s ' ,у)}. Если для любых (s,x,y) e SxXxY в нд-автомате существует не более одного перехода из состояния s под действием входного символа x с выходным символом у, то говорят, что нд-автомат является наблюдаемым. Автомат называется детерминированным (д-) автоматом, если |h(s,x)=1| для всех (s,x)eSxX. Для д-автомата выполняется условие однозначности переходов: д-автомат из любого состояния под действием любого входного символа переходит в единственное состояние и выдает единственный выходной символ. В д-автомате вместо одной функции поведения h используются две функции: функция переходов у: SxX^S и функция выходов ф: SxX^-Y. Д-автомат называется автоматом Мура, если его функция выходов не зависит от входного символа.
Инициальный автомат обычно используют для описания поведения управляющих систем, обладающих специальным сигналом сброса reset, который явно не включают во входной алфавит X; входной символ reset переводит автомат из любого состояния в начальное.
Распространим функцию поведения автомата на множество конечных входных слов X*, включающее пустое слово б, т.е. определим отображение h множества SxX* в множество P(SxX*) непустых подмножеств множества SxX*. Положим h(s^)=(s^) для всех seS, и предположим, что h(s,P), seS, PeX*, уже определено. Тогда h(s,Px)={(s',yy): 3s''eS [(s'',y)eh(s,P) & (s' ,y)eh(s'',x)]}. Через h1 и h2 будем обозначать первую и вторую проекции функции h, т.е. для любой aeX* h1 (s,a)={s':3ye Y[(s',y)eh(s,a)}, h2 (s,a)={y:3s'eS [(s',y)eh(s,a)}. В действительности h1 можно считать функцией переходов нд-автомата, в то время как h2 есть функция выходов нд-автомата. Множество h1 (s,a) содержит все состояния из S, которые достижимы в нд-автомате из состояния s под действием входной последовательности а. Множество h2 (s,a) содержит все выходные последовательности нд-автомата в этом случае.
Пусть даны два нд-автомата A=(S,X,Y,h,s0) и B=(T,X,Y,H,s 0), а также множество E(zX* входных последовательностей. Состояние t автомата B называется E-редукцией состояния s автомата A (обозначение: t <е s ), если для любой входной последовательности aeE справедливо: H2 (t,a)ch2 (s,a). В противном случае t не есть E-редукция состояния s (обозначение: t<еs). Состояния t и s E-эквивалентны (обозначение:
t =E s), если t<E s и s<E t. В противном случае состояния t и s не являются E-эквивалентными (обозначение:
г £Е s). Если Е=Х, то отношения Е-редукции и Е-эквивалентности между состояниями г и л будем называть редукцией и эквивалентностью (обозначение: г<л и г=л). Отметим, что для детерминированных автоматов отношения Е-редукции и Е-эквивалентности совпадают.
Будем говорить, что нд-автомат В есть (Е-) редукция нд-автомата А, если начальное состояние атомата В есть (Е-) редукция начального состояния автомата А (обозначение: В<ЕА, В<А). Если В - детерминированный автомат и В<А, то автомат В называется д-ре-дукцией автомата А. Автомат В называется (Е-) эквивалентным автомату А, если их начальные состояния (Е-) эквивалентны.
1.2. Модель неисправности
Пусть поведение исправной дискретной системы может быть описано некоторым автоматом, который будем называть эталоном, или эталонным автоматом. Автомат, который описывает поведение проверяемой, возможно неисправной, системы, будем называть проверяемым автоматом или реализацией. Реализация называется конформной, если ее поведение соответствует в некотором смысле поведению эталона, т.е. автоматы, описывающие поведение проверяемой и эталонной систем, находятся в некотором отношении соответствия. В противном случае реализация называется неконформной. Отношения редукции и эквивалентности часто используются в качестве отношения конформности между проверяемой и эталонной системами.
Под моделью неисправности далее будем понимать тройку <А,~Д> [1], в которой А - эталон, ~е{<, -
отношение конформности, ^ - множество автоматов, входной и выходной алфавиты которых совпадают с входным и выходным алфавитом эталонного автомата. Автоматы из множества ^ представляют все возможные неисправности в дискретной системе. Множество ^ обычно называют областью неисправности.
Тогда конечное множество ЕсХ* называется полным проверяющим тестом относительно модели <А,~,^>, если для любого автомата Ве^ справедливо В~еА^В~А. Таким образом, полный проверяющий тест относительно модели <А,~,^> есть конечное множество конечных входных последовательностей эталонного автомата А, такое, что, для любой неконформной реализации из множества ^ в проверяющем тесте существует последовательность, при помощи которой мы можем обнаружить этот факт. Отметим, что если эталонный автомат А является детерминированным, то модель неисправности <А,=,Шт>, где ^т - все д-авто-маты с входным и выходным алфавитами, совпадающими с таковыми эталонного автомата, и числом состояний не более т, есть классическая модель для тестирования «черного ящика», т.е. реализации, о которой ничего не известно, кроме верхней оценки числа состояний. Существует много методов синтеза полных проверяющих тестов относительно такой модели неисправности [4 - 6]. Синтез полных проверяющих тестов для наблюдаемых автоматов относительно отношения редукции обсуждается в [7 - 9].
1.3. Автоматные сети
Один из способов описания поведения дискретных систем есть представление их в виде сети из взаимодействующих автоматов. Далее мы рассмотрим автоматную сеть М, структура которой представлена на рис.1, состоящую из двух детерминированных автоматов Мура: А=(Т,и^,уА,уА,г0) и C=(Q,XxZ,УxU,^c,фc,qо). Предполагается, что в каждый такт работы сети на ее вход поступает входной символ из алфавита X и снимается выходной символ из алфавита У, т.е. следующий входной символ может поступить на сеть только после того, как она отреагирует на предыдущий входной символ. Тогда поведение такой сети может быть описано д-автоматом ^хТХУУмфы^о), в котором для всех qtеQxT и хеХ справедливо
Улт №,х)=[уо ^.хфа^^а^ф “^)] и ^г)=фс%).
Здесь и далее, если значения функции фс определены на декартовом произведении YxZ алфавитов У и Z, то фСу обозначает проекцию значения функции на множество У.
А
X 2 1 1 и У
С
Рис.1. Автоматная сеть
Так как нас интересует поведение сети в целом, то мы можем в определенном выше автомате объединить эквивалентные состояния в одно и не рассматривать состояния, не достижимые из начального. Полученный автомат называется автоматом сети и обозначается А@С.
Пример. Пусть автоматы С и А с начальными состояниями а и 1 заданы таблицами переходов-выходов, которые представлены на рис. 2 и 3 соответственно. На рис. 4 приведена таблица переходов-выходов автомата А@С, описывающего поведение сети из компонент С и А.
а,0и1 Ь,1и2
Ь Ь
х1г2 Ь а
х2г1 Ь Ь
Х2^2 Ь Ь
Рис. 2. Автомат С
1 1,^1 2,22
и1 1 1 2
и2 1 2 1
Рис. 3. Автомат А
| а1,0 Ь2,1 Ь1,1
Х1 1 Ь1 а1 Ь2
Х2 1 Ь1 Ь1 Ь2
Рис. 4. Автомат А@С
1.4. Проверяющие тесты для компоненты
2.1. Аппроксимация поведения компоненты
Пусть мы имеем для тестирования дискретную систему, разбитую на два функционально- законченных блока, каждый из которых может быть представлен в виде конечного автомата. Сеть из взаимодействующих конечных автоматов со структурой, представленной на рис.1, описывает поведение системы. Предположим, что только один блок системы может содержать неисправность, причем д-автомат C=(QXxZ,УxU,yc,фc,q0) описывает поведение исправной части системы, а д-автомат А=(Т,иД,уА,фА,г0)
- поведение той части системы, в которой возможны неисправности. Тогда автомат А@С=$Х,У,'Уы,фы&0(0), где ScQxT, и s0=q0t0, есть автомат эталонной сети. Предположим также, что поведение неисправного блока описывается некоторым автоматом Мура из множества 3 д-автоматов Мура с входным алфавитом и и выходным алфавитом ^ Обозначим через 3@С множество автоматов сетей, которые получаются из эталонной сети N при замене компоненты А на любой автомат из множества 3. Проверяющим тестом для компоненты А в контексте С (полным относительно класса 3) называется полный проверяющий тест относительно модели неисправности <А@С,=,3@С>.
Если количество неисправностей в компоненте не слишком велико, то полный проверяющий тест для компоненты может быть построен путем явного перечисления всех автоматов множества 3 с вычислением для каждого из них входной последовательности, на которой его поведение отличается от поведения автомата эталонной сети. Однако в большинстве случаев такой способ неприменим. В данной работе рассматриваются регулярные методы построения полных проверяющих тестов для компоненты, которые не требуют явного перечисления всех неисправных сетей.
2. ТЕСТИРОВАНИЕ КОМПОНЕНТЫ НА ОСНОВЕ СЕТЕВОГО ЭКВИВАЛЕНТА
Один из подходов к синтезу тестов для компоненты - строить тесты для компоненты, как для изолированного автомата, с последующей трансляцией полученных тестов на входы автоматной сети. Известно
[10], что не всегда существуют входные последовательности сети, обеспечивающие на входе проверяемой компоненты требуемые тестовые последовательности.
Поведение компоненты сети, которое можно наблюдать на внешних выходах сети, в общем случае не совпадает с поведением компоненты, как изолированного автомата. В общем случае существуют д-авто-маты, неэквивалентные компоненте А, которые, будучи поставлены в сеть вместо нее, не изменяют внешнего поведения сети. Сетевой эквивалент компоненты включает в себя описание всех таких д-автоматов. Оказывается, что задача трансляции тестовых последовательностей, построенных для сетевого эквивалента, во внешние последовательности сети всегда разрешима.
Пара последовательностей р/у, PeU*, yeZ* называется недопустимой относительно внешней входной последовательности aeX* (a-недопустимой), если для любого автомата D с алфавитами U и Z и вхо-до-выходной последовательностью р/у автоматы D@C и А@С отличаются по реакции на последовательность а. Это требование эквивалентно следующему: существуют начальные отрезки a]k ,P]k, y]k последовательностей а, в, у со свойством
Фсу(дo,a]ky]k)=P]k & Фсу(qo,a]ky]k) Ф^ (qo, a]k).
Если таких начальных отрезков не существует, то пара р/у называется допустимой относительно последовательности a или a-допустимой.
В работе [3] преложен метод построения нд-авто-мата B(N,C), описывающего все допустимые входовыходные последовательности компоненты относительно каждой внешней последовательности сети. Функция поведения нд-автомата
B(N, C)=(P,Xx U,Zu {fail},hp0), где P=(Sxg)u{TRAP,.FAIL},p0=s0q0, имеет следующий вид. Для любых sqeSxg и xueXxU справедливо
h (sq,;
(vn (s,x)(q,xz)/z) | z e Z}, если фс (q) = vN (s)u;
{(TRAP/ z) | z e Z}, если фс“ (q) Ф u;
{( Fail / fail)},
если фс“ ( q ) = u & фсу ( q ) Ф у N ( s );
• h(TRAP,xu)={(TRAP/z) | zeZ};
• h(FAIL,xu)={(FAIL/fail)}.
Далее мы будем называть нд-автомат B(N,C) аппроксимацией поведения компоненты A в контексте C. Множество состояний аппроксимации содержит пары sq, где s - состояние автомата эталонной сети и q - состояние контекста. Состояние s отмечает состояние автомата эталонной сети, в которое он попадает под действием соответствующей внешней входной последовательности a. Состояние q есть состояние контекста, достигаемое под действием внешней входной последовательности a и соответствующей реакции проверяемой компоненты; последняя может не совпадать с реакцией эталонной компоненты A.
Некоторые входные последовательности не могут появиться на входе проверяемой компоненты в данном контексте. Эта ситуация возникает, когда входной символ проверяемой компоненты не может быть выходным символом контекста в текущем состоянии. Поведение компоненты на таких последовательностях безразлично, и мы вводим специальное состояние 'Trap' (ловушка), чтобы описать эту ситуацию. Нд-автомат B(N,C) переходит из состояния sq в состояние 'Trap' с любым выходным символом и остается в этом состоянии с выдачей любого выходного символа под действие любого входа. Также необходимо еще одно специ-
альное состояние ТагГ(^Р) и специальный выходной символ ‘/аг'Г(‘/) £ Z (запрещено), чтобы отразить ситуацию, в которой любое продолжение выходной последовательности проверяемой компоненты приводит к реакции сети, отличной от эталонной.
По построению нд-автомат Б(Ы,С) обладает следующим свойством.
Утвержцение 1. Последовательность у, yеZ*, отсутствует в множестве выходных реакций нд-автомата Б(Ы,С) на последовательность ав, аеХ*, в е и*, если и только если пара в/у а-недопустима.
Следовательно, такая последовательность может быть использована в качестве тестовой, обнаруживающей неисправный д-автомат из множества 3, который на входную последовательность P реагирует выходной последовательностью у.
Пример. Переобозначим следующим образом состояния автомата A@C (рис. 4): a1= 1, b2= 2, b1= 3. Полученная аппроксимация поведения компоненты представлена на рис. 5. Для упрощения представления здесь не показано состояние 'TRAP', в которое ведут переходы, обозначенные «-».
la 2b 3b lb 2a 3a FAIL
X\U\ 3b/zbz2 - - - FAIL/fail FAIL/fail FAIL/fail
X\U2 lb/zi 2b/z1
- la/z2 2a/z2 FAIL/fail - - FAIL/fail
X^U\ 3b/zi,z2 - - - FAIL/fail FAIL/fail FAIL/fail
X2U2 - 3b/z1,z2 2b/z1,z2 FAIL/fail - - FAIL/fail
Рис. 5. Аппроксимация поведения компоненты A в контексте С
2.2. Сетевой эквивалент компоненты
Построение модели неисправности, в которой область неисправности совпадает с областью неисправности компоненты 3, тесно связано с решением автоматного уравнения X@C =A@C, в котором X есть свободная переменная. Д-автомат Мура D с входным алфавитом U и выходным алфавитом Z называется решением данного уравнения, если D@C =A@C. В работе [11] показано, что автомат D является решением уравнения X@C =A@C, если и только если D есть редукция некоторого специального нд-авто-мата, описывающего допустимое поведение компоненты. Вообще говоря, существует множество нд-автоматов, которые описывают допустимое поведение компоненты. Все они имеют одно и то же множество детерминированных редукций с алфавитами U и Z. В работе [11] нд-автомат, описывающий допустимое поведение компоненты, является частичным; методы синтеза тестов для частичных нд-автоматов относительно редукции нам неизвестны. Для получения полностью определенного нд-автомата ©(N,C) мы заменяем неопределенный переход на переход в специальное состояние 'FAIL' со специальным выходным символом 'fail'. В остальном процедура построения нд-автомата @(N,C), который мы называем сетевой эквивалент поведения компоненты A, совпадает с процедурой, предложенной в
[11], причём сетевой эквивалент строится на базе аппроксимации B(N,C)=(P,Xx U,Zu {fail},h,p0).
Шаг 1. Построим нд-автомат n=(P,U,Zj{fail},H, p0), в котором для всех peP и ueU справедливо H(p,u)={h(p,xu):x eX}.
По построению, для нд-автомата П справедливо следующее утверждение.
Утверждение 2. Последовательность p/ye(UxZ)* есть входо-выходная последовательность нд-автомата П ^ 3 aeX* [ пара p/у является a-допустимой].
Шаг 2. Построим нд-автомат ©(N,C) =
= (2P,U,Zj{fail},g, p0), в котором 2P есть множество непустых подмножеств множества P и для любых
p e2P и ueU функция поведения g определена следующим образом:
{(Р' ,z) 1 z e Z,p' = [Hl (P,u): P e P}}, если Vp e p H1 (p,u) Ф {FAIL};
g (p >u) =
{FAIL, fail},
если 3p e p: H1 (p,u) = {FAIL}.
По построению, множество выходных реакций нд-автомата ©(N,0) на каждую входную последовательность ве и* есть пересечение множеств выходных реакций аппроксимации Б(Ы,С) на последовательности ав по всем аеХ*. Если последовательность у не принадлежит этому пересечению, то существует последовательность аеХ* такая, что пара в/у недопустима относительно последовательности а.
Утверждение 3. Последовательность в/уе(их.£)* есть входо-выходная последовательность нд-автомата ©(N,0 о V аеХ* [ пара в/у явялется а-допустимой].
Как следствие предложения 3, справедливо следующее утверждение.
Теорема 4. В@С=А@С о В < ©(N,0.
Доказательство. Достаточность. Пусть В<©(Ы,С), т.е. д-автомат В есть редукция нд-автомата ©(N,0. Если автоматы В@С и А@С не эквивалентны, то 3 аеХ*, реакции на которую автоматов В@С и А@С различны. Пусть веи* и yеZ* суть последовательности, которые появляются на входе компонент В и С при внешней входной последовательности а. Тогда пара в/у есть входо-выходная последовательность компоненты В, причем фСу^0,ау)=в. Так как реакции автоматов В@С и А@С на а различны, то фСу^0,ау) Ф Ф улт^0,а). Следовательно, по определению, пара в/у является а-недопустимой, а значит, у не принадлежит множеству выходных реакций нд-автомата ©(N,0 на последовательность в (следствие из предложения 3). Последнее противоречит тому, что В<©(^С).
Необходимость. Пусть автоматы В@С и А@С эквивалентны. Если автомат В не есть редукция
нд-автомата ©(Ж,С), то по определению отношения редукции существует входо-выходная последовательность р/у автомата Б, которая не является входовыходной последовательностью нд-автомата ©(Ж,С), т.е. существует а, относительно которой пара р/у недопустима. По определению недопустимости, последнее означает, что поведение автоматов Б@С и А@С на последовательности а различно, что проти-
воречит предположению об эквивалентности этих автоматов.
Пример. Построим сетевой эквивалент компоненты А (рис.3) по аппроксимации ее поведения Б(Ы,С) (рис.5) в контексте С (рис.2). Нд-автомат П, построенный согласно шагу 1, представлен на рис. 6. Нд-автомат ©(Ж, С), полученный согласно шагу 2, представлен на рис. 7.
la 2b 3b lb 2a 3a FAIL (F)
и1 Зй/zj ,z2 - - - F/f F/f F/f
и2 - lb/zj la/z2 3b/zj ,z2 2b/zj 2a/z2 2b/zj ,z2 F/f - - F/f
Рис. 6. Таблица переходов-выходов нд-автомата П
la 2b 3b 1a,3b 1b,3b 2a,2b FAIL
uj {3b}/zj ,z2 - - {3b}/zj ,z2 - F/f F/f
u2 - /zj /z2 b} b} ,3 ,3 b, a, {2b}/zj {2a,2b}/z2 {2b}/zj {2a,2b}/z2 F/f /zj /z2 b} b} ,3 ,3 b, a, F/f
Рис. 7. Сетевой эквивалент &(N,C) компоненты A в контексте С
2.3. Приведенная форма сетевого эквивалента
Преобразуем нд-автомат ©(N,C) таким образом, чтобы: 1) его выходной алфавит не содержал «чужого» символа 'fail' и 2) множество редукций в алфавитах U и Z полученного нд-автомата и исходного нд-автомата ©(N,C) совпадали. Для получения приведенной формы достаточно удалить в сетевом эквиваленте все выходные последовательности, содержащие выходной символ 'fail', т.е. построить наибольший подавтомат сетевого эквивалента без состояния 'Fail'. Некоторые состояния сетевого эквивалента обладают следующим свойством: никакое состояние д-автомата с алфавитами U и Z не может быть редукцией данного состояния. Такие состояния сетевого эквивалента назовем нереализуемыми. Нереализуемые состояния определяются индуктивно. Состояние 'F' нереализуемо. Если из некоторого состояния нд-автомата ©(N,C) по какому-либо входному символу существует переход только в нереализуемые состояния, то это состояние также объявляется нереализуемым. Приведенная форма получается посредством удаления из сетевого эквивалента нереализуемых состояний и переходов в нереализуемые состояния.
Состояние нд-автомата будем называть Z-неприводимым, если никакое состояние д-автомата над алфавитами U и Z не может быть редукцией v. Множество L(v)cX* называется Z-исключающим множеством для состояния v, если для любого состояния t любого д-автомата над алфавитами U и Z выполняется t £E s.
Для каждого нереализуемого состояния v^F сетевого эквивалента ©(N,C)=(V,U,Z^>{fail},g,v0) существует множество L(v)cU*, которое отличает его от любого состояния t д-автомата над алфавитами U и Z, т.е. выполняется t £E s. Это множество назовем характеристическим множеством для нереализуемого состояния v.
Формально, множество нереализуемых состояний сетевого эквивалента и соответствующие им характе-
ристические множества определяются индуктивно следующим образом.
Состояние ‘F' является (О)-нереализуемым. Мы полагаем характеристическое множество для состояния ‘F' состоящим из «пустой» последовательности Б, т.е. множество Ь^={б}, так как переход в состояние ‘F' всегда сопровождается выдачей «чужого» символа ’/'. Предположим, что мы уже определили все (¿-1)-нереализуемые состояния автомата ©(Ж,С), ¿>0, и соответствующие им характеристические множества. Состояние V называется (к)-нереализуемым, если оно (¿-1)-нереализуемо или для него существует характеристический входной символ меи, такой, что все состояния множества g1(v,м) являются (¿-^-нереализуемыми. Объединение множеств мЬ(у') по всем V' еg1(v,м) есть характеристическое множество для состояния V'. Состояние автомата ©(Ж,С) является нереализуемым, если оно (к)-нереализуемо для некоторого ¿>0.
Утверждение 5. Пусть уф^' есть нереализуемое состояние сетевого эквивалента ©(Ж,С) с характеристическим множеством Ь(^.Тогда любое состояние г любого д-автомата Б с входным алфавитом V и выходным алфавитом 2 не является Ь(V)- редукцией состояния V.
Из предложения 5 следует, что после удаления из нд-автомата ©(Ж, С) всех нереализуемых состояний и переходов в эти состояния полученный нд-автомат 0(Ы,С) обладает тем же множеством детерминированных редукций с алфавитами V и 2, что и нд-автомат ©(Ж,С). Нд-автомат 0(Ы,С) будем называть приведенной формой сетевого эквивалента.
Теорема 6. Множество детерминированных редукций с выходным алфавитом 2 сетевого эквивалента ©(Ж, С) и его приведенной формы 0(Ы,С) совпадают.
Как следствие этого утверждения и теоремы 4, справедливо следующая теорема.
Теорема 7. Автоматы Б@С и А@С эквивалентны, если и только если автомат Б есть редукция приведенной формы сетевого эквивалента.
Пример. Приведенная форма сетевого эквивалента (рис. 7) представлена на рис. 8.
la 2b 3b la,3b
и1 {3b}/zj ,z2 - - {3b}/zj ,z2
и2 - {la,3b}/z2 {2b}/zj {2b}/zj
Рис. 8. Приведенная форма G(N,C) сетевого эквивалента компоненты A в контексте С
2.4. Синтез теста для сетевого эквивалента на основе приведенной формы
Пусть Т есть полный проверяющий тест относительно модели <G(N,C),<,3>. В общем случае множество T не является полным проверяющим тестом относительно модели <©(N,C),<,3>, так как для некоторых последовательностей из T множество реакций нд-автомата ©(N,C) не совпадает с множеством реакций нд-автомата G(N,C). Следующее предложение позволяет дополнить множество T таким образом, чтобы оно стало полным проверяющим тестом относительно модели <©(N,C),<,3>.
Утверждение 8. Входо-выходная последовательность р/у нд-автомата ©(N,C) не является входовыходной последовательностью нд-автомата G(N,C) тогда и только тогда, когда входо-выходная последовательность p/у переводит нд-автомат ©(N,C) в нереализуемое состояние.
Для произвольного множества T последовательностей в некотором алфавите через [T] обозначим множество всех начальных отрезков последовательностей из T.
Теорема 9. Множество Т'={Ру:Ре[Т], yeL(v), veg1(v0,P)nR}, где R - множество всех нереализуемых состояний сетевого эквивалента ©(N,C) = (V,U,Z и {fail}, g,v0), есть полный проверяющий тест относительно модели <©(N,C),<,3>.
Пример. Построим проверяющий тест для сетевого эквивалента ©(N,C) (рис.7) компоненты A (рис.2) полный относительно выходных неисправностей. Вначале, используя метод из [9], строим полный проверяющий тест T для приведенной формы сетевого эквивалента компоненты, т.е. для нд-автомата G(N,C) (рис.7). Затем на основе теста T={u1u2u2u2} строим тест для нд-автомата ©(N,C). Последовательность u1u2u2u2 накрывает три нереализованных состояния '2a,2b', '1b,3b', '2a,2b' сетевого эквивалента, характеристические множества которых есть: L( '2a,2b')={u1}, L( '1b,3b')={u2}. Поэтому в множество Т следует добавить еще последовательности u1u2u1, u1u2u2u2, u1u2u2u2u1. При этом последовательности, являющиеся начальными отрезками других последовательностей, можно удалить. Тогда Т {u^2u1, u1u2M2u2M1}.
2.5. Трансляция внутреннего теста во внешние последовательности сети
Покажем, как тест, построенный для автомата, погруженного в сеть, может быть странслирован во
входные последовательности автоматной сети. Для пары последовательностей р/у Реи*, уе2*, одинаковой длины обозначим через ар /у последовательность из X*, относительно которой пара р/у является недопустимой.
Теорема 10. Путь Е есть полный проверяющий тест относительно модели <©(Ж,С),<,3>. Тогда множество Е'={ар /у: РеЕ, у^2^0,Р), |РМу| }есть полный проверяющий тест для компоненты А в контексте С относительно класса 3.
Доказательство. Пусть Бе3, автоматы Б@С и А@С не эквивалентны. Тогда Б не есть редукция нд-автомата ©(М,С) (теорема 4), и существует РеЕ такая, что Б не есть Р-редукция нд-автомата ©(Ж,С). Иными словами, выходная последовательность у автомата Б на последовательность Р не содержится в множестве выходных реакций нд-автомата ©(М,С) на эту последовательность, т.е. существует последовательность ар /у еЕ, относительно которой пара р/у недопустима (следствие из предложения 3). По определению недопустимости, реакция Б@С на входную последовательность ар /у не совпадает с реакцией автомата эталонной сети на эту последовательность, т.е. ар /у обнаруживает неисправный автомат Б@С.
Как следует из теоремы 10, трансляция последовательностей теста, построенного для сетевого эквивалента, во входные последовательности сети, т.е. в проверяющий тест для компоненты, может быть осуществлена следующим образом. Для каждой пары р/у, такой, что РеЕ, |Р|=|у|, р/у не есть входо-выходная последовательность ©(М,С), просматриваем все последовательности аеХ* той же длины, что и Р, и находим среди них последовательность ар /у. Согласно свойству нд-автомата ©(М,С) (предложение 3), такая последовательность существует. Объединение этих последовательностей будет полным проверяющим тестом для компоненты А в контексте С относительно класса 3. В этом случае для каждой последовательности Р длины I может оказаться необходимым просмотреть все X последовательностей длины I в алфавите X.
Аппроксимация Б(Ы,С)=(Р,Ху.и,2^{/аИ},Н,ро) обладает свойствами, которые можно использовать для сокращения перебора. Если пара р/у не является вхо-до-выходной последовательностью сетевого эквивалента, в то время как ее префикс длины (¿-1) такой является, то для входо-выходной последовательности (в ,у]к-^ сетевого эквивалента, которая переводит его из начального состояния в состояние ^', существует последовательность аеХ* такая, что входо-выходная последовательность (ав ,у) аппроксимации переводит ее из начального состояния в состояние V'. Следовательно, для известных в и у всегда можно провести «обратное» моделирование поведения аппроксимации и найти искомую а.
Пусть в=м1...мке V* и у=г1 ...гке2* и пусть пара в/у не является входо-выходной последовательностью сетевого эквивалента, хотя ее максимальный собственный префикс таким свойством обладает. Тогда суще-
ствует цепочка состояний ^,...,^_1 сетевого эквивалента таких, что (^-+1, z/+l)еg(v/,м/+l),0</<k-1, и символ мк переводит сетевой эквивалент из состояния ^_1 в состояние Т'. По построению, состояниями сетевого эквивалента являются подмножества состояний аппроксимации, причем состояние сетевого эквивалента Т' соответствует некоторому подмножеству состояний аппроксимации, содержащему состояние '¥'. Поэтому цепочке состояний ^,...,^_1 сетевого эквивалента соответствует цепочка состояний _ро,---,р>1 аппроксимации и последовательность входных символов Х0,...,ХЫ сети таких, что (рт^т)ек(рьхтмт), 0<г<к-1. При этом входной символ (хкмк) переводит аппроксимацию из состояния рк-1 в «запрещенное» состояние 'F' с выдачей выходного символа '/'. Состояния р- и входные символы х-+1 , 0<г<к-1, можно найти, просматривая цепочку состояний v0,...,vk_1 сетевого эквивалента в обратном порядке. Таким образом, решается задача нахождения входного символа х,+1 и предшественника р- по состоянию-преемнику р+1 и при известных (м,+1^,+1), 0<г<к-1. Трудоемкость поиска в этом случае не превышает величины |Х|*|Р|*к. Полученную последовательность х0,...,хк-1хк можно выбрать в качестве тестовой.
Пример. Построим проверяющий тест для компоненты А=(Г,и,2,уА,фА,г0) (рис.2) полный относительно выходных неисправностей. Вначале строим тест для сетевого эквивалента ©(Ж, С). Затем транслируем тест Е={м1м2м1, м1м2м2м2м1} во внешние последовательности сети, используя аппроксимацию Б(Ы,С). Проиллюст-
рируем трансляцию на примере тестовой последовательности м1м2м1. Находим множество {м1м2м1/г1г2г1, м1м2м1/z1z2z2, м1м2м1/z^z2z1, м1м2м1/z2z2z2} всех возможных пар вида м1м2м1/у, где у не является выходной последовательностью сетевого эквивалента ©(Ж, С) на м1м2м1. Входо-выходные последовательности ммм^^^ и м1м2м^2г2[ переводят сетевой эквивалент из начального состояния 1а в состояние 'F' и накрывают цепочку состояний 3Ъ, '2а,2Ъ', F. Обратным моделированием получаем цепочку состояний аппроксимации {3Ъ, 2а, F} и входную последовательность х1х1х1. В конечном итоге получаем тест для компоненты Е'={х^х1х1, х^х2х^х1, х1х2х2х^х1}.
ЗАКЛЮЧЕНИЕ
В работе предложен метод синтеза полных проверяющих тестов для автоматной сети, в предположении, что неисправна не более чем одна компонента. Метод основан на построении сетевого эквивалента проверяемой компоненты, получении для него полного проверяющего теста и последующей трансляции теста во внешние последовательности сети. Соответствующие теоремы гарантируют возможность трансляции полученного теста и сохранения полноты теста при трансляции. Хотя на первый взгляд сетевой эквивалент кажется достаточно громоздким, сведения о размерностях сетевых эквивалентов для ряда типовых схем, приведенные в статье [11], не подтверждают этого предположения.
ЛИТЕРАТУРА
1. Petrenko A., Yevtushenko N., Bochmann G. Fault models for testing in context // Proceedings of the IFIP 1st Joint Inter. Conf. FORTE/PSTV. 1996. P.163-178.
2. Petrenko A., Yevtushenko N., Dssouli. R. Testing strategies for communicating FMSs // Proceedings of the 7th Inter. Workshop Protocol Test Systems. 1994. P. 181-196.
3. Евтушенко Н.В., Петренко А.Ф., Тренькаев В.Н. Метод тестирования автоматных сетей, основанный на тестируемом поведении компоненты // Автоматика и вычислительная техника. 1996. № 2. С. 48-58.
4. Василевский М.П. О распознавании неисправностей автоматов // Кибернетика. 1973. № 4. С. 98-108.
5. Евтушенко Н.В., Петренко А.Ф. Метод построения проверяющего эксперимента для произвольного детерминированного автомата // Автоматика и вычислительная техника. 1990. № 5. C. 73-76.
6. Fujiwara S., Bochmann V.G., Khendek F., et al. Test selection based on finite state machine models // IEEE Transactions on Software Engineering. 1991. Vol. SE-17. № 6. P. 591-603.
7. Куфарева И.Б., Евтушенко Н.В., Петренко А. Ф. Синтез проверяющих тестов для недетерминированного автомата относительно редукции // Автоматика и вычислительная техника. 1998. № 3. С. 10-20.
8. Лукьянов Б.Д. О различающих и конрольных экспериментах с недетерминированными автоматами // Кибернетика и системный анализ. 1995. № 5. C. 69-76.
9. Куфарева И.Б., Евтушенко Н.В. Синтез проверяющих тестов для недетерминированных автоматов относительно редукции в классе автоматов с неисправностями выходов // Сб. трудов Второй Междунар. конф. CAD DD’ 97, Т.2. Минск: ИТК АН Беларуси, 1997. C.51-58.
10. Евтушенко Н.В., Матросова А.Ю. Об одном подходе к синтезу проверяющих последовательностей для автоматных сетей // Автоматика и вычислительная техника. 1991. № 2. С. 3-7.
11. Watanabe Y., Brayton R.K. The maximal set of permissible behaviors for FSM network // Trans. оf IEEE/ACM Int. Conf. on Computer-Aided Design. 1993. P. 316-328.