Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое приёмочный критерий?
Приёмочный критерий (Acceptance Criterion, AC) — это чётко определённое условие или правило, которое должно быть выполнено, чтобы заинтересованная сторона (стейкхолдер, продукт-оунер, бизнес-аналитик) приняла реализованную функциональность как готовую и соответствующую ожиданиям. Это ключевой элемент методологий гибкой разработки (Agile, Scrum) и практики Behavior-Driven Development (BDD), который обеспечивает общее понимание требований между бизнесом и командой разработки.
Основные характеристики и цели
- Измеримость: Критерий должен быть сформулирован так, чтобы его выполнение можно было объективно проверить (например, через тест). Он отвечает на вопрос «Как мы поймём, что работа завершена?».
- Ориентированность на пользователя: AC описывают поведение системы с точки зрения конечного пользователя, его действий и получаемых результатов.
- Единство понимания: Ликвидируют неоднозначность в требованиях, служат «контрактом» между бизнесом и командой.
- Основа для тестирования: Являются прямым источником для создания приёмочных тестов (Acceptance Tests), которые автоматизируются в процессе разработки.
Форматы написания
Чаще всего AC формулируются по шаблону «Given-When-Then» (GWT), который понятен всем участникам процесса.
# Пример приёмочного критерия для функции входа в систему
Feature: Авторизация пользователя
Чтобы защитить личные данные
Как зарегистрированный пользователь
Я хочу входить в свою учётную запись
Scenario: Успешный вход с валидными данными
Given пользователь находится на странице логина
When пользователь вводит правильный email и пароль
And нажимает кнопку "Войти"
Then происходит перенаправление на личный кабинет
And отображается приветствие: "Добро пожаловать, [Имя]"
Scenario: Неуспешный вход с неверным паролем
Given пользователь находится на странице логина
When пользователь вводит правильный email и неверный пароль
And нажимает кнопку "Войти"
Then отображается сообщение об ошибке: "Неверный email или пароль"
And пользователь остается на странице логина
Как QA-инженеру работать с приёмочными критериями?
Для QA Automation Engineer AC — это фундамент для работы.
- Анализ и уточнение: Прежде чем писать код, необходимо проанализировать AC на полноту, непротиворечивость и тестируемость. Часто именно QA задаёт уточняющие вопросы, которые выявляют «краевые случаи» (edge cases).
- Создание тестового сценария: Каждый AC преобразуется в один или несколько тест-кейсов. Сценарий из примера выше превращается в минимум два автотеста.
- Автоматизация на основе AC: Автотесты пишутся непосредственно для проверки критериев. В BDD-фреймворках (таких как Cucumber, SpecFlow, Behave) текст критериев (Gherkin) становится исполняемой спецификацией.
# Пример фрагмента автоматизированного теста на pytest + selene для второго AC
from selene import browser, have
def test_login_with_invalid_password():
# Given (установка предварительных условий часто выносится в фикстуры)
browser.open('/login')
# When
browser.element('#email').type('valid_user@example.com')
browser.element('#password').type('wrong_password')
browser.element('button[type="submit"]').click()
# Then
browser.element('.alert-error').should(
have.text('Неверный email или пароль')
)
browser.should(have.url_containing('/login'))
Пример: от AC к автотесту
Рассмотрим критерий для корзины интернет-магазина:
«При добавлении товара в корзину, на иконке корзины должен обновиться счётчик, отображающий общее количество единиц товара в ней».
- Для QA-автоматизатора это преобразуется в проверки:
* Cчётчик равен 0 для пустой корзины.
* После добавления одного товара N счётчик становится равен 1.
* После добавления товара M в количестве 2 штуки счётчик становится равен 3 (1+2).
* После удаления товара счётчик уменьшается.
Ключевые преимущества для процесса разработки
- Снижение количества дефектов: Чёткие требования уменьшают риск недопонимания.
- Ускорение коммуникации: Все говорят на одном языке.
- Раннее тестирование: Мыслить критериями приёмки — значит мыслить с позиции тестировщика ещё на этапе планирования (сдвиг тестирования влево).
- Чёткое определение «Готово» (Definition of Done): Фича не считается завершённой, пока не выполнены все её AC.
Таким образом, приёмочный критерий — это не просто пункт в техническом задании, а центральный артефакт, который направляет разработку, тестирование и приёмку функциональности, обеспечивая качество и предсказуемость результата. Для QA-автоматизатора это — спецификация, по которой пишется код, гарантирующий соответствие продукта бизнес-требованиям.