Техника · Decision Table Testing

Таблица
решений

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

Сценарий — Система скидок интернет-магазина

Размер скидки на заказ определяется тремя условиями. Нужно составить таблицу решений и написать тест-кейсы для каждого правила.

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