Курсовая работа: Модификация метода построения тестов для конечных автоматов относительно неразделимости

Рисунок 6 – Усеченное дерево преемников, построенное по алгоритму 2


3. Улучшение метода построения полного проверяющего теста относительно модели неисправности <S , (£,≁), Â m >

3.1 Исследование условий усечения дерева

Алгоритм 2 не доставляет кратчайшего теста. Для иллюстрации этого факта рассмотрим тестовую последовательность xyyyyyyy из предыдущего примера, которой в усеченном дереве преемников (рис. 6) соответствует путь ax ay by {a ,b }y {a ,b }y {a ,b }y {a ,b }y {a ,b }y {a ,b }. Прямым перебором можно убедиться, что если автомат-реализация имеет состояния 1 и 2, тогда соответствующий путь в усеченном дереве TreeS Ç T , построенном по пересечению эталонного автомата и реализации, будет уже усечен после {a 1}x {a 2}y {b 1,b 2}y {b 1}y {b 2}y {a ,b }, т.к. для подмножества а были перебраны все варианты и из последующих подмножеств его можно исключить. Таким образом, при уточнении условий усечения дерева данную тестовую последовательность можно сократить на 3 символа.

Сократить тестовую последовательность можно также и в более общем случае, когда на рассматриваемом пути дерева перебраны все возможные варианты для состояний некоторого множества P , являющегося подмножеством множества K . Рассмотрим эталонный автомат S , изображенный на рисунке 7, и m =2.

S a b c
x

a/0

b/1

a,b/1 a/1
y a,b/0 c/1

b/1

c/0

z b/1 b/0 a/0

Рисунок 7 - Автомат S


Для подмножества состояний {a , b , c } для усечения дерева по алгоритму 2 необходимо, чтобы путь из корня дерева в листовую вершину покрывал 23 m -1 +1=33 вершины, помеченные подмножествами этого множества. Однако, т.к. на левом пути дерева, представленного на рисунке 8, сначала встречается 8 вершин, помеченных подмножествами {a , b }, а именно такое число вариантов обеспечивает перебор всех подмножеств {a 1, a 2, b 1, b2} в дереве TreeS Ç T , то далее на данном пути подмножество {a , b } из рассмотрения исключается. Таким образом, соответствующий путь в дереве TreeS Ç T будет усечен после {a 1}x {a 2,b 1,b 2}x {a 2,b 1}x {a 2,b 2}x {a 2}x {b 1}x {b 2}x {b 1,b 2}y {c 1,c 2}y {c 1}y {c 2}y {a ,b ,c }, и длина тестовой последовательности составляет всего 11 символов.

Рисунок 8 – Часть усеченного дерева преемников

Естественно, сокращение тестовой последовательности можно также обобщить и для случая, когда на рассматриваемом пути дерева перебираются все подмножества для нескольких подмножеств Pi множества K , в том числе и в случае, когда эти подмножества пересекаются. Данный случай иллюстрирует правый путь дерева, изображенного на рисунке 8. На этом пути дерева сначала перебираются все возможные подмножества для P 1 ={b }. Для пересекающегося с P 1 множества P 2 ={a ,b } теперь достаточно всего трех вершин, помеченных подмножествами P 2 , чтобы были перебраны все возможные подмножества P 2 . И соответствующий путь в дереве TreeS Ç T усекаетсяпосле {a 1}z {b 1,b 2}z {b 1}z {b 2}x {a 2}y {c 1,c 2}y {c 1}y {c 2}y {a ,b ,c }, а длина тестовой последовательности составляет 8 символов.

Таким образом, можно модифицировать метод построения полного проверяющего теста относительно модели неисправности <S , (£,≁), Â m > (алгоритм 2), уточнив условия усечения дерева преемников.

3.2 Модифицированный метод построения полного проверяющего теста относительно модели неисправности <S , (£,≁), Â m >

Алгоритм 3. Построение полного проверяющего теста относительно модели неисправности <S , (£,≁), m >

Вход: Полностью определенный автомат S и верхняя граница m числа состояний любой реализации S

Выход: Полный проверяющий тест TS относительно модели неисправности <S , (£,≁), m >

Шаг 1. Построим усеченное дерево преемников автомата спецификации S . Корнем дерева на нулевом уровне является начальное состояние s 0 автомата S ; вершины дерева помечены подмножествами состояний автомата S . Пусть уже построены j уровней дерева, j ³ 0. Для заданной нетерминальной вершины j го уровня, помеченной подмножеством состояний К , и для заданного входного символа i , в дереве есть ребра, помеченные символом i , в вершину, помеченную i -преемниками подмножества К . Текущая вершина Current на k м уровне, k > 0, помеченная подмножеством К состояний из множества S , объявляется листом дерева, если путь из корня в вершину Current содержит:

· 2(| K |-| P |) × m +n вершин, помеченных подмножествами множества К , если s 0 ÏK или s 0 ÎK и s 0 ÎP ;

· 2(| K |-| P |) × m -1 +n + 1вершин, помеченных подмножествами множества К , если s 0 ÎK и s 0 ÏP ;

где P – это такое подмножество состояний из множества K , что до некоторого l го уровня (l < k ) перебраны все возможные подмножества P , а n – это количество вершин на данном пути, помеченных подмножествами К , содержащими подмножества P , которые находятся на уровнях не ниже l го уровня дерева (если P = Æ, то n = 0). Множество P строится итеративно:

1. P = Æ;

2. P = P ÈPi для каждого подмножества Pi множества K , для которого путь из корня в вершину Current содержит (2| P i | × m -1) вершин, помеченных подмножествами Pi (или (2| P i | × m -1 ) вершин в случае sPi );

3. P= PÈPj для всех существующих пар Pi ÎP и Pj ÏP (Pj ÌK ) таких, что Pi ÇPj = Q и путь из корня в вершину Current содержит (2(| Pj |-| Q |) × m -1) вершин, помеченных подмножествами Pj , если sPj или sQ , либо (2(| Pj |-| Q |) × m -1 ) вершин в случае sPj .

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

Теорема 2.

Для заданного эталонного автомата S и целого числа m алгоритм 3 доставляет полный проверяющий тест относительно модели неисправности <S , (£,≁), m >.

Доказательство.

1. Рассмотрим самый общий случай – подмножество K состояний из множества S , и начальное состояние s 0 ÏK . Согласно алгоритму 1, вершина усеченного дерева преемников TreeS , помеченная подмножеством K , объявляется листом дерева, если путь из корня в эту вершину содержит 2| K | × m вершин, помеченных подмножествами множества К . Это соответствует перебору всех возможных подмножеств К ¢в усеченном дереве приемников TreeS T , построенному по пересечению эталонного автомата S и некоторой реализации T , где К ¢ – это подмножество состояний пересечения ST таких, что первый символ каждой пары из К ¢ содержится в К .

Предположим, что существует такое подмножество состояний P из множества K , что до некоторого l го уровня дерева на пути из корня в вершину Current перебраны все возможные подмножества P . Множество P строится итеративно следующим образом:

Шаг 1. P = Æ.

Шаг 2. P = P ÈPi для каждого подмножества Pi множества K , для которого путь из корня в вершину Current содержит (2| P i | × m -1) вершин, помеченных подмножествами Pi . Добавление каждого такого Pi в множество P справедливо, т.к. если путь содержит указанное количество повторов, то этим перебираются все возможные варианты подмножеств Pi .

К-во Просмотров: 215
Бесплатно скачать Курсовая работа: Модификация метода построения тестов для конечных автоматов относительно неразделимости