Jeżeli ktoś nie popełnia błędów, to znaczy że nic nie robi.
Q&A
Q&A to skrót od Quality&Assurance czyli testowania. To chyba najbardziej zaniedbany i niezrozumiały etap w całym procesie powstawania stron internetowych.
Jak zazwyczaj wygląda testowanie serwisów www?
Klasyczne testowanie zazwyczaj sprowadza się do tego, że programista lub programiści kontrolują sami siebie, a na końcu dołącza się zabiegany Klient. Wszyscy zakładają, że dołożyli wszelkich starań, by błędów nie było. Te oczywiście są. Dzielą się na dwa typy. Pierwsze to te zgłoszone przez ich przełożonych, usuwają są w trybie “turbo asap”. Drugie to błędy które zgłaszają użytkownicy. Te usuwane są albo i nie. Kiedy zainteresowanie nową stroną opada, wszyscy o błędach zapominają. W efekcie z błędami zmaga się – już samotnie – sam użytkownik, a ten jest bezlitosny, bo błędy zużywają jego czas, energię i pieniądze.
Dlaczego warto testować?
Dobrych odpowiedzi jest co najmniej kilka. Najprostsza z nich to taka, że testuje się bo ludzie popełniają błędy, a Ci którzy je popełnili nie zdają sobie z tego sprawy, bo w przeciwnym razie by ich nie popełnili. Innym argumentem jest argument statystyczny: według badań na każdy 1000 linii kodu przypada średnio 5 błędów – mówimy w tym wypadku o oprogramowaniu komercyjnym. Co ciekawe ta średnia nie zmienia się na przestrzeni lat. Jeżeli te obydwie odpowiedzi wciąż nie przekonują, można dodać trzecią związaną ze współczynnikiem KDB. Im więcej testów, tym współczynnik KDB jest wyższy. Czym jest współczynnik KDB wyjaśnię potem.
Najważniejszym argumentem dla którego warto testować i to bardzo dokładni jest to, że użytkownicy wchodząc w interakcję ze stroną www, de facto – symbolicznie, nieświadomie – wchodzą w interakcję z samą firmą. Błąd na stronie – jakikolwiek by nie był – jest błędem firmy. To nie budzi zaufania i nie pomaga budować marki.
Podsumowując: testując i usuwając błędy walczymy o wizerunek firmy i swój.
Jak testują zawodowcy?
Dla wielu może być sporym zaskoczeniem, że testowanie nie polega na wejściu na stronę www i chaotycznym klikaniem we wszystko co się da, wypatrując bazyliszkowym okiem wszystkich możliwych błędów. To proces i dopiero jako proces dostarcza prawdziwej wartości.
Mówiąc najogólniej: tester najpierw przygotowuje scenariusze do testowania, czyli zestaw zachowań, według których powinien testować stronę. Następnie wszystkie znalezione błędy zgłasza za pomocą wyspecjalizowanego narzędzia, dokładnie opisując każdy z nich, załączając odpowiednie screenshoty, wyniki testów i odwołując się do dokumentacji. Testuje systematycznie, dokładnie i na możliwie największej ilości różnych platform. To żmudny i ciężki proces, wymagający nie tylko oka wrażliwego na szczegóły, ale także wiedzy programistycznej oraz znajomości różnorodnych narzędzi.
Narzędzia, których używają testerzy i nie tylko oni
Wiele z narzędzi testerskich wykorzystywana jest także przez osoby zaangażowane bezpośrednio w projekt. Projekt manager jest jedną z nich. Umiejętność zgłaszania błędów, a tym samym chociażby podstawowa znajomość tych narzędzi zdecydowanie pomaga w pracy. Do przykładowego zestawu, który pomaga testować serwisy www należy zaliczyć:
JMETER
To program do testów wydajnościowych. Symuluje użytkowników. 1-3-30-100 itd. Można zadac mu konkretny scenariusz i sprawdzać szybkość. Program jest napisany w Java.
FIDDLER
Oprogramowanie pozwalające na prowadzenie testów wydajnościowych oraz bezpieczeństwa, jako że deszyfruje HTTPS.
Emulatory przeglądarek
W tym wypadku najczęściej wykorzystuje się virtualbox + kopia systemu operacyjnego + seria przeglądarek. Jednak o wiele wygodniejsze jest korzystanie z systemów do testowania opartych o chmurę. Do takich systemów należy między innymi serwis Browserstack, oferujący testy w ponad 200 przeglądarkach.
Programy graficzne
Testy stron www to w dużej mierze praca na screenshotach oraz krótkich dokumentacyjnych filmikach video. W zależności od preferencji można znaleźć kilka dobrych programów. Z mojego doświadczenia warte uwagi są dwa: Fastone Capture oraz Snaggit.
Debuggowanie
To jedno z podstawowych zadań testera. W tym wypadku przydają się pluginy do konkretnych przeglądarek. Do najpopularniejszych należą FireBug, DevTools, WebDeveloper.
Zgłaszanie błędów
Błędy trzeba gdzieś zgłaszać, po to żeby potem można było sprawdzić czy zostały poprawione. Lista programów, które służą do tego typu zadań jest długa ale do najważniejszych z którymi możesz się spotkać należą: Assembla, BugZilla, FogBugz, HP quality center, JIRA, qTest, Rally.
Strategia testowania
Przez strategie testowania rozumiem sposób podejścia do testowania. Czym innym jest zawarcie w kontrakcie z dostawcą osoby odpowiedzialnej za testowanie, czym innym jest zatrudnienie osoby u siebie, a czym innym zlecenie tego na zewnątrz. Tutaj także mamy co najmniej dwie drogi: zlecić to osobie, zlecić to tłumowi czyli wykorzystać crowdsourcing.
Najmniej znaną metodą jest crowdsscorucing. Nie jest to miejsce na to, by rozpisywać się o tym czym jest crowdsouring, ale jeżeli chciałbyś mieć kilka tysięcy testerów to crowdsourcing jest dla Ciebie. Przykładem serwisu (jednego z wielu) jest chociażby CrowdsourcingTesting.com.
Bardzo ciekawym i uzasadnionym podejściem jest prośba o wskazanie błędów przez samą organizację. Duże firmy mają ogromny potencjał crowdsourcingowy same w sobie. Jeżeli firma ma kilka tysięcy zatrudnionych, to w zamian za niewielkie nagrody można osiągną dwa wartościowe cele. Pierwszy to liczne zgłoszenia błędów. Drugie to zaangażowanie wewnętrznej społeczności w tworzenie i budowanie zewnętrznego wizerunku.