📝 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% запросов.»

Совет: Проверка: по каждому требованию должен писаться тест с чётким ожидаемым результатом.