Requirements

Use Cases: Сценарии использования

📚 26 вопросовПройти тест →
Лекция

Use Cases: Сценарии использования

Requirements

Use Cases: Сценарии использования

Введение: как объяснить системе, что делать 🎬

Use Case — это не просто идея функции, а сценарий взаимодействия шаг за шагом. Он показывает, как актор достигает цели через систему и что происходит при отклонениях.
Когда сценарий описан детально, команда одинаково понимает поведение продукта.
Вывод: Use Case превращает «пожелание» в управляемый сценарий реализации и тестирования.

Проблема → решение

Проблема: без сценариев требования выглядят абстрактно, а на разработке всплывают неучтённые ветки и ошибки.
Решение: использовать структуру Use Case: актор, цель, предусловия, основной поток, альтернативы, исключения, постусловия.
Вывод: сценарный подход снижает число сюрпризов в релизе.

Чем помогает и как работает

Use Case помогает:
  • синхронизировать продукт, аналитику, разработку и QA;
  • обнаружить пропущенные шаги и ошибки заранее;
  • превратить требования в тестируемый документ.
Как это работает:
  1. Определяется бизнес-цель и актор.
  2. Описывается идеальный (main) поток.
  3. Добавляются альтернативные и ошибочные ветки.
  4. Фиксируется итог состояния системы (postconditions).
  5. На базе сценария формируются тест-кейсы.
Вывод: Use Case — это мост между требованиями и реализацией.

Ключевые термины (простыми словами)

  • Use Case — сценарий достижения цели через систему.
  • Actor — участник, который инициирует взаимодействие.
  • Preconditions — условия, которые должны быть выполнены до старта.
  • Main Flow — основной успешный путь.
  • Alternative Flow — вариант выполнения при отклонении.
  • Exception Flow — критическая ошибка с прерыванием сценария.
  • Postconditions — что изменилось после завершения сценария.
  • Include — обязательный вложенный сценарий.
  • Extend — опциональное расширение базового сценария.
Вывод: термины задают стандарт описания сценариев в команде.

1. Структура Use Case

Назначение: зафиксировать сценарий так, чтобы его можно было реализовать и проверить.
Базовый шаблон:
Название:Актор:Цель:Предусловия:Основной поток:Альтернативы:Исключения:Постусловия:
🔎 Как это происходит на практике:
  1. Аналитик собирает входные данные от стейкхолдеров.
  2. Формирует основной поток без деталей UI.
  3. Добавляет альтернативы и исключения.
  4. Согласует с разработкой и QA.
Когда использовать: при описании важных пользовательских или интеграционных сценариев.
Вывод: структурированный Use Case быстрее читается и проще ревьюится.

2. Main Flow: основной путь пользователя

Назначение: показать «идеальный» сценарий без ошибок.
Пример:
UC: Записаться на курс1) Студент открывает карточку курса2) Нажимает «Записаться»3) Система проверяет доступность4) Система добавляет курс в «Мои курсы»5) Система показывает подтверждение
🔎 Как это происходит на практике:
  1. Выбирается конечная цель актора.
  2. Шаги пишутся коротко, в логическом порядке.
  3. Каждый шаг проверяется на однозначность.
Когда использовать: для любого сценария, который должен быть реализован в релизе.
Вывод: main flow задаёт скелет сценария и точку старта для тестирования.

3. Alternative и Exception Flow

Назначение: учесть реалистичные отклонения и критические ошибки.
Пример:
Альтернатива 3a: мест на курсе нет- Система показывает «Мест нет»- Предлагает подписаться на уведомление Исключение 4a: сервис записи недоступен- Система показывает «Ошибка сервера»- Сценарий прерывается
🔎 Как это происходит на практике:
  1. Для каждого рискованного шага ищутся возможные сбои.
  2. Описывается реакция системы.
  3. Фиксируется, продолжается ли сценарий или прерывается.
Когда использовать: всегда, если есть внешние зависимости, лимиты или права доступа.
Вывод: без альтернатив и исключений сценарий остаётся неполным.

