В чем разница альтернативных и исключающих сценариев в User Story?
Что проверяют
Понимаете ли вы, что сценарий может отклониться от основного пути двумя разными способами: цель всё равно достигается или не достигается вовсе. Следом обычно просят показать это на примере и превратить в критерии приёмки.
Как отвечать
Начните с оговорки: сама User Story сценариев не содержит, это одна фраза «как <роль>, я хочу <действие>, чтобы <ценность>». Сценарии приходят из use case по Кокберну или из критериев приёмки в формате Given/When/Then. Дальше разведите три понятия:
- основной сценарий: самый частый успешный путь к цели;
- альтернативный: другой путь к той же цели. Пользователь оплачивает заказ не новой картой, а сохранённой или через СБП, и заказ всё равно оплачен;
- исключительный: цель не достигнута или прервана. Банк отклонил платёж, товар закончился, пока человек заполнял форму, истекла сессия.
Главный критерий различения: чем заканчивается сценарий. Альтернативный ведёт к успеху, исключительный к отказу, откату или возврату на шаг назад с понятным сообщением. Для исключений аналитик фиксирует, что система гарантирует даже при сбое: деньги не списаны дважды, резерв товара снят, пользователь видит причину.
Хорошо показать, как это ложится на критерии приёмки:
- исключение в Gherkin:
Givenв корзине есть товар,Whenбанк отклоняет платёж,Thenзаказ остаётся в статусе «ожидает оплаты», а пользователь видит причину отказа.
Отдельно упомяните, что крупные альтернативные ветки иногда выносят в отдельные истории, чтобы каждая оставалась маленькой и тестируемой по INVEST.
Где спотыкаются
Описывают только «счастливый путь». Исключения потом находит тестировщик или пользователь на проде, и разработка додумывает поведение сама.
Путают критерий: называют альтернативным всё, что не основной сценарий, включая ошибку ввода пароля. Спросите себя, достигнута ли цель, и путаница уйдёт.
Сводят исключения к техническим сбоям вроде ответа 500 и забывают бизнес-исключения: недостаточный лимит, заблокированный клиент, конфликт с чужим изменением тех же данных.