Тестирование по сценариям использования (use case testing) — это техника тест-дизайна, основанная на разработке тестовых случаев (тест-кейсов) из описаний пользовательских взаимодействий с системой. Оно фокусируется на проверке функциональности системы с точки зрения конечного пользователя, имитируя типичные последовательности действий, которые пользователь выполняет для достижения конкретной цели.
Основные характеристики:
- Основа: Сценарии использования (use cases) или пользовательские истории (user stories).
- Цель: Проверить, соответствует ли система функциональным требованиям, описанным в сценариях использования.
- Фокус: На взаимодействии пользователя с системой и потоках данных.
- Результат: Набор тест-кейсов, покрывающий как основные ("happy path"), так и альтернативные, и исключительные потоки выполнения.
Этапы:
- Идентификация сценариев использования.
- Разработка описаний сценариев (предусловия, шаги, постусловия).
- Определение основных, альтернативных и исключительных потоков.
- Разработка тест-кейсов для каждого потока.
- Выполнение тест-кейсов и анализ результатов.
Пример (фрагмент сценария "Вход пользователя"):
| Шаг | Действие | Система |
|---|
| 1 | Пользователь открывает страницу входа. | Отображается форма ввода логина и пароля. |
| 2 | Пользователь вводит корректный логин. | |
| 3 | Пользователь вводит корректный пароль. | |
| 4 | Пользователь нажимает кнопку "Войти". | Система проверяет учетные данные. |
| 5 | | Перенаправляет пользователя на главную страницу. |
Типы потоков:
- Основной (Main Flow): Идеальная последовательность действий при успешном выполнении сценария.
- Альтернативный (Alternative Flow): Вариация основного потока, приводящая к успешному завершению, но через другие шаги (например, вход через социальные сети).
- Исключительный (Exceptional Flow): Ситуация, когда выполнение сценария завершается с ошибкой или неполным результатом (например, ввод неверного пароля).
Преимущества:
- Фокусировка на пользовательских потребностях.
- Обеспечение комплексного покрытия функциональности.
- Помогает выявить ошибки во взаимодействии между компонентами.
- Тест-кейсы легко понять и использовать для всех участников проекта.