Таблица принятия решений — способ компактного представления модели со сложной логикой; инструмент для упорядочения сложных бизнес требований, которые должны быть реализованы в продукте. Это взаимосвязь между множеством условий и действий.
Эта техника основывается на принципе, что каждый тест-кейс должен проверять конкретный функциональный аспект приложения. Для достижения этой цели используется таблица принятия решений, которая позволяет разработчикам определить, какие варианты использования приложения следует проверять.
Таблица принятия решений представляет собой таблицу с двумя осями — вертикальной и горизонтальной. В вертикальной оси перечислены функциональные аспекты приложения, которые должны быть проверены, в то время как в горизонтальной оси перечислены различные варианты использования приложения. Каждый элемент таблицы содержит информацию о том, следует ли проверять соответствующий функциональный аспект для данного варианта использования приложения.
Пример таблицы принятия решений для приложения для заказа еды выглядит следующим образом:
Функциональный аспект | Вариант использования | Проверка |
---|---|---|
Регистрация нового пользователя | Регистрация через электронную почту | Да |
Регистрация нового пользователя | Регистрация через социальные сети | Да |
Авторизация пользователя | Авторизация через электронную почту | Да |
Авторизация пользователя | Авторизация через социальные сети | Да |
Просмотр меню ресторанов | Просмотр меню ресторана | Да |
Просмотр меню ресторанов | Поиск ресторана по названию | Да |
Добавление товаров в корзину | Добавление товара в корзину | Да |
Добавление товаров в корзину | Изменение количества товаров в корзине | Да |
Оформление заказа | Выбор способа доставки | Да |
Оформление заказа | Выбор способа оплаты | Да |
В таблицах решений представлен набор условий, одновременное выполнение которых должно привести к определённому действию.
Таблица принятия решений, как правило, разделяется на 4 квадранта:
Условия | Варианты выполнения действий |
Действия | Необходимость действий |
Условия — список возможных условий.
Варианты выполнения действий — комбинация из выполнения и/или невыполнения условий этого списка.
Действия — список возможных действий.
Необходимость действий — указание надо или не надо выполнять соответствующее действие для каждой из комбинаций условий.
Рассмотрим более сложный пример где таблица принятия решений, становится более полезной для разработчика тестов. Функционала загрузки картинки, к примеру несколько условий :
Размер файла | Формат | Количество пикселей | Тип файла | Качество | Результат |
---|---|---|---|---|---|
Меньше 1 МБ | JPEG | Больше 100000 | RGB | Высокое | Пройти |
Меньше 1 МБ | PNG | Меньше 100000 | RGBA | Высокое | Пройти |
Больше 1 МБ | JPEG | Меньше 100000 | RGB | Высокое | Провалить |
Больше 1 МБ | PNG | Больше 100000 | RGBA | Среднее | Пройти |
Больше 10 МБ | BMP | Больше 1000000 | RGB | Низкое | Пройти |
Больше 10 МБ | JPEG | Больше 1000000 | CMYK | Высокое | Провалить |
Больше 10 МБ | PNG | Меньше 1000000 | RGBA | Среднее | Пройти |
В данном примере, условиями по вертикали являются размер файла, формат, количество пикселей, тип файла и качество, а по горизонтали различные значения этих параметров. На пересечении каждой комбинации параметров получаем результат — должен ли пройти тест-кейс или провалиться. Эта таблица помогает систематизировать и упростить процесс создания тест-кейсов для функционала загрузки картинки, а также убедиться в том, что все возможные комбинации входных данных были протестированы.
На самом деле это пример всего лишь одного поля — в реальных проектах вариативность возрастает в разы и таблица принятия решений помогает сократить количество возрастающих тестов в геометрический прогрессии -существенно.
Таблица принятия решений — плюсы и минусы
Плюсы использования таблицы принятия решений | Минусы использования таблицы принятия решений |
---|---|
Позволяет систематизировать проблему и найти наиболее эффективное решение | Может быть трудно определить критерии оценки |
Упрощает принятие решений на основе объективных критериев | Важность критериев может быть недостаточно точно определена |
Позволяет сравнивать различные альтернативы | Некоторые альтернативы могут быть недостаточно изучены |
Помогает избежать влияния эмоций и предубеждений на принятие решений | Не учитывает некоторые факторы, которые могут оказывать влияние на принятие решений |
Позволяет быстро и эффективно принимать решения | Может привести к упрощению сложной проблемы |
Позволяет объективно оценить риски каждой альтернативы | Может быть сложно учесть все возможные альтернативы и критерии |
Также не стоит забывать о таких положительных моментах как легкий способ получать список тест-кейсов осуществив таким способом тест дизайн; проверить как можно больше вариантов и не упустить какие-либо условия; в сложных сценариях возможность легче разобраться. Но и дополнительные минусы тоже бывают: при большом объеме комбинаторике — можно легко упустить что-либо, а так же получить очень большой набор проверок, который будет постоянно расти и перестанет быть подконтрольным для поддержки. При использовании таблицы необходимо тщательно определить критерии оценки и убедиться, что они соответствуют поставленной цели. Также важно учесть все возможные альтернативы и критерии, чтобы выбрать наилучшую альтернативу. В некоторых случаях использование таблицы может быть недостаточно для принятия решения, и в этом случае может потребоваться дополнительный анализ и исследование проблемы.
О других техниках читайте здесь: