Język Gherkin – co to jest i jak go używać?

W świecie IT, gdzie proces tworzenia oprogramowania jest skomplikowany, pojawia się wyzwanie stworzenia dokumentacji zrozumiałej dla wszystkich członków zespołu – zarówno programistów, testerów, jak i osób biznesowych. Rozwiązaniem tej zagadki jest Gherkin – język służący do tworzenia przypadków testowych, który łączy aspekty biznesowe z deweloperskimi.

Czym jest Gherkin?

Czym jest Gherkin

Gherkin, nazywany również „językiem techniczno-poetyckim”, jest językiem umożliwiającym opisanie aspektów technicznych w sposób zrozumiały dla osób niezaznajomionych z technikaliami tworzenia oprogramowania. Wywodzi się z podejścia Behavior-Driven Development (BDD) i jest często używany w testach akceptacyjnych.

Gherkin w kontekście BDD

Behavior-Driven Development (BDD) to proces tworzenia oprogramowania, który skupia się na zrozumieniu oczekiwanego zachowania aplikacji z perspektywy użytkownika. Gherkin, będący integralną częścią BDD, służy do opisywania tych oczekiwanych zachowań w formie czytelnych i zrozumiałych scenariuszy.

Gherkin a testowanie aplikacji

W procesie testowania aplikacji, Gherkin służy do tworzenia przypadków testowych, które są zrozumiałe dla wszystkich członków zespołu – zarówno testerów, programistów, jak i osób z działu biznesowego. Dzięki temu, Gherkin tworzy pomost komunikacyjny pomiędzy różnymi działami i umożliwia efektywną współpracę.

Budowa i składnia Gherkin

Gherkin posiada charakterystyczną budowę i nieskomplikowaną składnię. Każdy scenariusz składa się z następujących elementów – słów kluczowych:

  • Feature
  • Scenario
  • Given
  • When
  • Then
  • And

Dodatkowymi opcjami są: Scenario Outline, Examples, Background i But.

Feature

Feature to opis danej funkcjonalności, którą chcemy przetestować. Na przykład:

Feature: Funkcjonalność logowania do aplikacji

 

Scenario

Scenario to krótki, zwięzły opis tego, co scenariusz będzie wykonywał. Na przykład:

Scenario: Jako niezalogowany użytkownik, chciałbym się zalogować do aplikacji

 

Given, When, Then, And

Given, When, Then, And

Te słowa kluczowe służą do opisu etapów testu:

  • Given definiuje warunki początkowe
  • When opisuje wykonywaną akcję
  • Then definiuje oczekiwany rezultat
  • And służy do kontynuacji wcześniejszego zdarzenia

 

Przykładowy scenariusz dla funkcjonalności logowania może wyglądać następująco:

Given Jestem na stronie logowania do aplikacji
When Wpisuję „nazwa_konta” w polu „Nazwa Użytkownika”
And Wpisuję „hasło_konta” w polu „Hasło”
And Klikam w przycisk „Zaloguj”
Then Strona startowa jest widoczna
And Przycisk „Wyloguj” jest widoczny

Scenario Outline i Examples

Oprócz podstawowych słów kluczowych, Gherkin oferuje również Scenario Outline i Examples, które pozwalają na definiowanie wielu przykładów w jednym scenariuszu. Dzięki temu, można łatwo sprawdzić różne przypadki testowe bez konieczności pisania osobnych scenariuszy dla każdego z nich.

Zalety i wady Gherkin

zalety i wady gherkin

Podobnie jak każde narzędzie, Gherkin ma swoje zalety i wady. Wśród zalet można wymienić:

  • Zrozumiałość dla osób nietechnicznych
  • Łączenie aspektów biznesowych z deweloperskimi
  • Możliwość automatycznego testowania aplikacji z pomocą frameworka Cucumber
  • Prostota i przejrzystość składni

Wśród wad natomiast można wymienić:

  • Dodatkowy nakład pracy związany z pisaniem i utrzymaniem scenariuszy
  • Trudności w realizacji skomplikowanych flow aplikacji
  • Konieczność stosowania dodatkowej warstwy abstrakcji

Podsumowanie

Gherkin jest potężnym narzędziem, które może znacznie usprawnić proces tworzenia i testowania oprogramowania. Dzięki jasnej i zrozumiałej składni, umożliwia efektywną komunikację pomiędzy testerami, programistami i osobami biznesowymi. Jednak jak każde narzędzie, wymaga odpowiedniego zrozumienia i umiejętnego stosowania.

 

Notatka o autorze:

Zajmuję się testowaniem, zabezpieczaniem i zapewnianiem jakości oprogramowania od ponad 13 lat. Rozpocząłem swoją karierę od testów manualnych i analizy biznesowo-technicznej. Obecnie prowadzę firmę Quality Island, która zajmuje się szeroko pojętym testowaniem oprogramowania oraz szkoleniami dla przyszłych i obecnych testerów oprogramowania. Moją specjalnością są testy automatyczne aplikacji webowych oraz budowa procesów automatyzacji i robotyzacji. Od 8 lat prowadzę aktywnie szkolenia oraz konsultacje z tych tematów i wykonuję zlecenia dla firm trzecich jako konsultant, ekspert oraz audytor. Współpracuję również z firmami jako osoba do rekrutacji i weryfikacji technicznych. Interesują mnie głównie tematy związane z architekturą IT oraz zagadnienia DevOps/TestOps, ponieważ ściśle wiążą się z zapewnianiem jakości oprogramowania.

 

Tomasz Stelmach

CEO&Founder

 

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *