Ответ
Декомпозиция требований — это процесс разбиения сложного, высокоуровневого требования на более мелкие, конкретные, проверяемые компоненты. В тестировании это основа для создания полного набора тестовых сценариев.
Цели декомпозиции:
- Полнота покрытия: Выявление всех аспектов функциональности, включая граничные случаи.
- Улучшение оценки: Более точная оценка трудозатрат на тестирование.
- Упрощение дизайна тестов: Работа с меньшими и понятными единицами.
- Выявление неоднозначностей: Обнаружение противоречий или пробелов в требованиях на раннем этапе.
Практический пример: Исходное требование: "Пользователь может восстановить доступ к аккаунту, если забыл пароль."
Декомпозиция на проверяемые сценарии:
| № | Компонент (Что проверяем?) | Критерии успеха (Как проверяем?) | Тип теста |
|---|---|---|---|
| 1 | Доступ к форме восстановления | На странице входа есть ссылка "Забыли пароль?". Клик ведет на форму ввода email. | UI / Smoke |
| 2 | Валидация email на форме | При вводе некорректного email (без @, пустое) отображается понятное сообщение об ошибке. | Negative / UI |
| 3 | Отправка ссылки на валидный email | После ввода зарегистрированного email приходит письмо со ссылкой. Ссылка уникальна и одноразова. | Functional / E2E |
| 4 | Поведение для незарегистрированного email | При вводе неизвестного email отображается общее сообщение "Если email существует, письмо отправлено" (без раскрытия информации). | Security / Negative |
| 5 | Срок действия ссылки | Ссылка из письма не работает по истечении N часов. | Non-Functional |
| 6 | Создание нового пароля | По рабочей ссылке открывается форма. Новый пароль соответствует политике безопасности. | Functional / UI |
| 7 | Вход с новым паролем | После смены пароля возможен вход в аккаунт. Старый пароль больше не работает. | Functional / E2E |
Инструменты и методы:
- Ментальные карты (Mind Maps): Для визуального представления иерархии.
- Таблицы (как выше): Для детализации сценариев и критериев.
- Техники тест-дизайна: Эквивалентное разделение, анализ граничных значений, таблицы решений — применяются уже к декомпозированным компонентам.
Результат: Вместо одного абстрактного тест-кейса "Проверить восстановление пароля" получается 7+ конкретных, независимых сценариев, которые полностью покрывают функциональность и различные условия её использования.