Behat najlepszym scenariuszem dla testów oprogramowania

Behat jest narzędziem testowym, które pozwala na stosowanie behaviour-driven development (BDD). Podstawowym założeniem BDD jest poznanie oczekiwań, potrzeb i celów użytkownika, aby w rezultacie wytworzyć oprogramowanie spełniające te wszystkie założenia. BDD powstało z połączenia testów jednostkowych (mających na celu sprawdzenie poprawności działania pojedynczych elementów) i akceptacyjnych (by uzyskać potwierdzenie wytworzenia oprogramowania o odpowiedniej jakości).

BDD jest oparte o tzw. „scenariusze”, opisujące biznesowe potrzeby oprogramowania, co w połączeniu z narzędziem takim jak Behat, pozwala zautomatyzować proces jego implementacji. Testy Behat, stworzone przez Konstantina Kudryashova pisane są w języku PHP, a ich zadaniem jest wsparcie komunikacji, między developerami oraz dowolną personą korzystającą z oprogramowania, w trakcie procesu jego tworzenia.

Testy Behat mogą być przeprowadzane na każdym etapie wdrażania nowego kodu. Pierwszym etapem jest stworzenie pliku feature (cecha) dla danej funkcjonalności, w którym umieszczony zostanie scenariusz. Na feature powinien się składać: prosty, czytelny język, rozszerzenie .feature, korzyści, role i cechy danej funkcjonalności. Przykładowo:

Feature: Moduł pogodowy
By (in order to) otrzymać propozycję produktu dopasowanego do mojej lokalizacji,
jako (as) niezalogowany użytkownik,
muszę (I need to be able to) włączyć udostępnianie swojej lokalizacji na urządzeniu mobilnym.

Przed rozpoczęciem prac nad feature trzeba porozmawiać z interesariuszem biznesowym, ponieważ może chcieć wprowadzić zasady lub warunki odnośnie danej cechy. Posiadając wiedzę na ten temat, można przystąpić do etapu tworzenia treści scenariusza.

Każda cecha może być określona przez jeden lub więcej scenariuszy, które mają wyjaśniać sposób działania funkcjonalności w różnych warunkach. Scenariusze przebiegają według stałego planu, obejmującego opis scenariusza, kontekst, wydarzenie i wynik, oraz pisane są w specjalnym formacie, zwanym Gherkin. Standardowo każdy scenariusz składa się z trzech kroków: Given, When, Then. Dla przykładu, uproszczony scenariusz może wyglądać tak:

Scenariusz: Wyświetl produkty z kolekcji zimowej.

Zakładając (Given), że użytkownik jest w Zakopanem, jeśli (When) temperatura wynosi -1℃, to (Then) wyświetli mu się kurtka puchowa.

Taki scenariusz może zostać dodatkowo urozmaicony o kroki And i But. Analogicznie zdanie powyżej może wyglądać następująco:

Zakładając (Given), użytkownik jest w Zakopanem, jeśli (When) temperatura wynosi -1℃ i (and) pada śnieg, to (Then) wyświetli mu się kurtka puchowa i (and) czapka z pomponem, ale nie (but) strój kąpielowy.

Wyżej wymienione kroki są niczym innym, jak tylko funkcjami PHP stworzonymi ze słowa-klucz, zwyczajnego wyrażenia i funkcji zwrotnej. Komunikat zawarty w scenariuszu będzie każdorazowo traktowany jako krok. Kroki definiują co powinno się stać, gdy któryś z komunikatów zostanie wywołany wewnątrz scenariusza.

W kolejnym etapie, po określeniu feature, scenariusza i kroków, następuje próba wykonania scenariusza jako testu komendą bin/behat, po której otrzymuje się komunikat, że test zakończył się sukcesem bądź niepowodzeniem.

Ten sam scenariusz może być uruchamiany w różnych kontekstach, przez co można testować różne środowiska działania aplikacji.

Behat umożliwia prostą, zrozumiałą i konstruktywną konwersację pomiędzy developerem i interesariuszem, zapisaną w formacie strukturalnym. Dzięki temu, można określić jak powinna wyglądać dana funkcjonalność przed jej implementacją, a co za tym idzie – upewnić się, że ma ona odpowiednią jakość. Behat pozwala również zautomatyzować sprawdzanie jej zachowania przy określonych warunkach. Po wykonanym teście, zakończonym sukcesem, funkcjonalność działa w systemie e-commerce zgodnie z przyjętymi w scenariuszach założeniami.

Dodaj komentarz

Please Login to comment

Zobacz również artykuły o podobnej tematyce

ORI – czy Twój biznes jest gotowy na omnichannel?

Pojęcie omnichannelu znamy już właściwie wszyscy, nie tylko w teorii, ale również w praktyce. Taka synergia wszystkich, wykorzystywanych przez markę...

Efekt ROPO – co może zagwarantować Twojej firmie?

Relacje między marką a klientem zmieniają się bardzo dynamicznie. Współcześnie są one zupełnie inne niż 5, 10, czy 20 lat...

Magia e-commerce, czyli ludzka psychika a wydatki

Żyjemy w czasach, gdzie półki uginają się pod ciężarem wyłożonych na nich towarów, a każdy produkt jest w zasadzie “na...

Zobacz więcej wpisów