Acceptance Criteria
Критерии приёмки отвечают на вопрос «как мы поймём, что история готова». Их пишут до разработки, чтобы разработчик и заказчик держали в голове одно и то же.
История из статьи 02-08 отвечает на вопросы «кто, что и зачем», но не отвечает, когда работа считается сделанной. Критерии приёмки (Acceptance Criteria) - это проверяемые условия, при которых история считается выполненной.
Кейс: когда отмена заказа готова
Разработчик сделал кнопку «Отменить заказ» для истории «Как покупатель, я хочу отменить заказ до отправки» и говорит, что готово. Владелец нажимает кнопку на заказе, который уже передан курьеру, и заказ отменяется. Деньги уходят на возврат, а посылка уже едет к покупателю.
Разработчик не ошибся по своей логике: история не говорила, до какого статуса отмена доступна. Без критериев приёмки оба понимают «готово» по-разному.
Правила в этой статье условные: мы берём их для примера, а не из реального магазина. В примере отмена доступна до момента, когда заказ передан курьеру.
Как записать критерии
Есть две распространённые формы. Чек-лист - это список проверок, каждую из которых можно отметить «да» или «нет». Сценарий Given, When, Then - это запись одного поведения тремя шагами: дано начальное состояние, когда происходит действие, тогда ожидается результат.
Для кейса чек-лист может выглядеть так:
- кнопка «Отменить заказ» видна, пока заказ не передан курьеру;
- после отмены заказ получает статус «Отменён»;
- покупатель видит подтверждение на экране;
- деньги возвращаются тем же способом, каким заказ был оплачен (условное правило примера);
- для заказа, переданного курьеру, кнопка недоступна.
Чек-лист короткий и читается быстро. Но он плохо показывает состояния: не видно, что именно происходит, если покупатель нажал кнопку на разных статусах. Для таких случаев лучше сценарий.
Сценарий Given, When, Then
Шаги сценария похожи на рассказ о системе: сначала состояние, потом действие, потом результат. Так записывают сценарии в языке Gherkin: Given описывает начальный контекст системы, When - событие или действие, Then - ожидаемый результат.
Необязательно писать на английском и необязательно уточнять инструменты. Для бизнес-анализа полезна сама схема: один сценарий описывает одно поведение, и по нему можно задать вопрос «выполнено или нет».
Какие сценарии нужны
Основной сценарий - это успешный путь. Отрицательный сценарий - это случай, когда действие недопустимо или не может быть выполнено. Граничный сценарий - это случай на краю условия или необычный по порядку действий, например двойное нажатие кнопки.
Если в критериях записан только основной сценарий, всё остальное разработчик догадывается сам. В кейсе именно так отмена после передачи курьеру и оказалась возможной.
Чек-лист или сценарий
Форму выбирают по сложности поведения. Простые правила удобнее держать в списке, а поведение, которое зависит от состояния, лучше записывать сценариями. Обе формы можно мешать в одной истории.
Как проверить сами критерии
Хороший критерий обычно удовлетворяет пяти проверкам:
- проверяемый: ответ «выполнено или нет» можно дать без спора;
- однозначный: два человека понимают его одинаково, без слов «быстро» и «удобно» без цифр;
- без выбора решения: описывает результат, а не цвет кнопки или таблицу в базе;
- один критерий - одна проверка;
- согласован с владельцем продукта до начала работы.
Пример плохого критерия: «Отмена работает быстро». Хороший вариант отвечает на вопрос «за сколько»: числовое требование записывают так, как описано в статье 02-13.
Критерии приёмки не заменяют тест-кейсы. Критерии описывают, какое поведение нужно, а тест-кейсы подробно описывают, как это проверять. Об этом рассказано в статье 02-25.
Где это встречается в работе
- В карточке задачи в трекере, рядом с текстом истории.
- При планировании, когда команда оценивает историю по критериям.
- При приёмке результата, когда заказчик и разработчик сверяют «готово».
- При написании автотестов, когда команда берёт сценарии за основу.
Итог
- Критерии приёмки определяют, при каких условиях история считается готовой.
- Две формы записи: чек-лист и сценарий Given, When, Then.
- Для одной истории нужны основной, отрицательный и граничный сценарии.
- Критерий должен быть проверяемым и однозначным.
- Критерии не заменяют тест-кейсы, они подготавливают их.
Что дальше
- 02-25 От требований к тестированию: как из критериев получаются тест-кейсы и приёмка.
- 02-18 Неполные и противоречивые требования: как найти пробелы в критериях.
- 02-13 Нефункциональные требования: как записывать «быстро» числом.
5 вопросов