Метод аналізу причинно-наслідкових зв'язків допомагає системно вибирати високорезультативні тести. Він дає корисний побічний ефект, дозволяючи виявляти неповноту і неоднозначність вихідних специфікацій.
Для використання методу необхідно розуміння булевської логіки (логічних операторів - і, або, не). Побудова тестів здійснюється в кілька етапів.
1) Специфікація розбивається на «робочі» ділянки, так як таблиці причинно-наслідкових зв'язків стають громіздкими при застосуванні методу до великих специфікацій. Наприклад, при тестуванні компілятора в якості робочої ділянки можна розглядати окремий оператор мови.
2) У специфікації визначаються безліч причин і безліч наслідків. Причиною є окрема вхідна умова або клас еквівалентності вхідних умов. Наслідком є вихідна умова або перетворення системи. Кожним причині і наслідку приписується окремий номер.
3) На основі аналізу семантичного (смислового) змісту специфікації будується таблиця істинності, в якій послідовно перебираються всі можливі комбінації причин і визначаються наслідки кожної комбінації причин. Таблиця забезпечується примітками, які задають обмеження і описують комбінації причин і / або наслідків, які є неможливими через синтаксичні або зовнішні обмеження. Аналогічно, при необхідності будується таблиця істинності для класу еквівалентності.
|
|
Примітка. При цьому можна використовувати такі прийоми:
• По можливості виділяти незалежні групи причинно-наслідкових зв'язків в окремі таблиці.
• Істина позначається "1". Брехня позначається "0". Для позначення байдужих станів умов застосовувати позначення "Х", яке припускає довільне значення умови (0 або 1).
4) Кожний рядок таблиці істинності перетвориться в тест.
Недолік методу - неадекватно досліджує граничні умови.
Припущення про помилку
Часто програміст з великим досвідом вишукує помилки "без всяких методів". При цьому він підсвідомо використовує метод "припущення про помилку". Процедура методу припущення про помилку в значній мірі заснована на інтуїції. Основна ідея методу полягає в тому, щоб перерахувати в деякому списку можливі помилки або ситуації, в яких вони можуть з'явитися, а потім на основі цього списку скласти тести. Іншими словами, потрібно перерахувати ті спеціальні випадки, які можуть бути не враховані при проектуванні.