Работал ли ты с Cucumber?

«Работал ли ты с Cucumber?» — вопрос из категории Фреймворки тестирования, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, использовал Cucumber для реализации подхода BDD (Behavior-Driven Development). Это позволяло теснее сотрудничать с аналитиками и продакт-оунерами, так как сценарии писались на почти естественном языке (Gherkin).

Как это работает в моей практике:

  1. Вместе с командой мы описываем фичи и сценарии в .feature-файлах.
  2. Затем я пишу шаги (step definitions) на Java, которые связывают эти сценарии с кодом автоматизации (например, Selenium WebDriver или REST Assured).

Пример сценария (Feature file):

Feature: User Login
  Scenario: Successful login with valid credentials
    Given the user is on the login page
    When the user enters valid credentials
    And clicks the login button
    Then the user is redirected to the dashboard

Пример реализации шага на Java:

public class LoginSteps {
    @Given("the user is on the login page")
    public void navigateToLoginPage() {
        driver.get("https://app.example.com/login");
    }

    @When("the user enters valid credentials")
    public void enterValidCredentials() {
        loginPage.enterUsername("standard_user");
        loginPage.enterPassword("secret_sauce");
    }
    // ... остальные шаги
}

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