Cucumber Ramy: Co jest Cucumber?

โšก Inteligentne podsumowanie

Cucumber to narzฤ™dzie testowe wspierajฤ…ce Behavior Driven Development, pozwalajฤ…ce kaลผdemu na czytanie testรณw, niezaleลผnie od wiedzy technicznej. Ten materiaล‚ wyjaล›nia, jak dziaล‚a BDD, poprzez kroki Given-When-Then, zalety Cucumberi jak wypada w porรณwnaniu z Selenium i HP ALM.

  • ๐Ÿฅ’ Definicja podstawowa: Cucumber jest narzฤ™dziem do programowania sterowanego zachowaniem, ktรณre tworzy testy w prostym jฤ™zyku, zrozumiaล‚ym zarรณwno dla interesariuszy technicznych, jak i nietechnicznych.
  • ๐Ÿ—ฃ๏ธ BDD Foundation: Analitycy biznesowi i wล‚aล›ciciele produktรณw opisujฤ… zachowanie systemu jeszcze przed rozpoczฤ™ciem pisania kodu przez programistรณw, co pozwala na lepsze zrozumienie sytuacji.
  • ๐Ÿ“ Dane-Kiedy-Wtedy: Kaลผdy Cucumber Scenariusz opiera siฤ™ na czytelnej strukturze Given-When-Then, ktรณra peล‚ni rรณwnieลผ funkcjฤ™ ลผywej dokumentacji.
  • โšก Najwaลผniejsze zalety: Szybka konfiguracja, ponowne wykorzystanie kodu, skupienie siฤ™ na uลผytkowniku koล„cowym i ล‚atwe angaลผowanie interesariuszy biznesowych niezajmujฤ…cych siฤ™ kodowaniem.
  • โš–๏ธ. Porรณwnanie narzฤ™dzi: Cucumber jest darmowy i oparty na BDD, natomiast HP ALM jest pล‚atny i Selenium ma na celu testowanie funkcjonalnoล›ci i wydajnoล›ci.

Cucumber

Czym jest Cucumber?

Cucumber to narzฤ™dzie testowe wspierajฤ…ce Behavior Driven Development (BDD). Oferuje ono sposรณb pisania testรณw zrozumiaล‚ych dla kaลผdego, niezaleลผnie od posiadanej wiedzy technicznej. W BDD uลผytkownicy (analitycy biznesowi, wล‚aล›ciciele produktรณw) najpierw piszฤ… scenariusze lub testy akceptacyjne, ktรณre opisujฤ… zachowanie systemu z perspektywy klienta, do przeglฤ…du i zatwierdzenia przez wล‚aล›cicieli produktรณw, zanim programiล›ci napiszฤ… swรณj kod. Cucumber framework wykorzystuje Jฤ™zyk programowania Ruby.

Cucumber
Cucumber

Jak dziaล‚a BDD Cucumber Automatyzacja?

Zaล‚รณลผmy, ลผe Twoim zadaniem jest utworzenie moduล‚u przelewu ล›rodkรณw w aplikacji bankowoล›ci internetowej.

Istnieje wiele sposobรณw na przetestowanie tego w Cucumber Struktura testowa:

  1. Przelew ล›rodkรณw zostanie zrealizowany, jeล›li na koncie ลบrรณdล‚owym znajduje siฤ™ wystarczajฤ…ce saldo.
  2. Przelew ล›rodkรณw zostanie zrealizowany, jeล›li dane rachunku docelowego sฤ… poprawne.
  3. Przelew ล›rodkรณw zostanie zrealizowany, jeล›li podane przez uลผytkownika hasล‚o transakcji, kod RSA lub uwierzytelnienie transakcji jest prawidล‚owe.
  4. Przelew ล›rodkรณw powinien zostaฤ‡ zrealizowany nawet jeลผeli przypada dzieล„ wolny od pracy.
  5. Przelew ล›rodkรณw powinien zostaฤ‡ zrealizowany w przyszล‚ej dacie ustalonej przez posiadacza konta.

Scenariusz testowy staje siฤ™ bardziej rozbudowany i zล‚oลผony, gdy weลบmiemy pod uwagฤ™ dodatkowe cechy, takie jak kwota przelewu X na okres Y dni/miesiฤ™cy, zatrzymanie zaplanowanego przelewu, gdy ล‚ฤ…czna kwota osiฤ…gnie Z, itd.

Ogรณlnฤ… tendencjฤ… programistรณw jest pรณลบniejsze rozwijanie funkcji i pisanie kodu testowego. Jak widaฤ‡ w powyลผszym przypadku, Przypadek testowy rozwรณj tego scenariusza jest zล‚oลผony i deweloper bฤ™dzie odkล‚adaล‚ Testy do czasu wydania, po czym zostanฤ… przeprowadzone szybkie, ale nieskuteczne testy.

Aby przezwyciฤ™ลผyฤ‡ ten problem, Cucumber BDD (Rozwรณj oparty na zachowaniu) zostaล‚ pomyล›lany. Uล‚atwia caล‚y proces testowania dla programisty.

In Cucumber BDD, cokolwiek napiszesz, musi siฤ™ tam znaleลบฤ‡ Biorฤ…c pod uwagฤ™-Kiedy-Wtedy Kroki. Rozwaลผmy ten sam przykล‚ad powyลผej w BDD:

