Продолжаем изучать техники тест дизайна!
В предыдущих статьях мы уже изучили первые три методики из списка, цель которых — уменьшить количество проверок. Теперь мы рассмотрим другие подходы, которые помогут нам не упустить важные аспекты тестирования и охватить все сценарии использования приложения или системы.
🟢Тестирование состояний и переходов
Тестирование состояний и переходов — это методика тестирования, которая используется для проверки корректности работы системы в различных состояниях и при переходах между этими состояниями. Она позволяет выявить ошибки, связанные с неправильным поведением системы в определённых условиях.
Что такое состояния и переходы?
Состояние системы — это её характеристика, которая может изменяться в процессе работы. Например, система может находиться в состоянии ожидания, обработки запроса, ошибки и т. д. Переход — это изменение состояния системы в результате какого-либо события.
Как проводится тестирование состояний и переходов?
Тестирование состояний и переходов включает в себя следующие шаги:
- Определение возможных состояний системы.
- Идентификация событий, которые могут вызывать переходы между состояниями.
- Разработка тестовых сценариев, которые проверяют корректность переходов между состояниями.
- Выполнение тестовых сценариев и анализ результатов.
Основные понятия
Точка входа — старт работы системы или приложения.
Переход (transition) — переход системы из одного состояния в другое, который происходит в результате действий пользователя или при определённых условиях.
Событие (event) — (надпись над стрелкой) — действие пользователя, которые он выполнил для перевода системы в другое состояние, или действия самой системы, меняющие её состояние.
Действие (action) — реакция приложения на действия пользователя или самой системы (на событие).
Условия перехода (transition conditions) — условия, которые необходимы для перехода системы в другое состояние, например изменение даты для начисления процентов на вклад.
Состояние (state) — состояние системы до или после перехода в результате действий пользователя или при определённых условиях.
Точка выхода — успешное окончание полного цикла работы приложения, то есть выполнение всех переходов и состояний.
Роли пользователей (actors) — пользователи, которые могут по-разному влиять на систему в зависимости от уровня прав доступа (зарегистрированный пользователь, менеджер, администратор).
Пример тестирования состояний и переходов
Давайте представим, что мы хотим разбронировать билет на самолёт. Как это будет выглядеть со стороны состояний и переходов?
- Точка входа - в данном случае это тот момент, когда вы перешли на сайт.
- Переход - за переход можно считать ввод ваших данных и прочее, после чего вы нажимаете забронировать.
- Событие - мы перевели наше место в самолете в состояние Забронировано.
- После оплаты билета система переходит в состояние «Билет оплачен».
- Когда происходит получение билета, система отправляет его по электронной почте и переходит в состояние «Билет получен».
- Завершающим этапом является предъявление билета при посадке. Если все эти этапы пройдены, цикл бронирования успешно завершается, и система выходит из процесса.
Таким образом мы рассмотрели с вами один из позитивных сценариев. Но пользователь может захотеть вернуть билет. Он может забронировать и не оплатить или же опалить, но не использовать. Для всех таких случаев и предусмотрена данная диаграмма, по которой проще ориентироваться.
И наша схема уже преобразуется:
Визуализация работы системы бронирования позволяет наглядно представить все состояния системы и условия их изменения. Это особенно полезно для сложных проектов с большим количеством состояний, переходов и условий.
Такой подход помогает не упустить важные элементы системы и подробно описать сценарии тестирования. Сначала можно проверить работу системы от начала до конца, а затем постепенно добавлять новые сценарии, опираясь на диаграмму состояний и переходов.
При создании диаграмм состояний и переходов важно помнить о следующем:
- избегать пересечения линий переходов, поскольку это затрудняет восприятие диаграммы и может привести к ошибкам;
- сложные процессы лучше разбивать на несколько диаграмм, чтобы избежать перегрузки информацией;
- основная последовательность состояний должна быть представлена на одной горизонтальной линии, чтобы отобразить позитивный сценарий работы системы. Дополнительные состояния можно представить в виде ответвлений, размещённых по бокам от основной последовательности.
Преимущества диаграмм состояний и переходов включают:
- возможность визуализировать состояния продукта;
- демонстрацию вариантов переходов, которые можно пропустить;
- помощь в отслеживании дефектов, позволяя сузить их локализацию до конкретного перехода;
- отображение внутренней механики продукта.
Недостатки:
- существует риск пропустить неочевидные переходы;
- при слишком сложной структуре продукта диаграммы могут стать громоздкими и запутанными;
- они служат лишь основой для применения других методов;
- их использование бесполезно при недостаточном понимании продукта.
Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!