Таблица принятия решений

Таблица принятия решений

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

Эта техника основывается на принципе, что каждый тест-кейс должен проверять конкретный функциональный аспект приложения. Для достижения этой цели используется таблица принятия решений, которая позволяет разработчикам определить, какие варианты использования приложения следует проверять.

Таблица принятия решений представляет собой таблицу с двумя осями — вертикальной и горизонтальной. В вертикальной оси перечислены функциональные аспекты приложения, которые должны быть проверены, в то время как в горизонтальной оси перечислены различные варианты использования приложения. Каждый элемент таблицы содержит информацию о том, следует ли проверять соответствующий функциональный аспект для данного варианта использования приложения.

Пример таблицы принятия решений для приложения для заказа еды выглядит следующим образом:

Функциональный аспектВариант использованияПроверка
Регистрация нового пользователяРегистрация через электронную почтуДа
Регистрация нового пользователяРегистрация через социальные сетиДа
Авторизация пользователяАвторизация через электронную почтуДа
Авторизация пользователяАвторизация через социальные сетиДа
Просмотр меню ресторановПросмотр меню ресторанаДа
Просмотр меню ресторановПоиск ресторана по названиюДа
Добавление товаров в корзинуДобавление товара в корзинуДа
Добавление товаров в корзинуИзменение количества товаров в корзинеДа
Оформление заказаВыбор способа доставкиДа
Оформление заказаВыбор способа оплатыДа

В таблицах решений представлен набор условий, одновременное выполнение которых должно привести к определённому действию.

Таблица принятия решений
Таблица принятия решений

Таблица принятия решений, как правило, разделяется на 4 квадранта:

УсловияВарианты выполнения действий
ДействияНеобходимость действий

Условия — список возможных условий.

Варианты выполнения действий — комбинация из выполнения и/или невыполнения условий этого списка.

Действия — список возможных действий.

Необходимость действий — указание надо или не надо выполнять соответствующее действие для каждой из комбинаций условий.

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

Размер файлаФорматКоличество пикселейТип файлаКачествоРезультат
Меньше 1 МБJPEGБольше 100000RGBВысокоеПройти
Меньше 1 МБPNGМеньше 100000RGBAВысокоеПройти
Больше 1 МБJPEGМеньше 100000RGBВысокоеПровалить
Больше 1 МБPNGБольше 100000RGBAСреднееПройти
Больше 10 МБBMPБольше 1000000RGBНизкоеПройти
Больше 10 МБJPEGБольше 1000000CMYKВысокоеПровалить
Больше 10 МБPNGМеньше 1000000RGBAСреднееПройти

В данном примере, условиями по вертикали являются размер файла, формат, количество пикселей, тип файла и качество, а по горизонтали различные значения этих параметров. На пересечении каждой комбинации параметров получаем результат — должен ли пройти тест-кейс или провалиться. Эта таблица помогает систематизировать и упростить процесс создания тест-кейсов для функционала загрузки картинки, а также убедиться в том, что все возможные комбинации входных данных были протестированы.

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

Таблица принятия решений - плюсы и минусы
Таблица принятия решений — плюсы и минусы

Таблица принятия решений — плюсы и минусы

Плюсы использования таблицы принятия решенийМинусы использования таблицы принятия решений
Позволяет систематизировать проблему и найти наиболее эффективное решениеМожет быть трудно определить критерии оценки
Упрощает принятие решений на основе объективных критериевВажность критериев может быть недостаточно точно определена
Позволяет сравнивать различные альтернативыНекоторые альтернативы могут быть недостаточно изучены
Помогает избежать влияния эмоций и предубеждений на принятие решенийНе учитывает некоторые факторы, которые могут оказывать влияние на принятие решений
Позволяет быстро и эффективно принимать решенияМожет привести к упрощению сложной проблемы
Позволяет объективно оценить риски каждой альтернативыМожет быть сложно учесть все возможные альтернативы и критерии

Также не стоит забывать о таких положительных моментах как легкий способ получать список тест-кейсов осуществив таким способом тест дизайн; проверить как можно больше вариантов и не упустить какие-либо условия; в сложных сценариях возможность легче разобраться. Но и дополнительные минусы тоже бывают: при большом объеме комбинаторике — можно легко упустить что-либо, а так же получить очень большой набор проверок, который будет постоянно расти и перестанет быть подконтрольным для поддержки. При использовании таблицы необходимо тщательно определить критерии оценки и убедиться, что они соответствуют поставленной цели. Также важно учесть все возможные альтернативы и критерии, чтобы выбрать наилучшую альтернативу. В некоторых случаях использование таблицы может быть недостаточно для принятия решения, и в этом случае может потребоваться дополнительный анализ и исследование проблемы.

О других техниках читайте здесь:

1) Техника анализа граничных значений

2) Техника анализа классов эквивалентности

I believe in QA, все о тестировании