Kim jest tester oprogramowania?

Maciej Kirkicki Starszy Konsultant, PwC Polska 25/04/18

Oprogramowanie to twór abstrakcyjny, w związku z czym jego wdrażanie nie do końca przekłada się na wypracowane przez lata podejścia stosowane chociażby w budownictwie

Sprawdzenie takiego złożonego tworu bardzo szybko pokazuje, jak wiele w nim newralgicznych punktów i jak łatwo o nieprzewidziane usterki - najlepiej opisuje to następująca anegdota: "oprogramowanie to taki twór, gdzie pomalowanie drzwi w garażu może nam zawalić sufit w salonie".

We wcześniejszych latach (a często również i teraz) na wiadomość o błędzie, typową odpowiedzią twórców oprogramowania było: "przecież u mnie działa" albo "to powinno przecież funkcjonować tak, jak zaplanowaliśmy". Z tego właśnie powodu narodził się zawód testera oprogramowania.

 

Kim więc jest tester oprogramowania?

Odpowiedź na to pytanie jest dosyć złożona, bo samo testowanie ma wiele aspektów. Potocznie testera określa się mianem "klikacza" lub "psują", ponieważ powszechna jest opinia, że praca taka sprowadza się do klikania w interfejs aplikacji w celu jej „zepsucia”. Nie jest to jednak do końca prawdziwy obraz - rolą testera jest określenie poziomu ryzyka z jakim wiąże się wdrożenie oprogramowania i przekazanie tej informacji wyżej, żeby podjęta została świadoma decyzja o tym czy produkt jest gotowy na dopuszczenie go do użytkowania. 

 

Dzisiaj tester to osoba, która jest ogniwem łączącym twórców oprogramowania z jego końcowymi odbiorcami. 

W dobrze zorganizowanym projekcie ma on wpływ na kształt dokumentacji, zanim jeszcze programiści zaczną swoją pracę, ponieważ wskaże wszelkie dwuznaczności, przyczyniając się do zmniejszenia ryzyka strat po wdrożeniu.

Prozaicznym przykładem może być następujące wymaganie: "system powinien zaokrąglać wyniki obliczeń z dokładnością do dwóch miejsc po przecinku". Tester zaangażowany w projekt od razu podniesie rękę i zapyta: "ale jak zaokrąglamy? W górę czy w dół?". Okazuje się, że tak niepozorne stwierdzenie może mieć daleko idące konsekwencje, jeśli przykładowo wdrażamy system księgujący przychody, który zaokrągla je nie w tę stronę, w którą nakazują nam przepisy.

Na etapie programowania i wprowadzania nowych funkcjonalności systemu, tester zajmuje się weryfikacją czy działają one zgodnie z założeniami i na tej podstawie tworzy raporty informujące o stanie aplikacji. 

W dzisiejszych czasach poziom informatyzacji przedsiębiorstw jest już na tyle wysoki, że częściej mamy do czynienia z rozbudową istniejącego systemu, niż z tworzeniem całkowicie nowego bytu.

Wracając do analogii z malowaniem drzwi garażu - tester w przypadku takiego rozbudowywanego systemu upewni się, że po pomalowaniu drzwi, salon jeszcze stoi (czyli wykona testy potwierdzające, że stara funkcjonalność nadal działa). Nazywamy to testami regresji.

Kroki wykonywane przez testera regresji są powtarzalne, a stąd już blisko do automatyzacji testów. Znając doskonale funkcjonalność i wiedząc, jakie wyniki dana aktywność powinna przynieść, tester napisze program, który bez ingerencji człowieka będzie w stanie powtórzyć dany test. Przy dużej ilości powtarzalnych testów regresji, automatyzacja prowadzi do znacznych oszczędności, zwłaszcza czasu niezbędnego na weryfikację czy system działa.

Widać tutaj, że tester oprogramowania to „osoba ubierająca buty” zarówno zespołu tworzącego oprogramowanie, jak i końcowego użytkownika tego oprogramowania, utożsamiająca się z produktem i znająca jego znaczenie. Kiedy zweryfikuje poprawne działanie testowanego systemu, sprawdzi jak wyglądają niefunkcjonalne cechy tego produktu, to znaczy: 

  • ergonomiczność interfejsu użytkownika
  • czy szybkość działania systemu pozwala na swobodną pracę na przykład stu użytkowników jednocześnie
  • odporność systemu na nietypowe zachowania (na przykład wpisanie wyjątkowo długiego nazwiska)
  • zapewnienie przez system minimum bezpieczeństwa (czy weryfikuje poprawnie hasła, czy zabezpiecza je przed nieautoryzowanym pozyskaniem danych itd.)

Po sprawdzeniu powyższych cech, tester zaraportuje wyniki, co pozwoli ocenić czy system działa w sposób satysfakcjonujący i czy można przejść do etapu końcowego wdrożenia. 

Wszystkie te czynności - sam proces testowania, jak i raportowania oraz przeprowadzania testów, powiązane są również z używaniem narzędzi wspomagających, co daje bardzo duże pole do rozwoju ze względu na szeroki i zróżnicowany wachlarz narzędzi: od prostych aplikacji typu "nagraj i odtwórz", po pełne kombajny programistyczne, które pozwalają pisać zautomatyzowane skrypty weryfikujące działanie aplikacji. 
 

Jak widać bycie testerem oprogramowania to nie tylko monotonne powtarzanie sekwencji czynności.

To uczestnictwo i bycie częścią skomplikowanego procesu wdrażania oprogramowania, wiążące się z dużą odpowiedzialnością. Tester nie tylko powinien posiadać rozległą wiedzę z zakresu technologii informacyjnych w celu wykorzystania jej w procesie weryfikacji poprawnego działania systemów, ale również dogłębnie zapoznać się z dziedziną, w której tworzony system ma później funkcjonować. Niezbędna jest więc znajomość przepisów, zrozumienie domeny i zaznajomienie się z produktami konkurencyjnymi, celem sprawdzenia jak nasze rozwiązanie wypada na ich tle. Praca testera wymaga ciągłego dokształcania się i podążania za trendami i nowymi technikami, aby zwiększyć swoją efektywność i "zajrzeć pod maskę" testowanego produktu. Dociekliwość i pęd ku wiedzy są cechą powszechną wśród ludzi wykonujących ten zawód, co czyni go jeszcze bardziej interesującym.

 

Skontaktuj się z nami

Monika Kaczyńska

Monika Kaczyńska

Dyrektor, PwC Polska

Tel.: +48 572 729 509

Obserwuj nas