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

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

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

Итак, целью контрольного эксперимента является проверка того, что

таблица переходов-выходов автомата правильно описывает

функционирование тестируемой схемы. Если в течение выполнения эксперимента тестируемая схема выдает выходную реакцию, отличную от автомата, реализуемого исправной схемой, то схема считается неисправной. Рассмотрим построение контрольного эксперимента для

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

одну диагностическую последовательность [93].

Контрольный эксперимент можно разделить на три фазы. 1) Инициализация.

На этом этапе тестируемый автомат переводится из неизвестного

начального состояния в некоторое определенное состояние, которое является начальным для второй части эксперимента. Приведенный (не

имеющий

эквивалентных

состояний)

сильно связный

автомат можно

перевести

в заданное

состояние S

путем подачи

установочной

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

Очевидно, что в этом случае инициализация является адаптивной транслирующая последовательность подбирается в зависимости от того, в

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

выполняется жестко определенной входной последовательностью. 2) Идентификация состояний.

На этом этапе прилагается входная последовательность, в которой посещается каждое состояние автомата, что подтверждается реакцией на диагностическую последовательность (для всех посещаемых состояний).

331

3) Проверка переходов автомата.

В течение данного этапа выполняется проверка каждого перехода автомата. При этом автомат переводится в определенное состояние. Далее выполняется сам переход в следующее состояние. Затем подается диагностическая последовательность, с помощью которой проверяется состояние, в которое перешел автомат в результате перехода.

I

1

&

1 Q & Z

 

 

 

&1

W

1

 

 

 

 

Рис. 7.22. Схема одного разряда регистра

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

 

00/0

10/1

 

 

11/0

 

 

00/1

01/0

А

В

 

 

01/0

 

10/0

11/0

Рис. 7.23 Граф переходов-выходов автомата

332

Далее данный подход рассмотрим на примере тестирования схемы на рис.7.22, которая реализует один разряд сдвигового регистра. В табл.7.9

приведена таблица переходов-выходов конечного автомата, который реализуется данной схемой. На рис.7.23 для удобства показан граф переходов-выходов этого автомата.

Таблица 7.9

 

 

 

 

 

 

 

 

 

IW

00

01

10

11

S

 

 

 

 

A

A, 0

A,0

A,0

B,0

B

B,1

A,0

B,1

B,0

Наконец, в табл.7.10 приведен с комментариями сам контрольный

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

Таблица 7.10

Входы

Состояние

Выход

Комментарий

I

W

S

Z

 

 

1

2

3

4

0

1

--

0

Сброс схемы в состояние А

 

 

 

 

