Анализ тестопригодности по методу Сamelot
АНАЛИЗ ТЕСТОПРИГОДНОСТИ ПО МЕТОДУ CAMELOT
1. Определение управляемости
Управляемость (CY – controlability) может принимать относительное значение от 0 до 1.
CY = 1 – имеет первичный вход, где можно легко установить логические «0» и «1».
CY = 0 – имеет узел, который нельзя установить ни в одно из логических состояний.
Здесь узлы – эквипотенциальные линии, устройства - элементы схемы.
Практически значения управляемости большинства узлов лежат между двумя границами 0 CY 1. CY узлов в схеме уменьшается от первичных входов к первичным выходам.
В общем случае управляемость входов устройства не 100%, поэтому управляемость выходов должна учитывать как способность к передаче логических значений через устройство, так и значений управляемости на его входах.
CY (выходного узла) = KCY f ( CY (входных узлов))
Рисунок 1.
KCY – коэффициент передачи управляемости устройства. Он является мерой, характеризующей степень различия способности генерировать значение «1» от способности генерировать значение «0». Он зависит только от логической функции, реализуемой устройством, и не зависит от места расположения устройства в схеме:
,
где N (0) – число всех способов установить логический «0» на выходе устройства;
N (1) – число всех способов установить логическую «1» на выходе устройства.
KCY = 1, если N (0) = N (1) (элементы НЕ, XOR).
В общем случае 0 < KCY 1.
N (0) и N (1) могут быть получены из таблиц истинности элементов. Для устройства с несколькими выходами каждый выход будет характеризоваться своим собственным значением KCY и в общем случае эти значения не будут одинаковыми.
f - среднее арифметическое CY(входов).
Управляемость начинает вычисляться с первичных входов. Она вычисляется для всех узлов, лежащих на пути от первичных входов до первичных выходов включительно.
Наличие обратных связей в устройстве усложняет вычисление CY в узлах всей схемы устройства. В этом случае проблема сводится к решению системы линейных уравнений.
2. Определение наблюдаемости
Наблюдаемость (OY - observability) может принимать относительные значения от 0 до 1.
OY=1 для первичного выхода.
OY=1 для узла в узле.
OY=0, если невозможно обеспечить такие условия, при которых изменение значения в узле приводило бы к изменению значения на первичном выходе.
Практически 0OY1. Наблюдаемость узлов в схеме уменьшается от первичных выходов к первичным входам.
Рисунок 2
В общем случае процесс распространения информации о неисправности через устройство зависит, как от способности активизировать определенный вход, так и от способности установить фиксированные значения на некоторых или всех других входах устройства, позволяющих активизировать путь к определенному выходу устройства (функция управляемости этих входов). Следовательно:
OY(на выходе)=KOY*OY(на входе)*g(CY активизирующих входов),
где KOY - коэффициент передачи наблюдаемости. KOY(I-Q) - KOY от входа I к выходу Q.
KOY(I-Q)=1, если транспортировка значения неисправности существует всегда, независимо от состояний активизирующих входов.
KOY(I-Q)=0, если не существует пути транспортировки неисправности между I и Q.
Однако в действительности KOY лежит между этими пределами 0KOY1.
,
где N(PDC:I-Q) - число одномерных неполяризованных кубов (D-кубов), активизирующих путь I-Q
N(NPDC:I-Q) - число одномерных неполяризованных D-кубов, запирающих (блокирующих) активизацию пути I-Q.
Для
"И": N(PDC:I-Q)=1,
N(NPDC:I-Q)=1,
KOY(I-Q)=1/(1+1)=0.5.
Для второго входа элемента "И" в виду симметрии KOY(I-Q)=0.5.
Для нахождения наблюдаемости по формуле (1) вычисление начинается с некоторого узла, где устанавливается OY=1 и это значение передается на первичные выходы схемы, чтобы на них получилось значение наблюдаемости исходного узла. Этот процесс затем необходимо повторять для каждого узла схемы.
Недостаток этого метода заключается в больших затратах времени, так как вычисления необходимо повторять столько раз, сколько узлов в схеме. При наличии обратных связей необходимо решать систему уравнений.
К счастью, можно использовать более простой способ, основанный на мультипликативных свойствах наблюдаемости.
Рисунок 3
OY(A-C)=OY(A-A)*OY(A-B)*OY(B-C),
так как OY(A-A)=OY(C-C)=1, то
OY(A-C)= OY(C-C)* OY(A-B)* OY(B-C).
Это определяет другой метод вычисления: начиная с первичных выходов схемы, значения наблюдаемости вычисляются для каждого узла на пути от выхода к входу.
OY(I-Q)= OY(C-Q)* KOY(I-C)*g(CY активизирующих входов).
Рисунок 4
g - среднее арифметическое CY активизирующих входов
3. Ветвление выхода
Рисунок 5
Наличие ветвления на выходе устройства позволяет наблюдать его состояние на некоторых первичных выходах схемы. (Пвых1 и Пвых2).
OY(составное)=1-П [1-OY(каждого X-Пвых)],
OY(X-(Пвых1,Пвых2))=1-([1-OY(X-Пвых1)]*[1-OY(X-Пвых2)]).
4. Сходящиеся ветвления
Рисунок 6
Для путей неравной длины стратегия следующая: выбирается кратчайший путь и для него подсчитывается OY узла X, т.е. OY(X-Пвых). Предполагается, что на практике для активизации выбирается кратчайший путь, а другие блокируются во избежание возможности схождения информации.
Для сходящихся путей равной длины стратегия заключается в вычислении OY(X-Пвых) для обоих путей и выборе пути с наибольшим значением наблюдаемости. И вновь предполагается, что все остальные пути, кроме одного выбранного, могут быть блокированы.
5. Определение тестопригодности
Простая мера тестопригодности узла TY (testability) может быть получена умножением значения его CY и OY.
TY узла=CY узла * OY узла
На уровне интуитивного восприятия, если, скажем, СY=OY=0.5, то TY0.5, потому что если управлять узлом "на 50% сложнее" и наблюдать за узлом "на 50% сложнее", то в целом тестопригодность должна быть меньше 50%.
TY схемы = ( TY узлов) / число узлов
Значения CY, OY, TY в чистом виде не используются, а используется от этих значений. Это позволяет ограничить масштаб абсолютных значений и облегчить интерпретацию результатов. Затем строятся гистограммы для CY, OY, TY. На оси абсцисс откладываются значения CY(OY, TY) от 0.1 до 1, на оси ординат - число узлов от 0 до n.
Пример: Дан триггер. Подсчитать CY, OY, TY для узлов схемы и TY схемы.
Рисунок 7
6. Определение управляемости
CY(1)=1
CY(2)=1
CY(3)=0.5*(CY(4)+1)/2
CY(4)=0.5*(CY(3)+1)/2
Решая систему линейных уравнений, имеем:
CY(3)=0.33
CY(4)=0.33
II Определение наблюдаемости
KOY=1/(1+1)=0.5
OY(3-3)=OY(4-4)=1
OY(3-3,4)=1-(1-OY(3-3))(1-OY(3-4))=1
OY(4-3,4)=1-(1-OY(4-4))(1-OY(4-3))=1
OY(1-3)=0.5*0.33=0.165
OY(2-4)=0.5*0.33=0.165
III Определение тестопригодности
TY(1)=1*0.165=0.165
TY(2)=1*0.165=0.165
TY(3)=0.33*1=0.33
TY(4)=0.33*1=0.33
TY схемы = (0.165*2+0.33*2)/4=0.2475
Возьмем от значений CY, OY, TY, получая в результате CY*, OY*, TY*.
CY*(1)=1; OY*(1-3)=0.79; TY*(1)= 0.79
CY*(2)=1; OY*(2-4)=0.79: TY*(2)= 0.79
CY*(3)=0.87; OY*(3-3)=1; TY*(3)=0.87
CY*(4)=0.87; OY*(4-4)=1; TY*(4)=0.87
Рисунок 8 - Гистограммы распределения значений для CY*, OY* и TY*.
“+” Оценки значений управляемости, наблюдаемости и тестопригодности позволяют проектировщику определять области схемы с малыми значениями управляемости и наблюдаемости, а также после модификации схемы оценить результат значений с позиций улучшения тестопригодности.
“+” При разработке тестов эти оценки могут использоваться как основа для определения методики тестирования.
Вычисляемые показатели предназначаются, главным образом, для сравнительного анализа тестопригодности узлов рассматриваемой схемы. Они не обеспечивают возможность правильного сравнения тестопригодности различных схем.
Значения наблюдаемости схемы зависят от значений управляемости. Следовательно, изменения, влияющие на свойства управляемости должны быть внесены в схему прежде, чем будут рассмотрены изменения схемы, влияющие на свойства ее наблюдаемости.
Уровень управляемости некоторой части схемы с малым значением CY можно повысить введением одполнительных непосредственно управляемых входов либо в рассматриваемую часть схемы, либо предшествующую ей (т.е. на пути прохождения сигнала от первичных входов к данной схеме), см. рис.9.
Уровень наблюдаемости некоторой части схемы можно повысить, улучшив доступ либо к рассматриваемой части схемы, либо к части между первичными выходами и рассматриваемой частью, (например, введением дополнительных контрольных точек), см. рис.9.
Рисунок 9
Выше приведен пример асинхронного счетчика-делителя на 9. Он состоит из цепочки 4х триггеров и И-НЕ в обратной связи. Тестопригодность схемы в целом была улучшена на 52% благодаря небольшой корректировке основного варианта разработки:
- была предусмотрена возможность обрыва обратной связи (на выходе И-НЕ) путем выведения концов разрыва на внешние входы схемы и установки на них съемной перемычки;
- сделан дополнительный внешний выход из середины цепочки триггеров.
Процесс модификации схемы очень трудоемкий в виду большой размеренности задачи анализа объекта и сложности методики оптимального использования средств улучшения тестопригодности (например, установка контрольных точек, разрывов ОС, и т.п.). Процесс модификации должен быть автоматизирован.