📝 EARS: шаблоны требований
Easy Approach to Requirements Syntax: шесть шаблонов однозначных требований.
Теория · Аналитика · #analytics #requirements #ears
Идея
EARS (Easy Approach to Requirements Syntax) задаёт короткие шаблоны, по которым требование пишется одинаково и без двусмысленностей. Основа: <условие> <система> shall <ответ>.
Шаблоны
| Тип | Шаблон | Пример |
|---|---|---|
| Всегда (ubiquitous) | Система должна <ответ> |
Система должна хранить пароли в виде хэша. |
| По событию (event-driven) | Когда <событие>, система должна <ответ> |
Когда пользователь нажимает «Оплатить», система должна создать заказ. |
| По состоянию (state-driven) | Пока <состояние>, система должна <ответ> |
Пока соединение отсутствует, система должна сохранять данные локально. |
| Нежелательное (unwanted) | Если <нежелательное условие>, то система должна <ответ> |
Если ввод карты неверен, то система должна показать сообщение об ошибке. |
| Опция (optional feature) | Где <функция включена>, система должна <ответ> |
Где включена двухфакторная защита, система должна запросить код. |
| Составное (complex) | сочетание шаблонов | Пока пользователь вошёл, когда сессия истекла, система должна выйти из аккаунта. |
Правила хорошей формулировки
- Одно требование равно одному поведению (атомарность).
- Слова «должна» (shall) для обязательного, «может» для необязательного.
- Измеримые значения: «в течение 2 секунд», «не более 5 попыток».
- Без неопределённостей: «быстро», «удобно», «и т. д.», «примерно».
- Активный залог, одно подлежащее: система.
Было и стало
| Слабое | EARS |
|---|---|
| «Пользователь может восстановить пароль» | «Когда пользователь запрашивает восстановление пароля, система должна отправить ссылку на указанный email в течение 1 минуты.» |
| «Система быстро отвечает» | «Система должна возвращать результат поиска в течение 1 секунды для 95% запросов.» |
Совет: Проверка: по каждому требованию должен писаться тест с чётким ожидаемым результатом.