Acceptance Criteria

Критерии приёмки отвечают на вопрос «как мы поймём, что история готова». Их пишут до разработки, чтобы разработчик и заказчик держали в голове одно и то же.


История из статьи 02-08 отвечает на вопросы «кто, что и зачем», но не отвечает, когда работа считается сделанной. Критерии приёмки (Acceptance Criteria) - это проверяемые условия, при которых история считается выполненной.

Кейс: когда отмена заказа готова

Разработчик сделал кнопку «Отменить заказ» для истории «Как покупатель, я хочу отменить заказ до отправки» и говорит, что готово. Владелец нажимает кнопку на заказе, который уже передан курьеру, и заказ отменяется. Деньги уходят на возврат, а посылка уже едет к покупателю.

Разработчик не ошибся по своей логике: история не говорила, до какого статуса отмена доступна. Без критериев приёмки оба понимают «готово» по-разному.

Рисунок 1. Результат нажатия кнопки отмены без критерия про статус и с ним

Правила в этой статье условные: мы берём их для примера, а не из реального магазина. В примере отмена доступна до момента, когда заказ передан курьеру.

Как записать критерии

Есть две распространённые формы. Чек-лист - это список проверок, каждую из которых можно отметить «да» или «нет». Сценарий Given, When, Then - это запись одного поведения тремя шагами: дано начальное состояние, когда происходит действие, тогда ожидается результат.

Рисунок 2. Чек-лист и сценарий Given, When, Then: две формы записи критериев

Для кейса чек-лист может выглядеть так:

  • кнопка «Отменить заказ» видна, пока заказ не передан курьеру;
  • после отмены заказ получает статус «Отменён»;
  • покупатель видит подтверждение на экране;
  • деньги возвращаются тем же способом, каким заказ был оплачен (условное правило примера);
  • для заказа, переданного курьеру, кнопка недоступна.
Рисунок 3. Кнопка отмены по трём условным статусам заказа и критерий, который это описывает

Чек-лист короткий и читается быстро. Но он плохо показывает состояния: не видно, что именно происходит, если покупатель нажал кнопку на разных статусах. Для таких случаев лучше сценарий.

Сценарий Given, When, Then

Шаги сценария похожи на рассказ о системе: сначала состояние, потом действие, потом результат. Так записывают сценарии в языке Gherkin: Given описывает начальный контекст системы, When - событие или действие, Then - ожидаемый результат.

Рисунок 4. Сценарий Given, When, Then на примере отмены заказа

Необязательно писать на английском и необязательно уточнять инструменты. Для бизнес-анализа полезна сама схема: один сценарий описывает одно поведение, и по нему можно задать вопрос «выполнено или нет».

Какие сценарии нужны

Основной сценарий - это успешный путь. Отрицательный сценарий - это случай, когда действие недопустимо или не может быть выполнено. Граничный сценарий - это случай на краю условия или необычный по порядку действий, например двойное нажатие кнопки.

Рисунок 5. Три типа сценариев: основной, отрицательный и граничный

Если в критериях записан только основной сценарий, всё остальное разработчик догадывается сам. В кейсе именно так отмена после передачи курьеру и оказалась возможной.

Чек-лист или сценарий

Форму выбирают по сложности поведения. Простые правила удобнее держать в списке, а поведение, которое зависит от состояния, лучше записывать сценариями. Обе формы можно мешать в одной истории.

Как проверить сами критерии

Хороший критерий обычно удовлетворяет пяти проверкам:

  • проверяемый: ответ «выполнено или нет» можно дать без спора;
  • однозначный: два человека понимают его одинаково, без слов «быстро» и «удобно» без цифр;
  • без выбора решения: описывает результат, а не цвет кнопки или таблицу в базе;
  • один критерий - одна проверка;
  • согласован с владельцем продукта до начала работы.

Пример плохого критерия: «Отмена работает быстро». Хороший вариант отвечает на вопрос «за сколько»: числовое требование записывают так, как описано в статье 02-13.

Критерии приёмки не заменяют тест-кейсы. Критерии описывают, какое поведение нужно, а тест-кейсы подробно описывают, как это проверять. Об этом рассказано в статье 02-25.

Где это встречается в работе

  • В карточке задачи в трекере, рядом с текстом истории.
  • При планировании, когда команда оценивает историю по критериям.
  • При приёмке результата, когда заказчик и разработчик сверяют «готово».
  • При написании автотестов, когда команда берёт сценарии за основу.

Итог

  • Критерии приёмки определяют, при каких условиях история считается готовой.
  • Две формы записи: чек-лист и сценарий Given, When, Then.
  • Для одной истории нужны основной, отрицательный и граничный сценарии.
  • Критерий должен быть проверяемым и однозначным.
  • Критерии не заменяют тест-кейсы, они подготавливают их.

Что дальше

  • 02-25 От требований к тестированию: как из критериев получаются тест-кейсы и приёмка.
  • 02-18 Неполные и противоречивые требования: как найти пробелы в критериях.
  • 02-13 Нефункциональные требования: как записывать «быстро» числом.
Проверка знаний

5 вопросов