АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Тестирование ветвей и операторов отношений

Читайте также:
  1. I. Социально-психологическая сущность неуставных взаимоотношений
  2. II. Типы отношений между членами синтагмы
  3. VI.1. Правовое регулирование брака и семейных отношений
  4. Аддикция отношений
  5. Административное деление украинских земель в составе империй. Социально-экономический уклад, начало кризиса феодально-крепостнической системы общественных отношений.
  6. Алгоритм метода ветвей и границ
  7. АСПЕКТЫ ПРОБЛЕМ В СИСТЕМЕ ОТНОШЕНИЙ ОБЩЕСТВО - ПРИРОДА
  8. Аудит корреспондентских отношений с банками-нерезидентами
  9. Б. Участники страховых правоотношений
  10. Билет 12. Предмет социальной философии. Уровни анализа общественных отношений
  11. Более подробно вопрос об объектах экологических общественных отношений рассмотрен в главе II учебника. 1 страница
  12. Более подробно вопрос об объектах экологических общественных отношений рассмотрен в главе II учебника. 1 страница

 

Способ тестирования ветвей и операторов отношений (автор К. Таи, 1989) обнаруживает ошибки ветвления и операторов отношения в условии, для которого выполняются следующие ограничения [72]:

q все булевы переменные и операторы отношения входят в условие только по одному разу;

q в условии нет общих переменных.

В данном способе используются естественные ограничения условий (ограничения на результат). Для составного условия С, включающего п простых условий, формируется ограничение условия:

ОУс = (d1,d2,d3.....dn),

где di — ограничение на результат i-го простого условия.

Ограничение на результат фиксирует возможные значения аргумента (переменной) простого условия (если он один) или соотношения между значениями аргументов (если их несколько).

Если i-e простое условие является булевой переменной, то его ограничение на результат состоит из двух значений и имеет вид

di = (true,false).

Если j-е простое условие является выражением отношения, то его ограничение на результат состоит из трех значений и имеет следующий вид:

dj= (>,<,=).

Говорят, что ограничение условия ОУc (для условия С)покрывается выполнением С, если в ходе этого выполнения результат каждого простого условия в С удовлетворяет соответствующему ограничению в ОУc.

На основе ограничения условия ОУ создается ограничивающее множество ОМ, элементы которого являются сочетаниями всех возможных значений d1, d2, d3, ..., dn.

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

b&(х>у)&а.

Условие принимает истинное значение, если все простые условия истинны. В терминах значений простых условий это соответствует записи

(true, true, true),

а в терминах ограничений на значения аргументов простых условий — записи

(true, >, true).

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



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

Пример 1. В качестве примера рассмотрим два типовых составных условия:

С& = а & Ь, Сor =а or b,

где а и b — булевы переменные. Соответствующие ограничения условий принимают вид

ОУ&=( d1,d2), ОУor=( d1,d2),

где d1 = d2 = (true, false).

Ограничивающие множества удобно строить с помощью таблицы истинности (табл. 6.1).

Таблица 6.1.Таблица истинности логических операций

Вариант а b a & b a or b
false false false false
false true false true
true false false true
true true true true

 

Видим, что таблица задает в ОМ четыре элемента (и соответственно, четыре тестовых варианта). Зададим вопрос — каковы возможности минимизации? Можно ли уменьшить количество элементов в ОМ?

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

Воспользуемся идеей сокращенной схемы вычисления — элементы выражения вычисляются до тех пор, пока они влияют на значение выражения. При тестировании необходимо выявить ошибки переключения, то есть ошибки из-за булева оператора, оперируя значениями простых условий (булевых переменных). При таком инженерном подходе справедливы следующие выводы:

q для условия типа И (а & b) варианты 2 и 3 поглощают вариант 1. Поэтому ограничивающее множество имеет вид:

ОМ& = {(false, true), (true, false), (true, true)};

q для условия типа ИЛИ or b) варианты 2 и 3 поглощают вариант 4. Поэтому ограничивающее множество имеет вид:

‡агрузка...

ОМor = {(false, false), (false, true), (true, false)}.

Рассмотрим шаги способа тестирования ветвей и операторов отношений.

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

1) строится ограничение условий ОУ;

2) выявляются ограничения результата по каждому простому условию;

3) строится ограничивающее множество ОМ. Построение выполняется путем подстановки в константные формулы ОМ& или OMOR выявленных ограничений результата;

4) для каждого элемента ОМ разрабатывается тестовый вариант.

Пример 2.Рассмотрим составное условие С1вида:

В1 &(E1,E2),

где В1 — булево выражение, E1, Е2 — арифметические выражения.

Ограничение составного условия имеет вид

ОУ =( d1,d2),

где ограничения простых условий равны

d1 = (true, false), d2 = (=, <, >).

Проводя аналогию между С1 и С& (разница лишь в том, что в С1 второе простое условие — это выражение отношения), мы можем построить ограничивающее множество для С1 модификацией

ОМ& = {(false, true), (true, false), (true, true)}.

Заметим, что true для (E1= E2) означает =, a false для (E1 = E2) означает или <, или >. Заменяя (true, true) и (false, true), ограничениями (true, =) и (false, =) соответственно, a (true, false) — ограничениями (true, <) и (true, >), получаем ограничивающее множество для С1:

ОМ = {(false,=),(true,<),(true,>),(true,=)}.

Покрытие этого множества гарантирует обнаружение ошибок булевых операторов и операторов отношения в С1.

Пример 3.Рассмотрим составное условие С2 вида

(E3 >E4)&(E1=E2),

где E1, Е2, Е3, Е4 — арифметические выражения. Ограничение составного условия имеет вид

ОУ =( d1,d2),

где ограничения простых условий равны

d1=(=,<,>), d2 =(=,<,>).

Проводя аналогию между С2 и С1 (разница лишь в том, что в С2 первое простое условие — это выражение отношения), мы можем построить ограничивающее множество для С2 модификацией ОМ :

ОМ = {(=, =), (<, =), (>, <),(>, >),(>, =)}.

Покрытие этого ограничивающего множества гарантирует обнаружение ошибок операторов отношения в С2.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 |


При использовании материала, поставите ссылку на Студалл.Орг (0.01 сек.)