Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Скобцовы Моделирование и тестирование

.pdf
Скачиваний:
97
Добавлен:
03.03.2016
Размер:
3.61 Mб
Скачать

пары состояний, что и последовательностью T12=(1). Поэтому в дальнейшем мы не будем рассматривать этот вариант. Данный случай аналогичен отсечению повторных ветвей в ОРД и повторных термов в

символьном методе генерации тестов. Рассмотрим второй

вариант:

~

= y12

= D* . Дальнейшее распространение значения

~

= D* не

y11

y11

снимает неопределенности на внешнем входе и линиях начального состояния. Поэтому выполняем перебор значений внешнего входа в первой ячейке. Полагая x1=0, получаем y11=u, y21=D*. Очевидно, что входная последовательность T22=(0,1) не является тестом. Поскольку данные значения эквивалентны результатам, полученным для входной последовательности T1=(0) в итеративной схеме длины один, то в

дальнейшем данный случай рассматриваться не будет. Полагаем

x1=1.

Прямое распространение данного значения дает f11=0.

~

= D*

Поскольку y11

и f11=0, то, применяя обратную импликацию, получаем f21=F0×D*=D.

Установление критического значения D на неисправной линии говорит о необходимости активизации неисправности. Активизировать неисправность значит, установить на линии в исправном устройстве значение, инверсное неисправному. Для этого необходимо установить на линиях-предшественниках значения обеспечивающие установление на целевой линии в исправном ДУ нужное значение. При этом нам не важно,

какое значение установится на целевой линии в неисправной схеме, так как в силу наличия константной неисправности там будет всегда неисправное значение. Поэтому для нашей цели необходимо распространить значения G0 или G1 на линии-предшественники линии,

содержащей неисправность. Значение G0 распространяется в случае неисправности const1, значение G1 - в случае неисправности const0.

Распространение данных значений выполняется с помощью применения обратной логической импликации. В нашем примере имеем неисправность const0 на линии f2, поэтому необходимо распространить значение G1 на

311

линии-предшественники линии f21. В результате получаем x1=1, y21=G1.

Для полученных новых значений выполняем прямую логическую импликацию, в результате которой получаем f31=f11=0. Таким образом,

получаем x1=1, y11=u, y21=G1. Данные значения линий начального состояния соответствуют терму xt xt-1 y2G1t-1 в различающей функции D2t .

То есть, опять таки наблюдается соответствие между символьным и структурным методами. Полученные значения линий начального состояния y11=u, y21=G1 определяют следующие значения линий исправного и неисправного устройств соответственно: (y1=u, y2=1) и (y1н=u, y2н=1), (y1=u, y2=1) и (y1н=u, y2н=0). Последние, в свою очередь, oпределяют пары начальных состояний исправного (Табл.7.1) и неисправного (Табл.7.2)

устройств: (B,a), (B,b), (B,c), (B,d), (D,a), (D,b), (D,c), (D,d), различаемые входной последовательностью T23=(1,1) при наблюдении выходных реакций только на втором КЭ. Отсюда видно, что входная последовательность T23=(1,1) также не является тестом для данной неисправности.

Таким образом, входные последовательности T11, T12, построенные при условии наблюдения только на первом КЭ, и входные последовательности T21, T22, T23, построенные при условии наблюдения только на втором КЭ, то есть с применением стратегии одиночного

наблюдения, не являются тестами для неисправности const0 на линии f2.

Однако, в соответствии со стратегией кратного наблюдения различные пары начальных состояний могут различаться в различные моменты времени, то есть при наблюдении на различных КЭ. Поэтому в соответствии с этой стратегией и по аналогии с символьным методом мы

будем проводить склейкузначений линий начального состояния схем

длины 1 и 2. Процедура склейкисостоит из двух фаз: 1) выделение

совместимых входных последовательностей; 2) объединение

312

y1a1 y2a2 ... ynan ,

различающихся пар начальных состояний совместимых последовательностей.

Определение 7.10 Совместимые входные последовательности - это

последовательности, покомпонентное пересечение наборов в которых не дает в результате значения для произвольной компоненты в любом наборе результирующей последовательности.

