QA / TestingMiddleExperience

Как вы встраивали QA в agile/scrum sprint, чтобы тестирование не становилось бутылочным горлышком в конце?

Участвовал в refinement и уточнял acceptance criteria до начала разработки, тестировал фичи инкрементально по мере готовности срезов. К последним дням спринта оставалась только валидация — открытий новых проблем на финише не было.

Встраивание QA в agile-спринт без бутылочного горлышка

Классическая проблема agile-команд: разработчики пишут код весь спринт, отдают QA в последние 2 дня — и либо тесты срезаются, либо спринт срывается. Решение — сдвинуть QA-активности влево и распределить их по всему спринту.

Структура спринта с встроенным QA

Sprint planning — QA как равноправный участник

На планировании я активно участвую в refinement:

  • Уточняю acceptance criteria вместе с PM до начала разработки — двусмысленные требования порождают баги.
  • Выявляю отсутствующие edge cases в user story.
  • Оцениваю тестовые задачи явно в story points — тестирование входит в DoD, а не добавляется сверху.

Во время разработки — shift-left

  • Готовлю тест-кейсы параллельно с разработкой, не дожидаясь завершения.
  • Тестирую фичи по мере готовности отдельных вертикальных срезов (разработчик отдаёт backend + unit endpoint — QA тестирует API, не дожидаясь UI).
  • Участвую в code review с фокусом на тестируемость: наличие data-testid, логируемость ошибок, observability.

Definition of Ready для задачи

Договорился с командой: задача не берётся в спринт без:

  • Acceptance criteria в формате Gherkin или чёткого списка.
  • Описания happy path и известных edge cases.
  • Макета (если UI-задача) или контракта API (если backend).

Пример Gherkin-сценария, написанного до начала разработки

# features/checkout.feature
Feature: Checkout payment

  Scenario: Successful card payment
    Given the user has items in cart
    When the user submits payment with valid card details
    Then the order confirmation page is shown
    And the order appears in user history

  Scenario: Payment declined
    Given the user has items in cart
    When the user submits payment with declined card
    Then an error message is displayed
    And no order is created

Конец спринта — только валидация, не открытие

Если QA-активности распределены по спринту, в последние 2 дня я делаю только: финальный smoke, regression по затронутым модулям и sign-off. Никаких «открытий» новых проблем — они должны быть найдены раньше.

Метрика здоровья процесса

Отслеживал: сколько дефектов найдено в последние 2 дня спринта vs в первые 8. Если соотношение смещается в конец — процесс сломан.

Подводные камни

  • QA не приглашают на refinement — тогда требования уточняются поздно, баги встраиваются в дизайн.
  • DoD без тестирования — разработчики считают задачу готовой без QA sign-off, QA оказывается в конце.
  • Разработчики не отдают фичи инкрементально — «отдам всё сразу в конце» убивает параллельную работу QA.
  • Не разделять тестовые задачи по времени — все тест-кейсы пишутся в последний день вместо начала спринта.
  • Один QA на всю команду — структурное бутылочное горлышко; решение через developer-testing, автоматизацию и расширение команды.
  • Нет данных о распределении дефектов по времени спринта — нельзя диагностировать и улучшать процесс.

What hurts your answer

  • Ждать готовой задачи в конце sprint.
  • Считать QA единственным владельцем качества.
  • Не участвовать в acceptance criteria до разработки.

What they're listening for

  • Практикует shift-left testing.
  • Снижает bottleneck в конце sprint.
  • Делает качество общей ответственностью команды.

Related topics

Как вы встраивали QA в agile/scrum sprint, чтобы тестирование не становилось бутылочным горлышком в конце? | Talanto