Automatyczne testy funkcjonalne w e-commerce

poprzednim artykule uchyliłem rąbka tajemnicy na temat jednego z narzędzi, jakimi posługujemy się podczas codziennej pracy w zapewnianiu jakości dla aplikacji e-commerce, czyli o wzorcach testów Q-Patterns. Tym razem, zajmę się automatycznymi testami funkcjonalnymi.

Specyfika systemów e-commerce

Rozbudowane systemy e-commerce bywają w obecnych czasach bardzo skomplikowane. To, co widać „na zewnątrz”, czyli katalog, koszyk, proces check-out, to zwykle tylko wierzchołek góry lodowej. Do tego dochodzi panel administracyjny, integracja z zewnętrznymi systemami informatycznymi przedsiębiorstwa (np. Order Management System, Warehouse Management System, Product Information Management, czy CRM) i usługami zewnętrznymi (systemy dostawców, bramka płatności, porównywarki cen itp.). Zaawansowane technologicznie i merytorycznie oprogramowanie, w tym także olbrzymia sieć zależności i przepływów danych pomiędzy różnymi pod-systemami, wymaga bardzo dużej uwagi podczas weryfikacji prawidłowości pracy takiego organizmu.

Wyzwania podczas testowania e-commerce

Krytyczność biznesowa

Po pierwsze, systemy e-commerce zarabiają pieniądze, czasem bardzo duże. Godzina niedziałania takiego systemu może oznaczać utracony przychód liczony w dziesiątkach, a nawet setkach tysięcy złotych. Nie można sobie pozwolić, aby po wprowadzeniu choćby najmniejszych zmian, nie wykonać najbardziej podstawowych testów – m.in. czy katalog produktów działa, czy produkty są znajdowane w wyszukiwarce, czy ceny i informacje o dostępności są prawidłowe, czy można się zalogować, czy można złożyć zamówienie itp.

Różnice funkcjonalne

Duża ilość skomplikowanych funkcjonalności dostępnych w aplikacji e-commerce, wymaga zaprojektowania niezliczonej liczby przypadków i scenariuszy testowych. Zwykle nie wystarczy wykorzystanie wcześniej tworzonych i rozwijanych Q-Patterns, ponieważ choć skupiają one dobre praktyki testowe, nie mogą odzwierciedlić specyfiki każdego projektu, w którym zawsze specyfika danego biznesu znajduje swoje odzwierciedlenie (np. specyfika asortymentu, różny sposób i zakres integracji z systemami wewnętrznymi). Q-Patterns mogą być zatem tylko podstawą do szybkiego przygotowania scenariuszy do każdego indywidualnego projektu. W konsekwencji jednak dla każdego projektu de-facto należy utrzymywać oddzielną dokumentację scenariuszy testowych.

Środowisko testowe i integralność danych testowych

Aby wykonać dany przypadek testowy, wymagane jest nie tylko utrzymywanie środowiska testowego w określonej konfiguracji, maksymalnie zbliżonej do instalacji produkcyjnej, ale także odpowiednia zawartość bazy danych systemu tak, aby zachować niezbędne relacje między obiektami merytorycznymi, potrzebne do wykonania danego testu. Sytuacja, w której tester poświęca niejednokrotnie kilkanaście minut zakładając np. dokumenty pośrednie, zanim uzyska wynik pozwalający na wykonanie właściwego przypadku testowego, jest bardzo niepożądana.

 

Z pomocą przychodzi automatyzacja testów

Testy automatyczne to mechanizmy (a w zasadzie drobne oprogramowanie), wytworzone przez naszych inżynierów testów, które symulują ludzkie działania w systemie e-commerce, np. dodanie produktu do koszyka, a następnie zmiana liczby zamawianych produktów. Automatyczny test symuluje zatem odpowiednie działania użytkownika (klienta lub operatora), wcześniej zaprogramowane, w ściśle określonej kolejności, a jeżeli jest taka potrzeba – robi to cyklicznie (np. gdy trzeba sprawdzić wydajność danego mechanizmu).

Do tworzenia i uruchamiania testów automatycznych wykorzystujemy narzędzia takie jak Selenium. Przedstawiam zatem krótki filmik instruktażowy, który prezentuje sposób pracy z narzędziem na przykładzie wdrożonego przez nas sklepu B2C.

Podobało się? Mam nadzieję, że tak :)

Po co zatem testerzy?

Skoro potrafimy tworzyć automatyczne testy funkcjonalne, to można by spytać, po co jeszcze dodatkowo potrzebni są testerzy? Otóż, narzędzia, jakimi się posługujemy, to nie jest panaceum na wszystkie problemy w procesie testowania.

Otóż, nie zawsze da się albo opłaca się pisać test automatyczny. Nic nie zastąpi intuicji doświadczonego testera przy testowaniu bardziej skomplikowanych scenariuszy. Automatyzację testów warto stosować przede wszystkim do wykonywania przypadków testowych często powtarzanych, czyli tych krytycznych z punktu widzenia poprawności działania systemu, np. tworzenie nowych kont użytkowników, logowanie użytkowników do systemu, dodawanie towarów do koszyka, czy składanie zamówienia itp.

My wykorzystujemy narzędzia testów automatycznych głównie w procesie ciągłej integracji wdrożonych już systemów. Dzięki nim, po każdej zmianie wprowadzonej w systemie e-commerce uruchamiane są automatyczne testy, które weryfikują poprawne działanie systemu. Jeżeli zatem zapala się zielone światło – można publikować nową wersję na serwerach produkcyjnych.

Bez wątpienia, ogromną zaletą testów automatycznych jest to, iż dla raz napisanego testu można go łatwo powielać w różnych wersjach, np. z różnymi danymi wejściowymi, czy innym przebiegiem. Zaletą jest także to, że operacje testowania można wykonać poza normalnymi godzinami pracy, bez angażowania członków zespołu testowego.

A jakie są Wasze doświadczenia z testami automatycznymi?

Autor tekstu: Rafał Rękosiewicz

Tagi: , , , , ,

O Autorze

Redakcja

Back to Top