В конце первой фазы, как правило, получается несколько множеств совместимых входных последовательностей. Если в результате объединения пар начальных состояний, полученных для всех рассмотренных комбинационных схем для совместимых входных последовательностей, мы получаем множество всех возможных пар начальных состояний, то данная неисправность обнаруживается построенной входной последовательностью. Проверка данного факта выполняется следующим образом. Значения линий начального состояния y1=a1, y2=a2,..., yn=an, определяющие различающиеся пары начальных состояний исправной и неисправной схем, кроме того, еще определяют

символьный терм получающийся в результате

конъюнкции соответствующих характеристических переменных. Если дизъюнкция таких термов хотя бы для одного множества совместимых входных последовательностей равна 1, то неисправность считается

обнаруживаемой. Это утверждение следует из аналогичного утверждения,

полученного в символьном методе. Последовательность, получаемая в результате покомпонентного пересечения входных последовательностей из этого множества, является тестом неисправности. Таким образом, мы имеем основной критерий проверяемости неисправности:

m

 

 

 

 

dZ = V( ya1i ya2i ... yani ) = 1,

(7.5)

i=1

1i

2i

ni

 

 

 

 

 

313

где m - мощность множества совместимых входных последовательностей.

Описанная процедура соответствует склейкеразличающих функций вида Dict в символьном методе.

Вернемся к нашему примеру. Для рассмотренных комбинационных схем выделяется 4 множества совместимых входных последовательностей:

S21={T11=(0), T21=(C,0)}, S22={T12=(1), T21=(C,0)}, S23={T11=(0), T22=(0,1)},

S24={T12=(1), T23=(1,1)}. Входные последовательности множества S21

являются совместимыми, так как в результате их покомпонентного пересечения получается последовательность T21′ =(0,0). Совместимость

входных последовательностей в остальных множествах показывается аналогично. Поэтому мы можем выполнить склейку значений линий

начального состояния для схем длины 1 и 2.

Для последовательности T11

из множества S21 значения линий начального состояния

y1=u,

y2=D*

определяют

символьный

терм

 

yu y D*

= 1 ( y Dy D ) = y Dy D .

 

 

 

 

1

2

 

2

 

2

2

2

Характеристическая переменная

yu

= y0

y Dy D

y1

= 1

в

силу

 

 

 

1

1

 

1

1

1

 

 

 

свойства 3.1 характеристических переменных. Аналогично для входной последовательности T21 мы выводим символьный терм y1D* = y1Dy1D . В

соответствии с критерием проверяемости (7.5) неисправности получаем dZ21=y2Dy2D y1Dy1D ≠ 1.

Следовательно, данная неисправность не обнаруживается входной последовательностью T21′ =(0,0).

Верность критерия (7.5) подтверждается также следующим фактом.

Из символьного выражения dZ определяется множество пар начальных состояний, различаемых входной последовательностью, получаемой в результате пересечения совместимых входных последовательностей.

Полученное множество пар начальных состояний совпадает с множеством различаемых пар состояний, которое определяется из A-группы ОРД,

314

соответствующей полученной входной последовательности. Получение же на некотором шаге для некоторого множества совместимых последовательностей символьного выражения dZ=1 говорит о том, что последовательность, получаемая в результате пересечения совместимых входных последовательностей, соединяет вершину дерева с гомогенной A-

группой.

Так, из выражения dZ21 определяется, что последовательность

T

=(0,0) различает следующие пары состояний: (A,b), (A,c), (A,d), (B,a),

21

 

(B,c), (B,d), (C,a), (C,b), (C,d), (D,a), (D,b), (D,c). Это множество совпадает с множеством различаемых пар состояний, определяемых из A-группы

{Aa}{Bb}{Cc}{Dd}, связываемой последовательностью (0,0) с вершиной дерева.

Для множества S22 получаем входную последовательность T

 

=(1,0),

 

 

 

 

 

 

22

 

 

которая не является тестом, так как

 

 

 

 

dZ =y Dy D

y Dy D = y Dy D 1.

 

 

 

22

1

1

1

1

1

1

 

 

 

Из выражения dZ22

определяем,

что последовательность T

 

