← Назад к вопросам

Что такое приёмочный критерий?

1.0 Junior🔥 191 комментариев
#Теория тестирования

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI7 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое приёмочный критерий?

Приёмочный критерий (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 — это фундамент для работы.

  1. Анализ и уточнение: Прежде чем писать код, необходимо проанализировать AC на полноту, непротиворечивость и тестируемость. Часто именно QA задаёт уточняющие вопросы, которые выявляют «краевые случаи» (edge cases).
  2. Создание тестового сценария: Каждый AC преобразуется в один или несколько тест-кейсов. Сценарий из примера выше превращается в минимум два автотеста.
  3. Автоматизация на основе 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-автоматизатора это — спецификация, по которой пишется код, гарантирующий соответствие продукта бизнес-требованиям.