4. Preconditions и Postconditions

Назначение: определить корректную точку входа и ожидаемый итог.
Пример:
Preconditions:- Пользователь авторизован- Курс опубликован Postconditions:- Курс отображается в «Мои курсы»- История записи зафиксирована
🔎 Как это происходит на практике:
  1. Проверяются условия старта сценария.
  2. Уточняется, какие данные/статусы изменятся в итоге.
  3. Формулировки синхронизируются с QA.
Когда использовать: в каждом Use Case без исключений.
Вывод: pre/post условия убирают спор «с какого состояния начинаем и чем заканчиваем».

5. Include и Extend

Назначение: убрать дублирование шагов и поддерживать сценарии в порядке.
Пример:
UC «Оформить заказ» <<include>> UC «Проверить наличие товара»UC «Оформить заказ» <<extend>> UC «Применить промокод»
🔎 Как это происходит на практике:
  1. Выделяются повторяющиеся блоки.
  2. Обязательные блоки оформляются через include.
  3. Опциональные блоки — через extend.
Когда использовать: когда несколько сценариев используют общую логику.
Вывод: include/extend уменьшают копипасту и упрощают сопровождение требований.

6. Use Case vs User Story

Назначение: понимать, какой формат выбрать для конкретной задачи.
ФорматКогда удобенСильная сторона
User StoryБыстрый backlog, Agile-фреймКраткость и ценность
Use CaseСложная логика, ветвления, интеграцииДетализация и проверяемость
🔎 Как это происходит на практике:
  1. Story фиксирует ценность и приоритет.
  2. Use Case раскрывает детальные шаги и условия.
  3. Критичные истории детализируются в Use Case.
Когда использовать: Story — для планирования, Use Case — для сложной реализации.
Вывод: Story и Use Case работают в связке.

7. Чек-лист качества Use Case

  • Есть актор и цель?
  • Описан основной поток от старта до результата?
  • Есть альтернативы и исключения?
  • Зафиксированы pre/postconditions?
  • Понятно, что тестирует QA?
🔎 Как это происходит на практике:
  1. Перед передачей в разработку сценарий проходит чек-лист.
  2. Неясные шаги уточняются на ревью.
  3. Только после этого сценарий считается «готовым».
Когда использовать: на каждом ревью требований.
Вывод: чек-лист защищает от слабых и неполных сценариев.

Часто спрашивают на собеседованиях

  • Чем Use Case отличается от User Story?
  • Зачем разделять альтернативные и исключительные потоки?
  • Когда применять include/extend?
  • Какие ошибки чаще всего допускают в Use Case?
  • Кто должен согласовывать Use Case перед разработкой?
Вывод: на интервью важен не термин, а понимание практического применения.

Типичные ошибки

Ошибка 1: Нет актора и цели

❌ «Система выполняет запись» ✅ «Студент записывается на курс, чтобы начать обучение»

Ошибка 2: Только main flow

❌ описан только успешный путь ✅ добавлены альтернативы и исключения

Ошибка 3: Смешение технической реализации и сценария

❌ подробности БД внутри шагов ✅ шаги на уровне поведения системы

Ошибка 4: Нет postconditions

❌ неясно, чем закончился сценарий ✅ зафиксировано итоговое состояние данных/статусов

Best Practices

  • Пишите шаги коротко и последовательно.
  • Явно разделяйте main, alternative и exception flows.
  • Используйте include/extend для повторяющейся логики.
  • Проверяйте сценарий через чек-лист перед согласованием.
  • Привязывайте Use Case к критериям приёмки и тест-кейсам.

Заключение

🎯 Use Case помогает описать поведение системы без двусмысленности.
🎯 Сильный сценарий всегда содержит условия старта, поток, отклонения и итог.
🎯 Детализированные Use Cases снижают риски реализации и ускоряют тестирование.
Теперь вы можете оформлять сценарии так, чтобы команда одинаково понимала, что и как нужно реализовать.
🎯

Проверьте знания

Закрепите материал — пройдите тест по теме «Use Cases: Сценарии использования»

Пройти тест →