Given that a fund transfer module in net banking application has been developed
And I am accessing it with proper authentication
When I shall transfer with enough balance in my source account
Or I shall transfer on a Bank Holiday
Or I shall transfer on a future date
And destination a/c details are correct
And transaction password/RSA code/security authentication for the transaction is correct
And press or click send button
Then amount must be transferred
And the event will be logged in log file

Czyลผ nie jest ล‚atwy do napisania, przeczytania i zrozumienia? Obejmuje on wszystkie moลผliwe przypadki testowe dla moduล‚u transferu funduszy i moลผna go ล‚atwo modyfikowaฤ‡, aby uwzglฤ™dniฤ‡ wiฤ™cej. Przypomina on rรณwnieลผ pisanie dokumentacji dla moduล‚u transferu funduszy.

Zalety Cucumber Oprogramowanie

  1. Pomocne jest zaangaลผowanie interesariuszy biznesowych, ktรณrzy nie majฤ… ล‚atwego dostฤ™pu do kodu.
  2. Cucumber Narzฤ™dzie do testowania koncentruje siฤ™ na doล›wiadczeniu uลผytkownika koล„cowego.
  3. Styl pisania testรณw pozwala na ล‚atwiejsze ponowne wykorzystanie kodu w testach.
  4. Szybka i ล‚atwa konfiguracja i wykonanie.
  5. Cucumber narzฤ™dzie testowe jest skutecznym narzฤ™dziem do testowanie.

Cucumber vs Selenium przeciwko ALM

W tej sekcji przeanalizujemy rรณลผnicฤ™ miฤ™dzy Cucumber, Seleniumi ALM.

Cucumber HP ALM (QTP) Selenium
Cucumber oprogramowanie jest bezpล‚atne. QTP jest drogie. Jest wolna.
Cucumber Oprogramowanie jest narzฤ™dziem programistycznym opartym na zachowaniach. Jest to narzฤ™dzie do automatyzacji funkcji. Jest to funkcjonalnoล›ฤ‡ i wydajnoล›ฤ‡ (Selenium Narzฤ™dzie testowe (Grid).
Wtyczka w Cucumber Narzฤ™dzie testowe dziaล‚a szybciej. Wtyczki sฤ… wolniejsze w porรณwnaniu do Cucumber oraz Selenium. Wtyczki sฤ… wolniejsze niลผ Cucumber.
Cucumber Framework obsล‚uguje rรณwnieลผ inne jฤ™zyki poza Ruby, takie jak: Java, Scala, Groovy, itp. QTP obsล‚uguje tylko VB Script. Selenium wspiera Java, .Net i wiele innych jฤ™zykรณw.
Tworzenie krokรณw automatyzacji jest wspรณlnym wysiล‚kiem testerรณw i programistรณw. In QTP, tylko tester zapisuje kroki automatyzacji. Jak Cucumber, pisanie krokรณw automatyzacji jest wspรณlnym wysiล‚kiem testerรณw i programistรณw.
Cucumber Narzฤ™dzie testowe obsล‚uguje wyล‚ฤ…cznie ล›rodowisko internetowe. Obsล‚uguje aplikacje internetowe, stacjonarne i dowolne aplikacje typu klient-serwer. Obsล‚uguje wyล‚ฤ…cznie ล›rodowisko sieciowe.

Sprawdลบ rรณwnieลผ: - UFT vs Selenium: Rรณลผnica pomiฤ™dzy Selenium oraz HP UFT

FAQ

Tak. Narzฤ™dzia AI mogฤ… tworzyฤ‡ scenariusze Gherkin i definicje krokรณw bezpoล›rednio na podstawie pisemnych wymagaล„. Jednak testerzy powinni sprawdziฤ‡ wygenerowane scenariusze pod kฤ…tem dokล‚adnoล›ci, przypadkรณw skrajnych i peล‚nego pokrycia przed ich uลผyciem.

Nie. Sztuczna inteligencja przyspiesza pisanie scenariuszy i generowanie krokรณw, ale ludzcy testerzy nadal definiujฤ… oczekiwane zachowania, weryfikujฤ… logikฤ™ biznesowฤ… i utrzymujฤ… wspรณล‚pracฤ™ z interesariuszami, co pozostaje kluczowe dla rozwoju sterowanego zachowaniem.

Gherkin jest jฤ™zykiem tekstowym Cucumber Sล‚uลผy do pisania scenariuszy testowych. Wykorzystuje strukturฤ™ Given-When-Then, dziฤ™ki czemu testy sฤ… czytelne zarรณwno dla interesariuszy biznesowych, jak i programistรณw, a jednoczeล›nie wykonalne.

Cucumber to narzฤ™dzie BDD. Koncentruje siฤ™ na zachowaniu systemu opisanym z perspektywy uลผytkownika, w przeciwieล„stwie do TDD, ktรณre koncentruje siฤ™ na pisaniu testรณw kodu na poziomie jednostkowym przed implementacjฤ… kaลผdego maล‚ego fragmentu funkcjonalnoล›ci.

Podsumuj ten post nastฤ™pujฤ…co: