Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дрейзин В.Э., Кочура А.В. - Управление качество...doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
3.62 Mб
Скачать

6.4.7. Синтез безусловных тестов путём преобразования таблицы покрытий

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

Функция предпочтения выбирается, исходя из максимизации вклада выбираемого частичного решения в полное решение. Процедуры, использующие функции предпочтения, не требуют никаких расчётов, но позволяют строить только одну ветвь дерева решений, каждый шаг которой выбирается на основе принятой функции предпочтения. Платой за эту простоту является отсутствие гарантии в получении оптимального решения. Насколько близко будет полученное решение к оптимальному зависит от правильного выбора функции предпочтения.

Если не заданы стоимости отдельных элементарных проверок и вероятности отдельных состояний (или они принимаются равными), то в качестве функций предпочтения используется принцип “минимальный столбец – максимальная строка“. „Минимальный столбец“ – означает выбор той строки в качестве очередного частичного решения, которая даёт единицу в столбце с минимальным числом единиц. Это гарантирует включение в тест ядра таблицы покрытий. Принцип ,,максимальная строка” означает, что если таких строк несколько, то есть в минимальном столбце больше одной единицы, то должна выбираться из них строка с максимальным числом единиц. При использовании таких функций предпочтений мы получаем тест, близкий к минимальному.

Если же заданы стоимости отдельных элементарных проверок, то этот принцип дополняется принципом выбора из альтернативных вариантов элементарных проверок с минимальной стоимостью. Вероятности состояний (а значит, и пар состояний) учитываются только в случае построения условных тестов, или безусловных тестов с условной остановкой. Собственно, мы эти функции предпочтения уже использовали при построении условных тестов.

Обращаясь к минимизированной таблице покрытий для нашего примера (табл. 6.7), видим, что все столбцы содержат по 4 единицы. Это значит, что ядро теста отсутствует, и в качестве первой проверки необходимо выбирать строку с максимальным числом единиц (если мы хотим построить тест, близкий к минимальному), а если таких строк несколько, то из них выбирать строку с минимальной стоимостью (если надо построить тест с минимальной стоимостью и стоимости разных элементарных проверок различны).

В табл. 6.7 имеется четыре строки с тремя единицами и три строки с четырьмя единицами (π2 , π5 , π7). Выберем в качестве первой элементарной проверки самую дешёвую из них π2 . Теперь вычеркнем из табл. 6.7 эту строку и все столбцы, которые она покрывает. Получаем табл. 6.8, содержащую всего 2 столбца:

Таблица 6.8

U1 (S1S2)

U6 (S3S4)

Сj

П

1

1

1

2

1,2

3

1

1,4

4

1

1,6

5

1

1

2,4

6

1

2,8

7

1

1

3,2

PUi

0,0274

0,0002

В качестве следующей проверки следует выбирать элементарную проверку, покрывающую максимальное число оставшихся столбцов. Из табл. 6.8 видно, что оба оставшихся столбца покрываются проверками либо 5, либо 7. Выбираем из них более дешёвую 5. Следовательно, безусловный тест будет состоять всего из двух элементарных проверок 25. Можно с полным правом утверждать, что данный тест является минимальным, поскольку строк, покрывающих все столбцы, исходная таблица покрытий не содержит. Значит, минимальный тест должен состоять не менее, чем из двух элементарных проверок, и именно такой тест мы и получили. Но окажется ли он минимальным по стоимости, мы гарантировать не можем, поскольку другие варианты не просчитывались. Мы можем лишь сказать, что он должен быть близким к оптимальному по стоимости, поскольку на каждом шаге его построения выбирались наиболее дешёвые проверки из возможных. Гарантировать выбор оптимального теста может метод, основанный на преобразовании аналитического представления таблицы покрытий методом булевой алгебры, поскольку он обеспечивает возможность построения и анализа всех возможных тестов.