IT Framework BDD

Cucumber

Definicja #

Cucumber to narzędzie open-source wspierające metodykę BDD (Behavior-Driven Development), które pozwala pisać i uruchamiać testy oprogramowania w języku naturalnym. Opiera się na języku Gherkin — strukturalnej składni Given-When-Then — jako formacie specyfikacji zachowania systemu.

Jak działa Cucumber:

  1. Feature files — pliki .feature zawierające scenariusze w Gherkin opisujące oczekiwane zachowanie systemu
  2. Step Definitions — kod (Java, JS, Ruby itp.) mapujący zdania Gherkin na konkretne akcje testowe (wywołania API, kliknięcia w UI, asercje)
  3. Runner — narzędzie uruchamiające scenariusze Gherkin przez dopasowanie kroków do step definitions

Przykład scenariusza Gherkin (w pliku .feature):

Feature: Logowanie
  Scenario: Poprawne logowanie
    Given użytkownik jest na stronie logowania
    When podaje prawidłowy login i hasło
    Then zostaje przekierowany do panelu głównego

Kluczowe ekosystemy Cucumber:

  • Cucumber-JVM — Java; integracja z JUnit i TestNG; najpopularniejsza wersja dla enterprise
  • Cucumber.js — JavaScript/TypeScript; integracja z Playwright, WebdriverIO
  • Cucumber-Ruby — oryginalna implementacja (Ruby)
  • SpecFlow — odpowiednik Cucumber dla .NET/C# (osobny projekt, ta sama idea)

Cucumber nie jest frameworkiem testowym sam w sobie — korzysta z istniejących frameworków (JUnit, TestNG, Mocha) do uruchamiania kroków. Jest warstwą orkiestracji i dokumentacji żywej (living documentation).

Zastosowania #

  • Testy akceptacyjne i E2E pisane przez testerów lub BA — scenariusze Gherkin zrozumiałe dla osób bez technicznego wykształcenia
  • Living documentation — feature files jako żywa specyfikacja systemu aktualizowana wraz z kodem
  • Automatyzacja testów UI z Playwright lub Selenium — step definitions sterujące przeglądarką przez Cucumber runner
  • API testing — step definitions wywołujące REST API i weryfikujące odpowiedzi (np. z RestAssured w Javie)
  • Testy regresji w pipeline CI/CD — Cucumber reports jako czytelny raport dla zespołu i menedżerów

Ścieżka nauki #

Cucumber jest popularnym narzędziem w rolach QA Automation Engineer — wymaga podstawowej znajomości programowania.

Zacznij od:

  • Podstawy BDD i Gherkin — składnia Given/When/Then, Background, Scenario Outline, Tags
  • Cucumber-JVM (Java): projekt Maven/Gradle, adnotacje @Given, @When, @Then, JUnit Runner
  • Lub Cucumber.js (JavaScript): npm install, konfiguracja cucumber.json, step definitions w TypeScript
  • Pisanie pierwszego scenariusza: feature file + step definitions + uruchomienie

Następnie pogłębiaj:

  • Integracja z Selenium WebDriver lub Playwright — testowanie aplikacji webowych przez Cucumber
  • Parametryzacja scenariuszy: Scenario Outline z Examples table
  • Cucumber Reports — generowanie HTML raportów (Cucumber Reports plugin, Allure)
  • Page Object Model z Cucumber — architektura testów UI z separacją warstw
  • SpecFlow — jeśli pracujesz w ekosystemie .NET/C#

FAQ #

Czym różni się Cucumber od Selenium?
Selenium to narzędzie do sterowania przeglądarką — dostarcza API do klikania, wpisywania i weryfikowania elementów UI. Cucumber to framework BDD do organizacji testów w czytelne scenariusze Gherkin. Używa się ich razem: Cucumber orkiestruje scenariusze, a step definitions wywołują Selenium WebDriver lub Playwright.
Co to jest Gherkin i jak działa z Cucumber?
Gherkin to język strukturyzowanych scenariuszy testowych oparty na składni Given-When-Then (Kiedy-Gdy-Wtedy). Pliki .feature zawierają scenariusze w Gherkin; Cucumber parsuje je i dopasowuje każde zdanie do step definitions — funkcji w Javie, JS lub innym języku, które faktycznie wykonują test.
Czy Cucumber jest używany w Polsce?
Tak — Cucumber (JVM i JS) jest szeroko stosowany w polskich firmach, szczególnie w projektach enterprise z Javą i dużymi zespołami QA. Wymagany jest w wielu ofertach pracy na QA Automation Engineer. SpecFlow (odpowiednik .NET) pojawia się rzadziej.
Czym jest SpecFlow?
SpecFlow to odpowiednik Cucumber dla platformy .NET/C#. Używa tej samej składni Gherkin i tej samej idei BDD, ale step definitions pisze się w C# z integracją NUnit lub xUnit. SpecFlow jest popularną alternatywą dla testerów automatyzujących aplikacje .NET.
Ostatnia aktualizacja:

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.