Блог седого тестировщика

говориМ о тестировании
простым языком

Тест-дизайн. Таблица состояний и переходов (часть 1)

Время на прочтение: 3 мин.
Что делать когда есть большая фича, а время ограничено и необходимо найти критичные баги как можно быстрее? Тут нам снова поможет тест-дизайн.

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

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

Мне особенно нравится использовать этот подход при тестировании игр. Поэтому давайте разберем метод на какой-нибудь игре. Но сначала немного теории.

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

Тесты создаются для покрытия типичной последовательности состояний, покрытия каждого возможного состояния, покрытия каждого возможного перехода, проверки специфических последовательностей переходов, или для проверки недействительных переходов. (ISTQB FL 2018)

Проще говоря, у нас есть объект, который может находиться в разных состояниях. Переход от одного состояния к другому обычно чем-то обусловлен, например, каким-нибудь действием над объектом. Эти состояния и действия над объектом нам необходимо смоделировать.

Под объектом мы обычно понимаем тестируемую фичу или ее часть.

Пример из жизни

Чтобы было еще понятней, перенесемся из тестирования в повседневную жизнь и поищем там примеры. Например, вода (из курса физики правильней сказать “вещество”, но не будем усложнять, про плазму тоже ни слова). Предположим, что наш объект – вода. Какие состояния есть у воды?
1. Лед
2. Вода
3. Пар

Итого, 3 состояния. Первый шаг сделан. Дальше необходимо определить, какие действия изменяют ее состояние, позволяя одному состоянию переходить в другое. Например, что необходимо сделать, чтобы вода превратилась в пар? Правильно, нагреть до определенной температуры. А чтобы в лед? Охладить. Таким образом, необходимо найти все действия которые влияют на состояния.

Надеюсь тут все понятно, давайте теперь снова вернемся в тестирование.

Теперь на примере тестирования игры

Попробуем сделать диаграмму состояний и переходов какого-нибудь объекта в игре. Возьмем для примера Молокозавод. Обычное строение, которое имеет несколько состояний.

Первое состояние — строения не существует в игре. Оно еще не куплено.

Состояние 1. Молокозавод в магазине и еще не куплен
Состояние 1. Молокозавод в магазине и еще не куплен

Второе состояние — строительство на игровом поле.

Состояние 2. Молокозавод строится
Состояние 2. Молокозавод строится

Следующее состояние —стадия открытия.

Состояние 3. Молокозавод на стадии открытия
Состояние 3. Молокозавод на стадии открытия

Четвертое состояние —построено.

Состояние 4. Молокозавод построен
Состояние 4. Молокозавод построен

На этом остановимся.

Для простоты анализа все это можно представить визуально:

Состояния молокозавода
Состояния молокозавода

Далее давайте посмотрим, какие действия влияют на изменение состояния и снова изобразим это на рисунке.

Изменения, влияющие на состояния молокозавода
Изменения, влияющие на состояния молокозавода

Обратите внимание, что между состояниями «Строится» и «Ожидает открытия» два действия. Это нормально. Необходимо искать все действия, которые влияют на изменение состояний.

Кроме действий, которые влияют на объект и изменяют его состояние, есть еще действия, которые влияют на объект, но не изменяют его состояние. Например, поворот или перемещение здания. Такое действие затрагивает сам объект, но не влияет на его состояние. Их также необходимо определить и отобразить на нашей диаграмме.

Итоговая диаграмма
Итоговая диаграмма

Таким образом, мы нарисовали диаграмму состояний и переходов объекта «Молокозавод». Первая часть сделана.
Далее необходимо перенести нашу модель в таблицу и составить из нее чек-лист проверок. Об этом мы поговорим в следующей статье.

Share on vk
Vkontakte
Share on facebook
Facebook
Share on linkedin
LinkedIn
Share on twitter
Twitter

Автор статьи:

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Ближайшие события

Вам также может понравится