Как использовать таблицы принятия решений в тестировании
Сегодня познакомлю вас с таблицами решений – что это и как эффективно использовать в тестировании. Таблицы решений зарекомендовали себя как удобный и простой способ тест-дизайна.
Для начала выясним, что же такое “Таблица решений”. Для этого обратимся к любимой Википедии за формальным определением: таблица принятия решений – это способ компактного представления модели со сложной логикой. Простыми словами, это варианты действий при различных входных условиях.
Давайте представим обычную ситуацию возвращения домой с работы или учебы. У нас есть ключ от домофона. Мы можем либо взять его с собой, либо забыть (дома \ на работе \ где-то еще). В момент возвращения домой нас могут ждать родственники \ друзья \ собака, которая умеет открывать дверь, либо дома никого нет – все ушли гулять.
Итак, какие входные параметры мы имеем?
- Наличие с собой ключа. Варианты: Да или Нет
- Есть ли кто-то дома. Варианты: Да или Нет
- На месте ли консьерж, который может открыть дверь. Варианты: Да или Нет
Какие наши возможные действия?
- Мы открываем дверь ключом
- Мы звоним в домофон
- Мы звоним консьержу
- Мы звоним соседям
- Мы ждем (пока кто-нибудь из соседей выйдет и откроет дверь, либо наши родственники вернутся домой)
Есть еще варианты?
Можно придумать что-то из мира фантастики, например, взобраться на 20 этаж и проникнуть в квартиру через окно. Пока остановимся на перечисленных выше вариантах действия.
Все необходимые данные у нас есть, теперь нужно собрать все в красивую табличку. Слева в столбец перечисляем входные параметры или “условия”.
Далее создаем столбцы справа, где каждый столбец будет определять один из возможных вариантов этих условий.
“Да” означает, что условие выполняется, “Нет” – не выполняется. Прочерк – неважно выполняется ли это условие (например, если у нас есть ключ, нам все равно на месте ли консьерж, мы открываем дверь сами).
Для каждого варианта выполнения нужно определить ожидаемое действие. Смотрим на вариант 1: если ключ с собой, мы открываем дверь ключом. Напротив соответствующего действия ставим символ “Х”, который показывает, что должно выполняться именно это действие.
Основой метода построения таблицы решения является таблица из четырех блоков:Если внимательно посмотреть на таблицу, можно заметить, что каждый столбец представляет собой отдельный тест-кейс! Вуаля 🙂
Давайте заменим случай из жизни на случай из тестирования, например, известная всем форма авторизации в системе.Такая таблица позволит нам рассмотреть все возможные варианты развития событий и результат каждого такого события.
Мы знаем, что форма содержит поля логина, пароля и кнопки “Войти” и “Отмена”.
При вводе неверных данных система выдает соответствующую ошибку о том, что логин или пароль введены неверно. Если мы не ввели значение для логина или пароля – система выдает ошибку о необходимости заполнить поля.
Выберем “Условия” для данных сущностей, т.е. возможные входные значения.
- Логин: пустое значение / верное значение / неверное значение
- Пароль: пустое значение / верное значение / неверное значение
- Кнопки: Войти / Отмена
Пустое значение выбрано как отдельное условие из-за того, что ошибка в этом случае отличается от ошибки ввода неверного значения. Кнопки объединили в одно условие, т.к. мы можем нажать или одну или другую кнопку, одновременно нажать две – проблематично 🙂
Выделим возможные действия:
- Успешная авторизация
- Ошибка “Неверно введены логин или пароль”
- Ошибка “Заполните поля логин или пароль”
- Авторизация отменена
После того, как выбрали условия и варианты действия начинается самое интересное – составить таблицу решений!
Выписываем в столбец все условия и варианты:
Считаем, что в случае неверного значения для логина и пустого значения пароля – система выдает нам обе ошибки. Как должна вести себя ваша программа – смотрите в требованиях и спецификациях 🙂
Теперь для всех 18 вариантов определим необходимость действий.
В итоге для проверки всех возможных вариантов действий с формой авторизации нам потребуется 18 тест-кейсов. Они по факту уже готовы и записаны в таблице.
Вы можете детальнее расписать ввод неверного значения, например, отдельно ввод цифр, символов, непечатных символов, копипаст в поле, максимальное и минимальное значение, ограничение по длине, формат поля email и т.д.
Здесь мы рассмотрели только функцию авторизации – либо она происходит, либо нет. Отдельную таблицу можно составить для всех возможных ошибок, связанных с данными, которые вводим в поля формы авторизации.
Для удобства выполнения таких тест-кейсов рекомендую добавить еще одну строку к таблице “Статус прохождения теста” и в ходе тестирования отмечать тесты как Passes / Failed / Blocked / Not Run.
Хорошего дня читающему этот пост 🙂
Ответы