=(1,0)

 

 

 

 

 

 

22

 

различает следующие пары начальных состояний: (A,c), (A,d), (B,c), (B,d),

(C,a), (C,b), (D,a), (D,b). Это множество совпадает с множеством

различаемых пар состояний, определяемых из A-группы {ABab}{CDcd},

связываемой последовательностью (1,0) с вершиной дерева.

Аналогично получаем для S23: T

=(0,1) не является тестом,

так как

 

 

 

 

 

23

 

 

 

dZ =y Dy D

y Dy D = y Dy D 1.

 

 

23

2

2

2

2

2

2

 

 

Из выражения dZ23

определяем,

что последовательность

T

=(0,1)

 

 

 

 

 

 

 

23

 

различает следующие пары начальных состояний: (B,a), (B,c), (D,a), (D,c),

(A,b), (A,d), (C,b), (C,d). Полученное множество совпадает с множеством

различаемых пар состояний, определяемых из A-группы {CAca}{DBdb},

связываемой последовательностью (0,1) с вершиной ОРД.

Также имеем для S24: T =(1,1) не является тестом, так как

24

315

dZ24=y1Dy1D y2G1 ≠ 1.

Из выражения dZ24 определяем, что последовательность T24′ =(1,1)

различает следующие пары начальных состояний: (A,c), (A,d), (B,a), (B,b),

(B,c), (B,d), (D,a), (D,b), (D,c), (D,d), (C,a), (C,b). Полученное множество различаемых пар начальных состояний также совпадает с множеством различаемых пар начальных состояний, которое можно определить из A-

группы 2-го уровня {D}{B}{Ccd}{Aab}, связанной с вершиной ОРД соответствующей последовательностью T24′ =(1,1).

Рис.7.19 Итеративная комбинационная схема из 3 КЭ

Поскольку для итеративной схемы из двух ячеек тест не был

построен, то будем рассматривать итеративную комбинационную схему из трех КЭ (Рис.7.19). Значения линий начального состояния, полученные для предыдущей схемы, распространяются к внешним входам и линиям

начального состояния рассматриваемой схемы. В нашем

случае

~

= y22 =G1, полученного для схемы

длины

распространение значения y21

два, дает значения x1=C, y11=G0, y21=u для рассматриваемой схемы длины

три. Данные значения соответствуют терму

x

t

x

t-1

yG0

из различающей

 

 

 

 

1t-2

функции

Dt . Из полученных значений можно сказать, что построенная

 

3

 

 

 

 

 

 

входная

последовательность T3=(C,1,1)

различает

следующие пары

начальных состояний: (A,a), (A,b), (A,c), (A,d), (B,a), (B,b), (B,c), (B,d) при

наблюдении выходных реакций только на третьей итерации. Значит,

последовательность T3=(C,1,1) не является тестом. Выполнение

316

процедуры склейки для значений линий начального состояния также не дает положительных результатов.

Рис.7.20 Итеративная комбинационная схема из 4 КЭ

Поэтому будем рассматривать итеративную комбинационную схему длины четыре (Рис.7.20). Значения линий начального состояния, полученные для предыдущей схемы из трех КЭ, распространяются к внешним входам и

линиям начального состояния рассматриваемой схемы. В нашем случае

~

= y12 =G0, полученного для схемы длины

распространение значения y11

три, дает следующие значения: 1) x1=0, y11=u, y21=G1, 2) x1=1, y11=u, y21=G0

для рассматриваемой схемы длины четыре. Из полученных значений

можно сказать, что 1)

построенная входная последовательность

T41=(0,C,1,1) соответствует

терму xt xt-1

 

t-3 y2Gt1-3 в различающей

x

функции D4t и различает следующие пары начальных состояний: (B,a), (B,b), (B,c), (B,d), (D,a), (D,b), (D,c), (D,d); 2) входная последовательность

T42=(1,C,1,1) соответствует терму xt xt-1 xt-3 y2Gt-03 в различающей

функции D4t и различает следующие пары начальных состояний: (A,a), (A,b), (A,c), (A,d), (C,a), (C,b), (C,c), (C,d). Отсюда следует, что построенные входные последовательности T41 и T42 не являются тестовыми

