Behavior-Driven Development (BDD)

BDD to praktyka tworzenia oprogramowania, która łączy wymagania biznesowe z implementacją techniczną. Bazuje na współpracy między interesariuszami biznesowymi, testerami i deweloperami w celu zdefiniowania zachowania systemu w języku zrozumiałym dla wszystkich. Jej główne załoznie ta:

  • Scenariusze Given-When-Then (Gherkin): opisują przypadki testowe w prostym języku naturalnym.
  • Automatyzacja scenariuszy: np. przy użyciu Cucumber, Cypress, JBehave itp.
  • Współpraca zespołowa: analitycy, testerzy i programiści wspólnie tworzą specyfikacje.

Cucumber to narzędzie wspierające podejście BDD. Umożliwia pisanie testów akceptacyjnych w języku Gherkin. Można je wykorzystać do automatyzacji scenariuszy opisujących zachowanie systemu — np. proces logowania, rejestracji czy płatności. Cucumber to framework/narzędzie wspierające BDD — pozwala uruchamiać testy akceptacyjne automatycznie

Rola testera w BDD:

  • Współtworzenie scenariuszy – nie tylko pisanie testów, ale aktywny udział w definiowaniu wymagań.
  • Zrozumienie kontekstu biznesowego – testy muszą pokrywać to, co najważniejsze z punktu widzenia użytkownika.
  • Mapowanie scenariuszy na kroki testowe – umiejętność przekładania Given, When, Then na działania testowe.
  • Zarządzanie regresją – tworzenie testów, które będą służyły jako “żywa dokumentacja” i zabezpieczenie przed regresją.

Przykład prostego scenariusza Gherkin:

Feature (Funkcja): Logowanie użytkownika

  Scenario (Scenariusz): Prawidłowe logowanie
    Given (Załóżmy że) użytkownik znajduje się na stronie logowania
    When (Jeżeli) wpisze poprawny login i hasło
    Then (Wtedy) zostaje przekierowany do panelu użytkownika

Rozszerzona wersja scenariusza Gherkin.

Feature (Funkcja): Logowanie użytkownika

  Scenario (Scenariusz): Prawidłowe logowanie
    Given (Załóżmy że) użytkownik znajduje się na stronie logowania
    And (Oraz) posiada aktywne konto w systemie
    When (Jeżeli) wpisze poprawny login i hasło
    But (Ale) kliknie przycisk logowania dwukrotnie
    Then (Wtedy) zostaje przekierowany do panelu użytkownika
    And (Oraz) widzi wiadomość powitalną

Korzyści z BDD

  • BDD = lepsza współpraca + testy akceptacyjne + dokumentacja.
  • Pomaga uniknąć nieporozumień między “co ma działać” vs “jak to działa”.
  • Każdy scenariusz staje się automatycznym, żywym dowodem spełnienia wymagań.


References