Behat najlepszym scenariuszem dla testów oprogramowania

behat

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.

Zobacz również artykuły o podobnej tematyce

Podsumowanie Q3 2017 w i-systems
wolczanka

Lipiec, sierpień, wrzesień już za nami. Przyszedł więc czas na kolejne podsumowanie, tym razem trzeciego kwartału 2017 roku w i-systems....

Lokalne środowisko z użyciem Vagranta
1

W jednym z poprzednich artykułów mój imiennik, czyli Łukasz wspominał jak uprościć sobie pracę z wirtualnymi hostami. Ja zaprezentuję kolejny...

Drużyna i-systems
jim_blog

Na początku i-systems tworzyło tylko dwóch pracowników. Dziś firma to zgrany i silny zespół niemal 100 specjalistów z branży e-commerce, którzy...

Zobacz więcej wpisów