QA Engeneer
December 20, 2023

Как использовать таблицы принятия решений в тестировании

Сегодня познакомлю вас с таблицами решений – что это и как эффективно использовать в тестировании. Таблицы решений зарекомендовали себя как удобный и простой способ тест-дизайна.

Таблицы принятия решений в тестировании

Для начала выясним, что же такое “Таблица решений”. Для этого обратимся к любимой Википедии за формальным определением: таблица принятия решений – это способ компактного представления модели со сложной логикой. Простыми словами, это варианты действий при различных входных условиях.

Давайте представим обычную ситуацию возвращения домой с работы или учебы. У нас есть ключ от домофона. Мы можем либо взять его с собой, либо забыть (дома \ на работе \ где-то еще). В момент возвращения домой нас могут ждать родственники \ друзья \ собака, которая умеет открывать дверь, либо дома никого нет – все ушли гулять.

Итак, какие входные параметры мы имеем?

  • Наличие с собой ключа. Варианты: Да или Нет
  • Есть ли кто-то дома. Варианты: Да или Нет
  • На месте ли консьерж, который может открыть дверь. Варианты: Да или Нет

Какие наши возможные действия?

  • Мы открываем дверь ключом
  • Мы звоним в домофон
  • Мы звоним консьержу
  • Мы звоним соседям
  • Мы ждем (пока кто-нибудь из соседей выйдет и откроет дверь, либо наши родственники вернутся домой)

Есть еще варианты?

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

Все необходимые данные у нас есть, теперь нужно собрать все в красивую табличку. Слева в столбец перечисляем входные параметры или “условия”.

Картинка РАЗ

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

Картинка ДВА

“Да” означает, что условие выполняется, “Нет” – не выполняется. Прочерк – неважно выполняется ли это условие (например, если у нас есть ключ, нам все равно на месте ли консьерж, мы открываем дверь сами).

Для каждого варианта выполнения нужно определить ожидаемое действие. Смотрим на вариант 1: если ключ с собой, мы открываем дверь ключом. Напротив соответствующего действия ставим символ “Х”, который показывает, что должно выполняться именно это действие.

Картинка ТРИ

Основой метода построения таблицы решения является таблица из четырех блоков:Если внимательно посмотреть на таблицу, можно заметить, что каждый столбец представляет собой отдельный тест-кейс! Вуаля 🙂

Картинка ЧЕТЫРЕ

Мы знаем, что форма содержит поля логина, пароля и кнопки “Войти” и “Отмена”.

При вводе неверных данных система выдает соответствующую ошибку о том, что логин или пароль введены неверно. Если мы не ввели значение для логина или пароля – система выдает ошибку о необходимости заполнить поля.

Выберем “Условия” для данных сущностей, т.е. возможные входные значения.

  • Логин: пустое значение / верное значение / неверное значение
  • Пароль: пустое значение / верное значение / неверное значение
  • Кнопки: Войти / Отмена

Пустое значение выбрано как отдельное условие из-за того, что ошибка в этом случае отличается от ошибки ввода неверного значения. Кнопки объединили в одно условие, т.к. мы можем нажать или одну или другую кнопку, одновременно нажать две – проблематично 🙂

Выделим возможные действия:

  • Успешная авторизация
  • Ошибка “Неверно введены логин или пароль”
  • Ошибка “Заполните поля логин или пароль”
  • Авторизация отменена

После того, как выбрали условия и варианты действия начинается самое интересное – составить таблицу решений!

Выписываем в столбец все условия и варианты:

Картинка ПЯТЬ

Считаем, что в случае неверного значения для логина и пустого значения пароля – система выдает нам обе ошибки. Как должна вести себя ваша программа – смотрите в требованиях и спецификациях 🙂

Теперь для всех 18 вариантов определим необходимость действий.

Картинка ШЕСТЬ

В итоге для проверки всех возможных вариантов действий с формой авторизации нам потребуется 18 тест-кейсов. Они по факту уже готовы и записаны в таблице.

Вы можете детальнее расписать ввод неверного значения, например, отдельно ввод цифр, символов, непечатных символов, копипаст в поле, максимальное и минимальное значение, ограничение по длине, формат поля email и т.д.

Здесь мы рассмотрели только функцию авторизации – либо она происходит, либо нет. Отдельную таблицу можно составить для всех возможных ошибок, связанных с данными, которые вводим в поля формы авторизации.

Для удобства выполнения таких тест-кейсов рекомендую добавить еще одну строку к таблице “Статус прохождения теста” и в ходе тестирования отмечать тесты как Passes / Failed / Blocked / Not Run.

Хорошего дня читающему этот пост 🙂