(синхронизирующая

 

 

 

 

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

0

0

А

0

Чтение

 

 

 

 

(диагностическая

 

 

 

 

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

0

0

А

0

Чтение

 

 

 

 

проверка перехода

 

 

 

 

A A

 

 

 

 

00/ 0

1

1

B

0

Переход в состояние B

 

 

 

 

A B

 

 

 

 

11/ 0

0

0

B

1

Чтение

 

 

 

 

(диагностическая

 

 

 

 

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

0

0

B

1

Чтение

 

 

 

 

проверка перехода

 

 

 

 

B B

 

 

 

 

00/1

 

 

 

 

333

 

1

2

3

4

1

0

B

1

Переход

 

 

 

 

B B

 

 

 

 

10/1

0

0

B

1

Чтение

 

 

 

 

(диагностическая

 

 

 

 

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

1

1

B

0

Переход

 

 

 

 

B B

 

 

 

 

11/ 0

0

0

B

1

Чтение

 

 

 

 

(диагностическая

 

 

 

 

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

0

1

B

0

Переход

 

 

 

 

B A

 

 

 

 

01/ 0

0

0

А

0

Чтение

 

 

 

 

(диагностическая

 

 

 

 

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

1

0

А

0

Переход

 

 

 

 

A A

 

 

 

 

10 / 0

0

0

А

0

Чтение

 

 

 

 

(диагностическая

 

 

 

 

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

0

1

A

0

Переход

 

 

 

 

A A

 

 

 

 

10 / 0

0

0

А

0

Чтение

 

 

 

 

(диагностическая

 

 

 

 

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

Здесь в первой строке производится инициализация автомата,

который переводится в начальное состояние A с помощью синхронизирующей последовательности ("сброса схемы"). Далее выполняется проверка переходов автомата одновременно с идентификацией состояний. Со второй по четвертую строку проверяются два перехода состояния из состояния А. Затем проверяются все переходы из состояния B. И в конце проверяются два перехода из состояния A.

Проверка всех переходов производится по стандартной схеме: 1) перевод автомата в нужное состояние; 2) выполнение собственно перехода; 3)

334

проверка состояния, в которое перешел автомат с помощью диагностической последовательности (в данном случае чтения регистра).

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

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

7.3.7 Построение проверяющих тестов для функциональных неисправностей одиночного перехода

Для автоматных методов диагностики ДУ с памятью широко распространенной является модель неисправности одиночного перехода

(ОП). Показано, что данная модель неисправности покрывает значительно более широкий класс реальных физических неисправностей, чем модель одиночных константных неисправностей [104]. Однако работа с данной моделью неисправности и построение для нее тестов на структурном уровне является сложной задачей в силу автоматной природы данной модели неисправностей. Ниже рассматривается метод построения проверяющих тестов для ОП-неисправностей, работающий со структурной моделью ДУ с памятью [23]. Алгоритм построения теста основан на использовании квазиуникальной последовательности, которая определяется ниже. Он объединяет преимущества автоматного и структурного подходов. Предлагаемый метод также основан на использовании символьного моделирования последовательностных схем

[21].

335

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

Переход автомата (и соответственно ДУ также) из одного состояния в

~

другое ассоциируется с четырьмя объектами (S,i,o, S ) , где S - начальное

~

состояние автомата, S - конечное состояние автомата, i - входной символ,

при подаче которого выполняется переход, o - выходной символ,

возникающий в результате перехода. Переход между состояниями является неисправным, если выходной сигнал перехода является неправильным (1),

неправильным является конечное состояние перехода (2), либо и то и другое вместе (3). В [104] показано, что неисправности вида (2) являются доминирующими, то есть, тестовая последовательность для таких неисправностей проверяет также неисправности вида (1) и (3). Поэтому в дальнейшем рассматриваются неисправности вида (2) – ОП-

неисправности.

Пусть нам дан конечный неинициальный автомат A и некоторая ОП-

неисправность f. Обозначим автомат, в котором присутствует неисправность f как Af.

Определение 7.140 ОП-неисправность f определяется как изменение исправного перехода (Sb ,is ,os , Se ) на неисправный переход (Sb ,is ,os , Sef ) .

Здесь Sb - начальное состояние перехода, is - входной символ,

активизирующий ОП-неисправность, os - выходной символ, Se - конечное состояние исправного перехода, Sef - конечное состояние неисправного перехода.

Рассмотрим пример ОП-неисправности для конечного автомата A,

заданного графом переходов (рис.7.24 а) ). В данном графе имеется дуга,

336

соответствующая переходу (A,1,0,C). На рис.7.24 б) представлен граф

конечного автомата неисправного ДУ, в котором имеется ОП-

неисправность, изменяющая исправный переход (A,1,0,C) на неисправный

переход (A,1,0,D).

0/0

0/0

A

0/1

1/0 1/0

0/0

C

0/1

B

D

1/0

A

0/1

B

1/0

 

 

 

1/0

1/0

 

 

 

 

0/0

 

 

1/1

C

 

D

1/1

 

 

 

 

 

0/1

 

 

а) исправный КА

б) неисправный КА с ОП-неисправностью

Рис.7.24. Графы исправного и неисправного КА

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

схемы все вышесказанное представляется следующим образом. Любое состояние автомата из множества S задается двоичным набором значений сигналов на линиях состояния Y = ( y1, y2 ,..., yn ) . Аналогично входной i и

выходной o символы определяются, соответственно, двоичными наборами значений сигналов на линиях внешних входов X = (x1, x2 ,..., xk ) и внешних

выходов

Z = (z1, z2 ,..., zm ) .

Таким образом, переход из состояния в

состояние

для логической

схемы ассоциируется с четверкой объектов

~

 

~

(S, X , Z, S ) . При этом начальное S и конечное S

состояния перехода

определяются, соответственно, двоичными наборами Y = ( y1, y2 ,..., yn ) и

~

~

~

~

 

 

Y

= ( y1

, y2 ,..., yn ). Вследствие всего вышесказанного определение ОП-

неисправности 7.140 приобретет следующий вид.

 

Определение 7.14 ОП-неисправность f определяется как изменение

исправного

перехода

(Sb , X s , Zs , Se )

на неисправный переход

 

 

 

 

 

337

(Sb , X s , Zs , Sef ) . Здесь Sb - начальное состояние перехода, X s - входной

набор, активизирующий ОП-неисправность, Zs - выходной набор, Se -

конечное состояние исправного перехода, Sef - конечное состояние неисправного перехода.

В дальнейшем под A и Af будем понимать, соответственно исправное ДУ и неисправное ДУ, содержащее заданную ОП-неисправность f.

Пусть нам дано исправное устройство A и неисправное ДУ Af,

содержащее некоторую ОП-неисправность f, которая изменяет исправный переход (Sb , X s , Zs , Se ) на неисправный переход (Sb , X s , Zs , Sef ) .

Пусть

X f = (X f

, X f

,...X f

) - последовательность, отличающая

 

1

2

p

 

состояние Sb в неисправном ДУ Af от всех состояний в исправном ДУ A.

Выходную последовательность, возникающую при подаче на неисправное

ДУ

Af

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

X f

в

состоянии Sb,

обозначим как

Z f = (Z f

, Z f

,...., Z f ) .

Используя

данные обозначения

введем понятие

 

1

2

p

 

 

 

 

 

 

квазиуникальной последовательности.

 

 

 

Определение 7.15

Вход-выходную последовательность ( X f , Z f )=

((X f

, Z f ), (X f

, Z f ),..., (X f

, Z f ))

назовем

квазиуникальной входвыходной

1

1

2

2

p

p

 

 

 

 

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

 

и

обозначим

как U f .

Соответственно

последовательность X f

назовем входной частью, а последовательность

Z f

-

 

выходной

 

частью

квазиуникальной

входвыходной

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

Рассматриваемый алгоритм построения тестовой последовательности для заданной ОП-неисправности основан на использовании выше определенной квазиуникальной входвыходной последовательности [94]. Данная последовательность строится с помощью изложенного выше метода символьного моделирования.

338

Особенностью символьного моделирования для пары ДУ с памятью,

одно из которых содержит функциональную ОП-неисправность, является способ внесения неисправности в процессе моделирования. Неисправность возникает в случае выполнения двух условий:

1)устройство находится в состоянии sb = (δ1,δ 2 ,...,δ n ) ;

