qvib.pro
EN

Тест-кейс (BDD / Gherkin)

Как описать проверяемый сценарий на языке Given/When/Then (Gherkin).

бесплатно любой

Назначение

Тест-кейс описывает проверяемый сценарий на языке Given/When/Then (нотация Gherkin). Цель — однозначность: и человек, и автотест понимают, что проверяем и какой результат ожидаем. Бонус BDD: один формат связывает требование, проверку и (при автоматизации) код теста.

Структура: FeatureScenarioGiven (предусловие) → When (действие) → Then (ожидаемый результат). And/But — доп. условия. Один сценарий = одна проверяемая мысль.

Подробный шаблон

Feature: <возможность>
  # Краткое описание: зачем эта фича пользователю.

  Scenario: <короткое имя проверяемой ситуации>
    Given <предусловие — состояние ДО действия>
    And <доп. предусловие, если нужно>
    When <одно действие пользователя/системы>
    Then <наблюдаемый ожидаемый результат>
    And <доп. проверка>

  Scenario Outline: <проверка на наборе данных>
    Given поле суммы
    When я ввожу <значение>
    Then результат <итог>
    Examples:
      | значение | итог              |
      | 0        | ошибка «> 0»      |
      | 100      | принято           |

Пример 1 — happy + край + ошибка

Feature: Автонарезка видео в Shorts

  Scenario: Длинное видео успешно нарезается
    Given пользователь загрузил видео длительностью 12 минут
    When он запускает автонарезку
    Then создаётся минимум 3 клипа формата 9:16
    And каждый клип содержит русские субтитры
    And длительность каждого клипа не превышает 60 секунд

  Scenario: Видео короче минимума (край)
    Given пользователь загрузил видео длительностью 40 секунд
    When он пытается запустить автонарезку
    Then показывается подсказка «нужно видео от 1 минуты»
    And кнопка «Нарезать» неактивна

  Scenario: Сбой обработки (ошибка)
    Given видео отправлено на нарезку
    When сервис обработки недоступен
    Then показывается ошибка с предложением повторить
    And исходное видео не удаляется

Пример 2 — авторизация

Feature: Вход в облако

  Scenario: Успешный вход
    Given зарегистрированный пользователь с верными данными
    When он вводит email и пароль и нажимает «Войти»
    Then он попадает в свой аккаунт
    And его персональное ядро синхронизируется

  Scenario: Неверный пароль
    Given зарегистрированный пользователь
    When он вводит верный email и неверный пароль
    Then показывается «неверный email или пароль»
    And он остаётся на экране входа
    But конкретная причина (email/пароль) не раскрывается (безопасность)

Чек-лист качества

  • Один сценарий = одна проверяемая мысль.
  • Given/When/Then не смешаны (Given — состояние, When — действие, Then — результат).
  • Обычно одно When на сценарий (несколько действий → раздроби).
  • Результат в Then наблюдаем и однозначен.
  • Покрыты happy path + края + ошибки.
  • Формулировки от пользователя/поведения, не от реализации.

Частые ошибки

  • Действие в Given («Given нажимаю кнопку»). → Given — это состояние ДО; действие — в When.
  • Несколько действий в одном When. → Раздели на сценарии (иначе непонятно, что сломалось).
  • Результат-впечатление («Then всё работает»). → Конкретная наблюдаемая проверка.
  • Привязка к реализации («Then запись появляется в таблице users»). → Описывай поведение, видимое пользователю.
  • Только happy path. → Края и ошибки — обязательно.

Read in English →