Wyobraźmy sobie następującą sytuację: klient zamawia w firmie X konkretne oprogramowanie, ta z zapałem zabiera się do dzieła zdecydowana pracować bez wytchnienia, by finalnie dowieźć swojemu zleceniodawcy gotową aplikację. Bez przystanków, bez chwili zadumy nad ukończonymi etapami zadania – bez testów. Specjaliści pracujący w firmie doskonale wiedzą, czego oczekuje od nich klient, znają swoje możliwości, dysponują nielichą wiedzą, zatem nie zamierzają tracić czasu na sprawdzanie, czy wszystko działa, jak należy. W końcu klient czeka, a za nim kolejny i kolejny… Co może pójść nie tak? Absolutnie wszystko. Najbardziej prawdopodobnym scenariuszem jest katastrofa rodem z czechosłowackiego serialu ,,Sąsiedzi”: totalny armagedon.
Testujemy, żeby nie stracić
Jeżeli istnieje zawodowy dekalog, którym kieruje się każda firma z branży IT, to jeden z jego pierwszych punktów brzmi następująco: testujemy aplikacje na każdym etapie jej powstawania – od początku prac, aż po ich finał. Czas i siły poświęcone na taką kontrolę to gwarancja, że wychwyciliśmy błędy, które mogłyby sprawić, że system nie zadziała, jak należy, lub nawet okaże się zupełnie bezużyteczny. Takie zaskoczenie byłoby równoznaczne nie tylko ze stratą finansową, ale także katastrofą wizerunkową. Pamiętajmy, że wieści rozchodzą się bardzo szybko – a te najgorsze zwykle biegną w czołówce peletonu. Firma, która oddaje bubel musi się liczyć z zasłużenie czarnym PR-em.
Testy oczywiście wydłużają pracę nad aplikacją. Trzeba się przecież zatrzymać, pomyśleć i w końcu odesłać ludzi do sprawdzania każdej zaimplementowanej funkcji. Można również skorzystać z outsourcing testowania, co jednak wiąże się z dodatkowymi kosztami. Rzecz w tym, by w porę znaleźć i usunąć błędy, które na dalszych mogą mocno utrudnić pracę nad oprogramowaniem lub skazać ją na kompletną klapę.
Testy oprogramowania – tylko dla fachowców
Testowanie nie dotyczy wyłącznie samego oprogramowania, ale również jego użyteczności. Pierwsza z wymienionych kategorii dotyczy kwestii ściśle technicznych, a więc ma na celu sprawdzenie, czy każda z funkcjonalności działa zgodnie z założeniami. W tym miejscu testowane są również takie elementy jak: dokumentacja, kod źródłowy czy też integracja modułów. Testy mogą być przeprowadzane automatycznie lub ręcznie. W pierwszym przypadku obowiązek ten spoczywa na ludziach, w drugim na specjalistycznych narzędziach. W tym miejscu przeprowadzane są testy API sprawdzające komunikację pomiędzy procesami, testy obciążeniowe/wydajnościowe, testy sprawdzające zgodność z panującymi standardami oraz testy jakościowe. Jest to etap prac będący polem do popisu dla prawdziwych specjalistów z branży IT – tęgich głów, które niewiele jest w stanie zaskoczyć, a jeszcze mniej powalić na łopatki.
Testy użyteczności – aplikacja vs. opinia publiczna
Każda aplikacja, niezależnie od swojego przeznaczenia, powinna być przyjazna dla użytkownika. Dlatego w jej testowaniu nie mogą uczestniczyć wyłącznie fachowcy. W związku z powyższym oprogramowanie, które wciąż znajduje się „na warsztacie”, przekazywane jest w ręce osób niezwiązanych ściśle z jego produkcją. Nazwijmy to poligonem doświadczalnym, gdzie w warunkach bojowych sprawdzana jest użyteczność przygotowywanego rozwiązania. W tym miejscu dowiadujemy się, czy aplikacja jest intuicyjna i przede wszystkim, czy użytkownik nie będzie miał problemów z jej obsługą.
Tego typu testowanie zwykle opiera się na obserwacji i analizie zachowań oraz opinii użytkowników z zewnątrz, którzy dostali oprogramowanie na różnych etapach rozwoju. Nie są to jednak ludzie z łapanki. Przed wyborem konkretnych osób należy dokonać dosyć precyzyjnego targetowania na bazie preferencji i zainteresowań konkretnych użytkowników. Chodzi o dobór testerów, którzy mogliby być zainteresowani korzystaniem z konkretnego rozwiązania. Rezultatem testów użyteczności jest szczegółowy raport z uwagami, zastrzeżeniami i propozycjami wysuniętymi przez pierwszych użytkowników.
Podsumowując, testowanie aplikacji mobilnych (i wszystkich innych) ma na celu wykluczenie wystąpienia potencjalnych błędów na każdym etapie powstawania aplikacji. Pominięcie tej procedury to brak profesjonalizmu, a przede wszystkim hazard, na który nie może być miejsca w żadnego typu biznesie.
Łyk wiedzy
Czym są i jak działają aplikacje webowe? Co to jest serwer, serwlet i kontener serwletów? Jak wygląda mechanizm działania aplikacji webowych? Zachęcamy do lektury Samouczka programisty.