Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тема: Способи тестування умов. Тестування галужень та операторів відношень

Способи тестування умов

Мета цього сімейства способів тестування - будувати тестові варіанти для перевірки логічних умов програми. При цьому бажано забезпечити охоплення операторів із всіх галузей програми.

Розглянемо термінологію, яка тут застосовується.

Проста умова - булева змінна або вираз відношення.

Вираз відношення має вигляд

Е1 <оператор відношення> E2,

де El, Е2 — арифметичні вирази, а в якості оператора відношенн використовується один з наступних операторів: <, >, =, , .

Складена умова складається з декількох простих умов, булевих операторів і круглих дужок. Будемо застосовувати бульові оператори OR, AND (&), NOT. Умови, що не містять виразів відношень, називають бульовими виразами.

Таким чином, елементами умови є: бульовий оператор, булева змінна, пара дужок (що містить просту або складену умову), оператор відношення, арифметичний вираз. Ці елементи визначають типи помилок в умовах.

Якщо умова некоректна, то некоректний, щонайменше, один з елементів умови. Отже, в умові можливі наступні типи помилок:

1. помилка булева оператора (наявність некоректних / відсутніх / надлишкових бульових операторів);

2. помилка бульової змінної;

3. помилка бульової дужки;

4. помилка оператора відношення;

5. помилка арифметичного виразу.

Спосіб тестування умов орієнтований на тестування кожної умови в програмі. Методики тестування умов мають два достоїнства. По-перше, досить просто виконати вимір тестового покриття умови. По-друге, тестове покриття умов у програмі - це фундамент для генерації додаткових тестів програми.

Метою тестування умов є визначення не тільки помилок в умовах, але й інших помилок у програмах. Якщо набір тестів для програми А ефективний для виявлення помилок в умовах, що містяться в А, то імовірно, що цей набір також ефективний для виявлення інших помилок в А. Крім того, якщо методика тестування ефективна для виявлення помилок в умові, то імовірно, що ця методика буде ефективна для виявлення помилок у програмі.

Існує кілька методик тестування умов.

Найпростіша методика — тестування галужень. Тут для складеної умови С перевіряється:

- кожна проста умова (що входить у нього);

- Тruе-гілка;

- False-гілка.

Інша методика — тестування області визначення. У ній для виразу відношення потрібна генерація 3-4 тестів. Вираз виду

Е1 <оператор відношення > Е2

перевіряється трьома тестами, які формують значення Е1 більшим, ніж Е2, рівним Е2 і меншим, чим Е2.

Якщо оператор відношення невірний, а Е1 і Е2 коректні, то ці три тести гарантують виявлення помилки оператора відношень.

Для визначення помилок в Е1 і Е2 тест повинен сформувати значення Е1 більшим або меншим, чим Е2, причому забезпечити як можна меншу різницю між цими значеннями.

Для бульових виразів із n змінними потрібен набір з 2n тестів. Цей набір дозволяє виявити помилки бульових операторів, змінних і дужок, але практичний тільки при малому n. Втім, якщо в булевий вираз кожна бульова змінна входить тільки один раз, то кількість тестів легко зменшується.

Обговоримо спосіб тестування умов, що базується на наведених вище методиках.

Тестування галужень і операторів відношень

Спосіб тестування галужень і операторів відношень (автор К. Тай, 1989) виявляє помилки розгалуження й операторів відношень в умові, для якої виконуються наступні обмеження:

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

- в умові немає загальних змінних.

У даному способі використовуються природні обмеження умов (обмеження на результат). Для складеної умови С, що включає n простих умов, формується обмеження умови:

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

де di — обмеження на результат i-ї простої умови.

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

Якщо i-та проста умова є бульовою змінною, то її обмеження на результат складається із двох значень і має вигляд

di = (true, false).

Якщо j-та проста умова є виразом відношення, то його обмеження на результат складається із трьох значень і має такий вигляд:

dj= (>,<,=).

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

На основі обмеження умови ОУ створюється обмежуюча множина ОМ, елементи якої є сполученнями всіх можливих значень d1, d2, d3,..., dn.

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

b&(х>у)&а.

Умова приймає істинне значення, якщо всі прості умови істинні. У термінах значень простих умов це відповідає запису

(true, true, true),

а в термінах обмежень на значення аргументів простих умов - запису

(true, >, true).

Ясно, що другий запис є прямим керівництвом для написання тесту. Він вказує, що змінна b повинна мати істинне значення, значення змінної х повинне бути більше значення змінної в, і, нарешті, змінна а повинна мати істинне значення.

Отже, кожний елемент ОМ задає окремий тестовий варіант. Вихідні дані тестового варіанту повинні забезпечити відповідну комбінацію значень простих умов, а очікуваний результат дорівнює значенню складеної умови.

Розгляд прикладів

Приклад 1. Як приклад розглянемо дві типові складові умови:

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

де а й b — бульові змінні. Відповідні обмеження умов приймають вигляд:

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

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

Обмежуючі множини зручно будувати за допомогою таблиці істинності (табл. 1.1).

Таблиця 1.1. Таблиця істинності логічних операцій

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

 

Бачимо, що таблиця задає в ОМ чотири елементи (і відповідно, чотири тестових варіанти).

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

Скористаємося ідеєю скороченої схеми обчислення - елементи виразу обчислюються доти, поки вони впливають на значення виразу. При тестуванні необхідно виявити помилки перемикання, тобто помилки через бульовий оператор, оперуючи значеннями простих умов (бульових змінних). При такому інженерному підході справедливі наступні висновки:

- для умови типу І (а & b) варіанти 2 і 3 поглинають варіант 1. Тому обмежуюча множина має вигляд:

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

- для умови типу АБО (а 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 — арифметичні вирази.

Обмеження складеної умови має вигляд

ОУс1 =(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:

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

Покриття цієї множини гарантує виявлення помилок бульових операторів і операторів відношень в С1.

 

Лекція 5 (2 години)

<== предыдущая лекция | следующая лекция ==>
Тема: Тестування базового шляху. Потоковий граф та цикломатична складність | Пример расчета дифференциального дохода и цены земли
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 739; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.029 сек.