Язык Gherkin: синтаксис, формат и примеры.

⚡ Умное резюме

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

  • ???? Простой язык: Gherkin описывает поведение таким образом, чтобы люди, не являющиеся программистами, могли читать и писать тесты.
  • ???? Cucumber: Cucumber Считывает файлы .feature и выполняет шаги Gherkin в качестве тестов.
  • 🔑 Дано-Когда-Тогда: Given задает контекст, When запускает действие, Then подтверждает результат.
  • 🧱 Ключевые слова: Структура каждого сценария включает в себя: Характеристика, Предыстория, Сценарий, И и Но.
  • лучшие практики: Рассматривайте каждый сценарий отдельно и описывайте «что», а не «как».
  • 🤖 Помощь ИИ: Инструменты искусственного интеллекта создают сценарии типа «Дано, когда, тогда» на основе простых требований.

Язык «огурца» Cucumber

Что такое язык корнишонов?

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

Текст в формате Gherkin служит документацией и основой для ваших автоматизированных тестов. Формат Gherkin основан на грамматике TreeTop, которая существует более чем на 37 языках, поэтому вы можете писать Gherkin на более чем 37 разговорных языках. Скрипт выполняет две основные функции: документирует пользовательские сценарии и служит основой для написания автоматизированных BDD-тестов.

Почему Корнишон?

Без общего, простого языка, бизнес-команды и технические специалисты описывают требования по-разному, что приводит к недопониманию. Gherkin предоставляет всем единый структурированный словарь, который читается как обычный английский, но напрямую соответствует исполняемым тестам.

Синтаксис Gherkin

Gherkin — это построчно-ориентированный язык, как и YAML. PythonКаждая строка называется шагом и начинается с ключевого слова. Для отступов используются табуляция или пробелы. Комментарий можно добавить в любом месте, но он должен начинаться со знака #. Интерпретатор читает каждую строку после удаления ключевых слов Gherkin, таких как Given, When и Then.

Feature: Title of the Scenario
  Given [Preconditions or Initial Context]
  When [Event or Trigger]
  Then [Expected output]

Документ Gherkin имеет расширение .feature и представляет собой просто тестовый файл с описательным расширением. Cucumber Программа считывает документ Gherkin и выполняет тест для проверки того, что программное обеспечение ведет себя в соответствии с синтаксисом Gherkin.

Важные термины, используемые в Gherkin

Основные ключевые слова: Feature, Background, Scenario, Given, When, Then, And, But и Scenario Outline. Cucumber Строгих правил именования нет, но четкая система именования помогает.

Характеристика

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

Сценарий

Каждый файл описания функций может содержать несколько сценариев, и каждый сценарий начинается с Сценарий: далее следует название сценария.

Предыстория

Ключевое слово Background добавляет контекст к сценарию. Оно может содержать шаги, общие для всех сценариев; разница в том, что эти шаги выполняются перед каждым сценарием.

Данный

Ключевое слово Given приводит систему в известное состояние до начала взаимодействия пользователя с ней. Оно определяет предварительное условие или контекст:

Given I am on "/."

После появления

Ключевое слово When определяет действие, выполняемое пользователем:

When I perform "Sign In."

Затем

Ключевое слово Then определяет результат, наблюдаемый после действия на шаге When. Следует проверять только заметные изменения:

Then I should see "Welcome Tom."

И & Но

У вас может быть несколько шагов Given, When или Then. Ключевые слова And и But добавляют дополнительные шаги для повышения читаемости:

And I enter "EmailAddress" with "tomjohn@gmail.com."
But I should see "Welcome Tom."

Given, When, Then, And и But — это шаги проверки. Интерпретатор не выдаст ошибку, если вы поменяете их местами, но сценарий будет читаться нелогично, поэтому используйте каждое ключевое слово по назначению.

Примеры корнишонов

Пример 1: Функция авторизации на сайте социальной сети.

Feature: Login functionality of a social networking site
  Given I am a registered user
  When I enter my username
  And I enter my password
  Then I should be redirected to the home page

Gherkin анализирует каждый шаг, описанный в файле описания функций, и шаги в файле описания функций должны совпадать с шагами в файле определения шагов.

Пример 2: Сценарий аутентификации пользователя с использованием фонового режима.

Feature: User Authentication

Background:
  Given the user is already registered on the website

Scenario: Successful login
  Given the user is on the login page
  When the user inputs the correct email address
  And the user inputs the correct password
  And the user clicks the Login button
  Then the user should be authenticated
  And the user should be redirected to their dashboard

лучшие практики использования корнишона

  • Каждый сценарий должен выполняться отдельно и независимо.
  • Каждая функция должна быть исполняемой сама по себе.
  • Информация о каждом шаге должна отображаться отдельно.
  • Сопоставьте ваши сценарии с вашими требованиями и track, какие сценарии относятся к каждому требованию.
  • Создавайте модульные, простые для понимания этапы и объединяйте распространенные сценарии.
  • Опишите, что делает система, а не как она это делает.

Преимущества корнишона

  • Язык Gherkin достаточно прост, чтобы его могли понять даже люди, не занимающиеся программированием.
  • Программисты могут использовать это как надежную основу для начала своих тестов.
  • Это упрощает восприятие пользовательских историй и позволяет ориентироваться на бизнес-требования.
  • И руководители предприятий, и разработчики могут читать один и тот же текст.
  • Тестовые примеры Gherkin напрямую связывают приемочные тесты с автоматизированными тестами.
  • Такой стиль написания упрощает повторное использование кода в различных тестах.

Недостатки корнишона

  • Это требует высокого уровня вовлеченности и сотрудничества со стороны бизнеса.
  • В некоторых ситуациях это может оказаться неэффективным.
  • Некачественно написанные тесты могут увеличить затраты на их сопровождение.

Часто задаваемые вопросы (FAQ)

BDD — это гибкая методология разработки, в которой команды описывают ожидаемое поведение простым языком до начала кодирования. Сценарии Gherkin позволяют зафиксировать это поведение, чтобы представители бизнеса и технические специалисты имели единое понимание.

Gherkin — это синтаксис простого языка для написания сценариев. Cucumber Это один из нескольких инструментов, которые считывают файлы .feature из Gherkin и выполняют необходимые шаги для вашего приложения.

Схема сценария выполняет одни и те же шаги с несколькими наборами данных, перечисленными в таблице «Примеры». Это позволяет избежать дублирования сценария для каждого набора входных значений.

Определение шага сопоставляет каждый шаг Gherkin с кодом, который его выполняет. Когда Cucumber Программа считывает шаг, находит соответствующее определение и выполняет этот метод в приложении.

Эти три друга — владелец продукта, разработчик и тестировщик — вместе проверяют функционал. Их совместное видение позволяет создавать более понятные и полные сценарии Gherkin, чем любая отдельная роль.

Кроме того CucumberКомпания Gherkin получает поддержку от СпецФлоу для .NET и Behave для Pythonсреди прочих BDD-фреймворков.

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

Инструменты искусственного интеллекта считывают простые требования и автоматизируют создание первого черновика структурированных шагов по схеме «Дано-Когда-Тогда». Это ускоряет процесс составления, но командам все равно приходится дорабатывать формулировки, чтобы они соответствовали реальным критериям приемки.

Подведем итог этой публикации следующим образом: