Ответ
Хорошие требования должны обладать следующими ключевыми атрибутами, которые делают их пригодными для тестирования:
- Корректность (Correctness) — точно и безошибочно описывают ожидаемое поведение системы.
- Однозначность (Unambiguous) — исключают двусмысленные трактовки. Используют конкретные, измеримые формулировки.
- Плохо: "Система должна отвечать быстро."
- Хорошо: "95% запросов к API должны обрабатываться менее чем за 200 мс."
- Полнота (Complete) — покрывают все сценарии использования, включая основные потоки, альтернативные и граничные случаи.
- Непротиворечивость (Consistent) — не конфликтуют друг с другом и с другими требованиями в системе.
- Проверяемость (Testable/Verifiable) — для требования можно разработать объективный тест для подтверждения его выполнения.
- Атомарность (Atomic) — описывают одну, законченную функциональность или ограничение.
- Прослеживаемость (Traceable) — имеют уникальный идентификатор, позволяющий связать их с тест-кейсами и дефектами.
Практический пример: Требование к форме регистрации.
- Слабое: "Поле 'Email' должно проверяться."
- Улучшенное (соответствует атрибутам): "Система должна валидировать поле 'Email' на соответствие формату
name@domain.comи отображать ошибку 'Введите корректный email' в течение 1 секунды после ввода некорректных данных."