для рассматриваемой неисправности. Поэтому в соответствии со

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

317

последовательностей S41={T11,T21,T41}, S42={T11,T22,T3,T41}, S43={T12,T21,T42},

S44={T12,T23,T3,T42}. Проверка критерия проверяемости (7.5) для множеств

S41, S42, S43 не дает положительных результатов. Для множества же S44

имеем

dZ44=y1Dy1D y2G1 y1G0 y2G0 = 1 y1Dy1D y1G0 = 1.

Значит, согласно критерию обнаруживаемости неисправности (7.5)

результирующая входная последовательность T44′ =(1,1,1,1) является тестом

рассматриваемой неисправности f20. Это подтверждается тем, что из

выражения dZ44 определяются следующие различаемые пары начальных состояний (A,a), (A,b), (A,c), (A,d), (B,a), (B,b), (B,c), (B,d), (C,a), (C,b), (C,c), (C,d), (D,a), (D,b), (D,c), (D,d), которые образуют множество всех пар начальных состояний исправного и неисправного ДУ. То же мы можем заключить из вида гомогенной A-группы {A}{C}{B}{D}{cd}{ab},

связываемой последовательностью (1,1,1,1) с вершиной ОРД (Рис.7.12).

На практике бывают случаи, когда проверка критерия (7.5) сводится к покомпонентному объединению последовательностей значений линий начального состояния (y1,y2,...,yn). В этом случае в результате объединения значение u должно быть получено на всех линиях начального состояния.

Ниже приводится алгоритм выше изложенного метода в форме псевдокода (Рис.7.21).

Генерация_теста(ЦУ, неисправность)

{

Структурная импликация();

i=1;

while(не построен тест и число итераций i не привысило ограничение)

{

Построение_итеративной_комб._схемы_длины_i_обратным_способом;

if(i=1)

{

for(каждого внешнего выхода схемы)

318

{

Установить_на_внешнем_ выходе_значение_D*;

Обратное_распространение_D*_до_внешних_входов_ и_псевдовходов();

if(на неисправной линии установилось значение D’ или D)

Активизация_неисправности();

}

}

else

{

Обратное_распространение_значений_линий_состояния_2-го_КЭ_

до_внешних_входов_и_псевдовходов_1-го_КЭ();

if(на неисправной линии установилось значение D’ или D)

Активизация_неисправности();

}

if(все линии начального состояния имеют неопределенное значение u)

Конец; //Входные наборы, полученные для всех итеративных схем образуют

тестовую последовательность.

else

{

for(итеративных схем длины от 1 до i)

Выделение_множеств_совместимых_входных_последовательностей();

for(каждого множества)

{

Процедура_склейки();

Проверка_критерия_обнаруживаемости_неисправности();

if(критерий выполняется)

Конец;

//Сгенерированная_входная_последовательность - тест.

}

}

i=i+1;

}

}

Рис.7.21 Алгоритм структурного построения тестов на основе стратегии кратного наблюдения

319

7.3.4 Символьное моделирование последовательностных логических схем

Далее рассматривается подход, который также объединяет преимущества автоматных и структурных методов. Но в отличие от предыдущих этот метод основан на символьном моделировании последовательных схем [18]. Использование символьного моделирования позволило создать алгоритмы построения диагностических, уникальных,

квазиуникальных и тестовых последовательностей для ДУ с памятью на структурном уровне представления для различных моделей неисправностей константных и функциональных [18-21,23]. Применение данных характеристических последовательностей позволяет генерировать проверяющие тесты высокой полноты.

К ключевым положениям метода символьного моделирования,

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

которые могут находиться в произвольных начальных состояниях,

благодаря использованию 16-значного алфавита B16 и системы многозначных функций. В традиционных методах многозначного моделирования на выходах и псевдовыходах (линии состояния в конце моделирования) получаются многозначные значения из некоторого используемого алфавита, на основании которых делаются необходимые выводы о поведении ДУ, обнаруживаемости неисправности и т.п. При этом в начале процесса моделирования на линиях начального состояния устанавливаются неопределенные значения u или C в силу неопределенности пары начальных состояний моделируемых устройств.

320