Техника тест-дизайна: Таблица принятия решений (Decision table)
Мы используем cookie-файлы, чтобы получить статистику, которая помогает нам улучшить сервис для Вас с целью персонализации сервисов и предложений. Вы можете прочитать подробнее о cookie-файлах или изменить настройки браузера. Продолжая пользоваться сайтом без изменения настроек, вы даёте согласие на использование ваших cookie-файлов.
speech bubble

Техника тест-дизайна: Таблица принятия решений (Decision table)

Техника тест-дизайна: Таблица принятия решений (Decision table)

Таблица принятия решений (Decision table) — это один из вариантов компактного документа, представляющий бизнес-модель с трудным обоснованием требований и являющийся теоретическим средством для оптимизации и упорядочивания.

Таблица принятия решений по стандарту ISTQB - метод проектирования тестов путем «черного ящика», в котором тестовые примеры предназначены для выполнения комбинаций входных данных и причин, показанных в таблице решений.

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

Блоки, параметры таблицы принятия решений:

Условия Значения для исполнения действий
Действия Правила исполнения условий
Статус тестирования

Условия (conditions) — листинг критериев.

Действия (actions) — листинг потенциальных операций.

Значения для исполнения действия (values) — входные значения, указанные в требованиях; совокупность исполняемых критериев листинга.

Правила исполнения условий (rules) — директива на выполнение образующейся операции путем выполнения сочетания условий.

Статус тестирования (status) — статус проведения тестирования: passed, failed, draft, blocked.

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

 

Алгоритм составления таблицы решений:

  1. разложить требования на условия
  2. высчитать количество комбинаций

Комбинации для таблицы рассчитываются по формуле: X = Y1 ⋅ Y2 ⋅ … ⋅ Yn, где:

  • Х — количество комбинаций;
  • Y1...Yn — количество вариантов условий;
  • N — количество условий
  1. разложить требования на действия
  2. сформировать таблицу решений (Decision table)
  3. удалить лишние действия
  4. сформировать тесты

 

Плюсы и достоинства использования таблиц принятия решений:

  • оперативное составление тестовых сценариев;
  • выявляет неполноту требований;
  • использование таблиц при отсутствии требований;
  • проверка полноты покрытия требований тест-кейсами;
  • предугадывание дефектов.

 

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

  • при масштабном продукте есть трудность в составлении и использовании;
  • при первоначальном проектировании не всегда условия могут быть корректны.

 

Дополнительно для составления таблиц полезна информация из психологии о «Квадрате Декарта»:

  1. Что будет, если это произойдет?

Какое действие получается после события

  1. Что будет, если это не произойдет?

Какое действие, в случае отсутствия события

  1. Чего НЕ будет, если это произойдет?

Какое действие мы не получим, если выполним условие 1.

  1. Чего НЕ будет, если это НЕ произойдет?

Какое действие мы не получим, если будет отсутствовать событие

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

 

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

Заявку на получение кредита может подать заемщик старше 25 лет. Если он уже является клиентом банка, его заявка будет рассмотрена в индивидуальном порядке, и сумма кредита будет выдана выше. Если заемщик является клиентом банка, его заработная плата выше 25 тыс. руб. и он имеет в собственности какую-либо недвижимость, то он может рассчитывать на сумму кредита выше 1 000 000 руб. Если у заемщика-клиента банка заработная плата больше 25 тыс. руб., но в собственности нет недвижимости, то он может получить кредит в размере от 500 000 до 1 000 000 руб. Если заработная плата заемщика-клиента банка ниже 25 тыс. руб., но в его собственности есть недвижимость, то он может рассчитывать на кредит в сумме от 100 000 до 500 000 руб. Если заработная плата заемщика-клиента банка составляет меньше 25 тыс. руб. и у него в собственности нет недвижимости, то максимальная сумма кредита, на которую он может рассчитывать – 100 000 руб. Если заемщик не является клиентом банка, имеет доход выше 25 тыс. руб. и недвижимость в собственности, то ему может быть выдан кредит в размере от 500 000 до 1 000 000 руб. Если заемщик – не клиент банка, его заработная плата ниже 25 тыс. руб. и в собственности есть недвижимость, то сумма кредита – до 100 000 руб. Если заемщик не клиент банка, имеет заработную плату выше 25 тыс. руб., но не имеет недвижимости в собственности, то сумма кредита составить от 100 000 до 500 000 тыс. руб. Если заемщик не клиент банка с заработной платой меньше 25 тыс. руб. и без недвижимости – в кредите ему должно быть отказано.

 

