Техника · Decision Table Testing
Таблица
решений
Когда результат зависит от комбинации нескольких условий — таблица решений гарантирует, что ни одна комбинация не будет пропущена.
Сценарий — Система скидок интернет-магазина
Размер скидки на заказ определяется тремя условиями. Нужно составить таблицу решений и написать тест-кейсы для каждого правила.
C1: Клиент — Premium
C2: Сумма корзины > 5 000 ₽
C3: Применён промокод
| Условие / Правило |
T1 | T2 | T3 | T4 |
T5 | T6 | T7 | T8 |
| C1: Premium участник |
Y | Y | Y | Y |
N | N | N | N |
| C2: Сумма > 5 000 ₽ |
Y | Y | N | N |
Y | Y | N | N |
| C3: Применён промокод |
Y | N | Y | N |
Y | N | Y | N |
| A1: Скидка |
25% |
20% |
15% |
10% |
15% |
5% |
10% |
0% |
Вопрос 01
Сколько уникальных тест-кейсов нужно для полного покрытия этой таблицы?
3 — по одному на каждое условие
8 — все комбинации трёх бинарных условий
Вопрос 02
Правила T3 и T5 оба дают скидку 15%, а T4 и T7 — по 10%. Что делать с такими "дублями"?
Удалить один из пары — он дублирует другой
Тестировать обе — разные условия могут исполнять разный код
Объединить в один тест-кейс для экономии
Пометить как low-priority, они похожи
Вопрос 03
В чём главное преимущество Decision Table Testing перед простым чек-листом?
Можно применять без знания требований
Требует меньше тест-кейсов
Гарантирует покрытие всех комбинаций условий
Измеряет производительность приложения
Что запомнить
- 2ⁿ правил при n бинарных условиях — всегда проверяй, не пропустил ли колонку.
- Одинаковый результат ≠ одинаковый путь. Правила с одним ответом тестируются отдельно.
- Decision Table хорошо работает для бизнес-логики с несколькими взаимосвязанными условиями: скидки, права доступа, тарифные планы.
- Если условий больше 4–5, таблица вырастает до 16–32 столбцов — можно применять pairwise для сокращения.