Шаблон сценария с исключениями
Пустая форма, заполненный пример и пояснения к полям. Главное в форме — номер исключения, который привязывает ветку к шагу, где она возникает.
Шаблон для описания сценария так, чтобы исключения были привязаны к шагам, а у каждой ветки был свой результат. Зачем именно так и где искать исключения, — в разборе сценариев и исключений. Ниже — пустая форма, заполненный пример и короткие пояснения к полям.
Форма
СЦЕНАРИЙ <название — глагол и объект: «Оформление возврата»>
Идентификатор <SC-NN>
Участник <кто запускает сценарий>
Цель <что участник хочет получить в результате>
Предусловие <что должно быть верно до начала>
Триггер <событие, с которого начинается сценарий>
Основной поток
1. <шаг: кто что делает>
2. ...
Исключения и альтернативы
1а. <условие> → <поведение системы> → <чем заканчивается ветка>
...
Правила <ссылки на бизнес-правила: BR-NN — без пересказа>
Результат <что верно после успешного завершения>
Не определено <что сознательно не описано и поведение по умолчанию>
Открытые <вопросы со сроком и решением по умолчанию>
Пример
СЦЕНАРИЙ Смена адреса доставки в оформленном заказе
Идентификатор SC-07
Участник покупатель
Цель получить заказ по новому адресу без отмены и повторной оплаты
Предусловие заказ оплачен и ещё не передан в доставку
Триггер покупатель нажимает «Изменить адрес» в карточке заказа
Основной поток
1. Система показывает текущий адрес и форму нового
2. Покупатель вводит новый адрес
3. Система проверяет, что адрес в зоне доставки, и пересчитывает стоимость
4. Покупатель подтверждает изменение
5. Система сохраняет адрес и уведомляет склад
Исключения и альтернативы
1а. Заказ уже передан в доставку → кнопки нет, подсказка «обратитесь
в службу доставки» с номером отправления → конец
3а. Адрес вне зоны доставки → сообщение, старый адрес остаётся → конец
3б. Доставка дороже → показать доплату; без доплаты изменение
не сохраняется (правило BR-21)
3в. Доставка дешевле → разница возвращается на баланс (BR-21)
5а. Склад не подтвердил за 10 минут → адрес сохранён, повтор
уведомления раз в 10 минут; оператору — задача при трёх неудачах
5б. Заказ передали в доставку между шагами 1 и 4 → изменение
отклоняется, покупатель видит причину
Правила BR-21 перерасчёт доставки при изменении заказа
Результат в заказе новый адрес, склад подтвердил, стоимость пересчитана
Не определено смена адреса на пункт выдачи — по умолчанию недоступна
Открытые В-1 можно ли менять адрес у заказа с подарочной упаковкой?
ждём склад до 05.11; по умолчанию — можно
Пояснения к полям
| Поле | Зачем | Частая ошибка |
|---|---|---|
| Цель | Позволяет оценить, решает ли сценарий задачу участника | Повторяет название |
| Предусловие | Становится частью «Дано» в критериях приёмки | Пропущено — и сценарий запускается не там |
| Исключения | Номер привязывает ветку к шагу, на котором она возникает | Общий список «ошибок» в конце без привязки |
| Правила | Одно правило — одно место, из всех сценариев на него ссылаются | Текст правила внутри сценария |
| Не определено | Отличает сознательный пропуск от забытого | Поле пустое, потому что о пропуске не подумали |
| Открытые | Решение не принимается молча в коде | Вопрос без срока и без решения по умолчанию |
Как искать исключения для поля 3а, 3б…
К каждому шагу основного потока — шесть вопросов из разбора: данных нет или они неверны; внешняя система не ответила или ответила поздно; пользователь прервался и вернулся; действие выполнено дважды; права или статус изменились по ходу; то же самое одновременно делает другой. Ветка 5б в примере — ответ на пятый вопрос, и именно её обычно находят только на проде.