2)на устройство подается входной вектор X s = (σ 1,σ 2 ,...,σ k ) .

Неисправность вносится только на те линии псевдовыходов ~ yi ,

которые меняют свое значение в неисправном ДУ Пусть ~i = где

. y f (X ,Y ) ,

X = (x1, x2 ,..., xk ) , Y = ( y1 , y2 ,..., yn ) , f(X,Y) - некоторая булева функция.

Существенным для активизации неисправности является терм

xσ1

xσ 2

... xσ l yδ1

y

δ 2

... y

 

a,

b =1

δ n , где ab =

,

1

2

k

1

 

2

 

n

 

 

 

b = 0

 

 

a,

 

 

 

 

 

 

 

 

поскольку этот терм отображает условия возникновения неисправности.

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

~

только

посредством

изменения

значения

терма

yi = f (X ,Y )

x1σ1 xσ2 2 ... xσk l y1δ1 y2δ 2 ... ynδ n .

Если значение ~ yi :

− в исправном устройстве равно 1, а в неисправном 0, то

неисправность вносится следующим образом:

xσ1 xσ 2

... xσ l yδ1

yδ 2 ... y

δ n D ;

 

 

 

 

 

 

 

1

2

k

1

2

n

 

 

 

 

 

 

в исправном устройстве равно 0, а в неисправном 1, то в функции

~

f (X ,Y )

для исправного ДУ

σ1

σ 2

σ l

δ1

y

δ 2

δ n

yi =

терм x1

x2

... xk

y1

2

... yn

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

~

 

для неисправного

ДУ,

поэтому неисправность вносится

yi = f (X ,Y )

следующим образом:

 

 

 

 

 

 

~ ~

σ1

σ 2

σ l

δ1

y

δ 2

δ n

D′ .

yi = yi x1

x2

... xk

y1

2

... yn

 

 

 

 

 

 

 

 

 

 

339

Моделируемая последовательность T является входной частью

квазиуникальной последовательности тогда и только тогда, когда на

некоторой итерации t моделирования выполняется следующее равенство:

t m

 

... ynδ n )1 ( y1δ1 y2δ 2

... ynδ n )D, (7.10)

dZk = V V (zijDzijD ) = ( y1δ1 y2δ 2

i=1 j=1

 

 

 

 

где (δ1,δ 2 ,...,δ n )

- вектор значений сигналов на

линиях состояния,

определяющий состояние Sb.

 

 

 

Алгоритм

построения

входной

части

квазиуникальной

последовательности аналогичен выше изложенному алгоритму построению рассмотренных идентифицирующих последовательностей.

Выходная часть Z f квазиуникальной вход-выходной последовательности

U f опеределяется путем моделирования заданного ДУ, методом изложенным в работе [11].

Рассмотрим основную задачу построения тестовой последовательности для ОП-неисправности f в заданном последовательностном ДУ A независимо от пары начальных состояний

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

выходной последовательности U f .

В основу метода положен тот факт, что последовательность

U f может возникнуть только в неисправном ДУ Af. Следовательно, для обнаружения данной неисправности f в заданном ДУ A достаточно построить такую входную последовательность T, для которой соответствующая вход-выходная последовательность содержит квазиуникальную вход-выходную последовательность U f для каждого начального состояния неисправного устройства Af. Следовательно, если при тестировании некоторого ДУ A в некоторый момент времени во вход-

выходной последовательности встречается последовательность U f , то

340