Decision Table Testing (Тестування таблиць прийняття рішень) — це техніка тест-дизайну, яка допомагає моделювати складні логічні умови системи. Вона базується на таблиці рішень, яка показує:
- Умови (Conditions) — вхідні дані або ситуації
- Дії (Actions) — очікувана поведінка системи
- Правила (Rules) — комбінації умов, при яких відбуваються дії
Це дозволяє створювати тест-кейси, які покривають усі (або найважливіші) комбінації вхідних умов.
Розглянемо простий приклад.
Приклад:
Умова: користувач може увійти в систему, якщо:
- Ввів правильний логін
- Ввів правильний пароль
| Умови | Тест 1 | Тест 2 | Тест 3 | Тест 4 |
| Логін правильний | T (True) | T (True) | F | F |
| Пароль правильний | T (True) | F (False) | T | F |
| Дозволити вхід | T (True) | F (False) | F | F |
Етапи побудови таблиці рішень:
1. Визначення умов
Це всі вхідні змінні або умови, що впливають на результат.
Наприклад: чи користувач увійшов у систему, чи ввів правильний пароль тощо.
2. Визначення можливих значень умов
Зазвичай це True/False чи 0/1, але можуть бути й інші варіанти.
3. Визначення дій
Що має зробити система залежно від комбінації умов? Це можуть бути:
- Виконати якусь операцію
- Показати повідомлення
- Заборонити доступ і т.д.
4. Формування правил
Кожна комбінація умов — це окреме правило (Rule), що призводить до певної дії або дій.
5. Скорочення таблиці (оптимізація)
Іноді деякі комбінації дублюють результати або не мають сенсу — їх можна об’єднати або видалити.
Приклад: Надання знижки постійному клієнту
Умови:
| № | Умова |
| C1 | Клієнт є постійним клієнтом |
| C2 | Сума замовлення перевищує 1000 грн |
Дії:
| № | Дія |
| A1 | Надати знижку 10% |
| A2 | Надати знижку 5% |
| A3 | Не надавати знижку |
Логіка дій:
| Комбінація | Умови виконані | Знижка |
| Тест 1 | Постійний клієнт + сума > 1000 | 10% |
| Тест 2 | Постійний клієнт + сума ≤ 1000 | 5% |
| Тест 3 | Непостійний клієнт + сума > 1000 | 5% |
| Тест 4 | Новий клієнт, невелике замовлення | 0% |
Таблиця рішень
| Умова | Тест 1 | Тест 2 | Тест 3 | Тест 4 |
| C1: Постійний клієнт | T | T | F | F |
| C2: Сума > 1000 грн | T | F | T | F |
| Очікувана дія | A1 (10%) | A2 (5%) | A2 (5%) | A3 (0%) |
Переваги Decision Table Testing:
| Перевага | Пояснення |
| Чіткість | Всі логічні умови систематизовані |
| Повне покриття | Кожна важлива комбінація умов врахована |
| Автоматизація | Таблицю легко перевести в автоматичні тести |
| Виявлення прогалин | Допомагає побачити, які варіанти не опрацьовані |
Коли використовувати?
| Ситуація | Decision Table Testing — підходить? |
| Багато вхідних умов | Так |
| Складні правила прийняття рішень | Так |
| Просте позитивне/негативне тестування | Краще Boundary Value чи Equivalence Partitioning |
| Бізнес-логіка (знижки, ролі, правила доступу) | Ідеально |
Інструменти для створення таблиць:
- Excel або Google Sheets
- TestRail (та інші TMS)
- Draw.io або інші діаграмні редактори
- Mind maps (для візуалізації)