Blog Intellect

Jak testować serwisy i aplikacje internetowe?

Jeśli chcecie zadbać o jakość realizowanych dla was rozwiązań internetowych – wszelkich serwisów WWW, e-sklepów czy innych aplikacji webowych – poza troską o unikalny design i nowoczesne technologie, warto również zwrócić uwagę na etap testowania zrealizowanego dla was projektu. Swoją agencję lub software house pytajcie więc, jak testuje swoje produkty i spodziewajcie się od nich konkretnych odpowiedzi. Dziś podpowiadamy, na co zwrócić uwagę na tym etapie prac nad projektem internetowym, aby finalnie cieszyć się najlepszą możliwą jakością oraz uniknąć kosztownych błędów.

Testowanie wszelkiej maści oprogramowania oraz aplikacji internetowych jest bardzo istotnym etapem prac nad projektem, który decyduje o sukcesie całego przedsięwzięcia. Celem testowania jest weryfikacja jakości wykonanej pracy i wskazanie ewentualnych obszarów do poprawy. Gotowy produkt, działający w środowisku produkcyjnym, a więc dostępny publicznie dla użytkownika końcowego, musi działać perfekcyjnie – w przeciwnym wypadku stracimy klientów i narazimy się na odpływ klientów. Dlatego w kosztorysach projektów digitalowych w profesjonalnych agencjach czy software house’ach etap testowania jest zawsze dodatkowo wyceniany i realizowany przez profesjonalny zespół, który – korzystając z odpowiedniego know-how, narzędzi oraz metodologii – wykonuje określony testy oprogramowania w końcowej fazie prac nad produktem lub też w trakcie prac nad jego poszczególnymi częściami. „Wypuszczenie” na rynek nieprzetestowanego rozwiązania jest więc niedopuszczalne, tym bardziej, że nawet najlepsza dokumentacja projektowa i precyzyjna specyfikacja, nie uchronią nas przed bugami, brakami czy niedociągnięciami o różnym charakterze – soft tworzą przecież ludzie, których prace zawsze trzeba kontrolować i weryfikować. Dlatego też testowanie jest etapem obligatoryjnym, na który trzeba poświecić odpowiednio dużo czasu, który w zależności od skali i zakresu projektu, mogę trwać kilka dni lub tygodni.

W zależności od charakteru i celów naszego projektu webowego testowanie powinno skupiać się na jego różnych aspektach, niemniej jednak do najważniejszych rodzajów testów oprogramowania należą:

• Testy w zakresie UI/UX – ten rodzaj testów pozwala zbadać ergonomię i przejrzystość wypracowanego interfejsu oraz wprowadzić odpowiednie modyfikacje, które poprawią użyteczność i konwersję serwisu czy sklepu internetowego. Idealnie jest wykonywać takie testy na samym początku prac koncepcyjnych (na poziomie stworzonego prototypu / makiet funkcjonalnych), a także na samym końcu – na docelowym użytkowniku naszego rozwiązania.

• Testy funkcjonalne – czynności sprawdzające, czy oprogramowanie działa prawidłowo i zgodnie ze specyfikacją. W praktyce tester „przeklikiwuje” się przez kolejne funkcjonalności aplikacji i bada, czy spełnia ona pierwotne założenia i cele oraz czy działa, jak należy. Złożone aplikacje webowe oraz działanie ich kluczowych modułów można także testować w sposób automatyczny – tutaj jednak w grę wchodzą dodatkowe koszty związane z pisaniem i implementacją tego typu narzędzi.

• Testy bezpieczeństwa – istotne są zwłaszcza w projektach, w których przetwarzane są dane osobowe oraz procesowane są zamówienia czy też realizowane płatności online. W ramach tego typu testów sprawdzana jest odporność aplikacji na najpopularniejsze ataki i wirusy internetowe (np. SQL injection – wstrzykiwanie dowolnego kodu do bazy danych przez nieprawidłowo zakodowane formularze HTML).

• Testy integracyjne – jeśli nasz produkt ma komunikować się z zewnętrznymi systemami czy usługami w celu wymiany danych, testy integracyjne są bardzo istotne, bowiem wszelkie integracje z różnymi web services często narażone są na wiele błędów i problemów w zakresie synchronizacji danych między systemami. Tego typu testy powinny być więc realizowane cyklicznie, aby być pewnym ciągłości integracji naszego produktu z zewnętrznym oprogramowaniem.

• Testy obciążeniowe – jeśli nasz produkt przewidziany jest na obsługę dużego ruchu użytkowników (np. sklep internetowy, portal ogłoszeniowo-informacyjny, usługi typu SaaS) warto szczegółowo zbadać wydajność naszej aplikacji. Tego typu testy wykonywane są automatycznie – istnieją różne narzędzia, które symulują określony ruch użytkowników w naszym rozwiązaniu i weryfikuję jego działania w sytuacjach wzmożonego ruchu jednoczesnych użytkowników.

Wybierając firmę wdrożeniową, która będzie realizować nasz produkt warto, jest zbadać, w jaki sposób i w jakim zakresie będzie testowany projekt, a następnie należy podsumować ustalone warunki i zapisać je umowie o współpracy. Po wykonanym przez firmę zewnętrzną testowaniu warto jest poddać przygotowane i sprawdzone rozwiązanie kolejnym testom – realizowanym już przez zespół Product Ownera odpowiedzialnego za stronę biznesową produktu ewentualnie wykonać dodatkowy audyt rozwiązania przez firmy specjalizujące się w testowaniu. Na te potrzeby jest wykorzystać odpowiedni system do zarządzania zgłoszeniami błędów (np. Redmine, Jira, Mantis, Bugzilla) – w projekcie o dużym zakresie, który trwa wiele miesięcy, komunikacja via e-mail po prostu zawodzi. Na sam koniec trzeba z kolei pamiętać o tzw. testach regresyjnych. Ich celem jest weryfikacja, czy nasza aplikacja bądź serwis WWW, działają poprawnie po dokonaniu modyfikacji czy poprawieniu błędu – zdarza się, że wskazany pierwotnie bug został wyeliminowany, ale wprowadzona do systemu zmiana wygenerowała inny błąd, bo wpłynęła na pozostałe funkcjonalności.

Najlepszymi testerami są jednak końcowi użytkownicy i to ich feedback na temat działania naszego produktu jest najcenniejszy, bo zgodny z realnymi oczekiwaniami. Warto więc być otwartym na tego typu zgłoszenia finalnych odbiorców i zachęcać ich do współpracy nad rozwojem i ulepszaniem projektu.