Из вышеперечисленного можем выделить 4 условия:

  1. Клиент Банка(Y,N)
  2. ЗП больше 25 тыс. рублей(Y,N)
  3. Недвижимость(Y,N)
  4. Старше 25 лет (Y,N)

В каждом из условий находится по 2 параметра (Y,N). Исходя из формулы, получаем следующее:

N = 4, Y1 = 2, Y2 = 2, Y3 = 2, Y4 = 2.

X = 2 * 2 * 2 * 2

X = 16

16 комбинаций условий.

Определим для каждого теста, согласно требованиям, действие(операцию):

  1. Отказано
  2. До 100 тыс. рублей
  3. От 100 тыс. рублей до 500 тыс. рублей
  4. От 500 тыс. рублей до 1 млн. рублей
  5. Выше 1 млн. рублей

Для наглядности сформируем UML (Unified Modeling Language) схему по заявленным требованиям:

 

По описанным бизнес требованиям не определено:

  • действия, производимые с лицами младше 25 лет
  • действия, производимые до суммы, указанной в требованиях.

Аналогичным тестам проставляется статус тестирования «Draft». Для действий, не отражающихся в требованиях, используется «?».

Первая строка сформирована по правилу: количество комбинаций разделить на количество значений первого условия. В данном случае 16 / 2(Y,N). Последующие образуются аналогично, делением предыдущего значения на количество условий.

 

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

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

  • Водители с категорией B, C получают уведомление согласно регламенту «Выдача категории B, C»
  • Водители с категорий A получают уведомление согласно регламенту «Выдача категории A»

Для водителей, сдавших в 2021 году и заплативших более 30 000 рублей за обучение, высылается дополнительное уведомление о скидке в 30% на обучение категории B,C.

 

В отличие от прошлого примера, не имеет смысла рисовать схему, но для практики и дальнейшему обучению, рекомендовано.

Получаем 3 условия:

  1. Категория водителей (A, B, C)
  2. Год сдачи 2021 (Y, N)
  3. Оплата более 30 000 рублей (Y, N)

Вычисляем количество комбинаций:

N = 3

Y1 = 3, Y2 = 2, Y3 = 2.

X = 3 * 2 * 2

X = 12

В итоге получаем 12 комбинаций в таблице принятия решений.

Для требований обозначим следующие действия:

  1. Письмо по регламенту «Выдача категории B, C»
  2. Письмо по регламенту «Выдача категории A»
  3. Уведомление о скидке в 30% на обучение категории B,C

 

Полученная таблица принятия решений:

Для действий, не отражающихся в требованиях, используется «?»

Из таблицы видно, что возникает спорная ситуация, при которой неизвестна необходимость отправки уведомлений о скидке для водителей, сдавших на категорию B,C.

 

Заключение

На наглядном примере таблицы принятия решений при тестировании видны достоинства и недостатки подхода, описанные ранее.

В ряде случаев возникает необходимость добавления или удаление тех или иных операций из-за их несоответствия бизнес требованиям или невозможны по выведенным критериям. Например, на странице «Корзина» размещены две кнопки «Купить», «Отменить», с двумя вероятными параметрами «Y, N». В одно и то же время кнопки не могут принимать одинаковые значения «Y», тест с «Y, Y» нивелируется и исключается из таблицы.  

 

Материалы для скачивания

Для комментирования необходимо авторизоваться