Zawody IT - Tester Oprogramowania

W 1958 roku powstał pierwszy na świecie zespół testerski, pracujący przy projekcie lotów kosmicznych Mercury. Od tamtego czasu rola i znaczenie testera oprogramowania znacznie wzrosły, a sam zawód zyskał na prestiżu.

Jakiś czas temu zrozumiano, że taniej jest zapobiegać błędom niż je usuwać z już sprzedawanego oprogramowania. To sprawiło, że rola testera zyskała na znaczeniu, chociaż nie zawsze tak było. Jeszcze w połowie lat 50-tych testowanie traktowano jako debugowanie, dopiero w kolejnych latach zaczęto rozróżniać te czynności jako dwie różne. Na przełomie lat 70-tych i 80-tych XXwieku testerzy skupiali się na znajdowaniu błędów, ale już od około 1983 roku zaczęto stawiać na mierzenie jakości oprogramowania. Obecnie testowanie to przede wszystkim zapobieganie powstawaniu błędów. Testerzy nie są już traktowani po macoszemu, pracują w zespołach, które pełnią istotną rolę w procesie tworzenia nowego oprogramowania, a do tego mogą liczyć na coraz lepsze wynagrodzenie. Według raportu płacowego Sedlak & Sedlak tester oprogramowania zarabia średnio 5200 zł brutto miesięcznie, chociaż wysokość wynagrodzenia zależy od różnych czynników, jak wielkość firmy, staż pracy, region zatrudnienia itd.

Kto może zostać testerem oprogramowania?

Najogólniej można odpowiedzieć, że każdy. O kwestii wykształcenia osób pracujących w IT pisaliśmy już w artykule „Czy programista potrzebuje studiów?”. Tester oprogramowania jest właśnie tym zawodem, w którym studia informatyczne mogą się przydać, ale nie są obowiązkowe. Wiele osób, które pracują na tym stanowisku, to hobbyści i samouki, niektórzy z nich nie skończyli nawet studiów o charakterze technicznym. Warto jednak dodać, że coraz więcej uczelni otwiera również studia podyplomowe o kierunku „Tester oprogramowania” (np. Instytut Informatyki i Matematyki Komputerowej Uniwersytetu Jagiellońskiego lub Wyższa Szkoła Informatyki i Zarządzania Copernicus we Wrocławiu).

Ważniejsze jednak od wykształcenia są umiejętności i predyspozycje testera oprogramowania. Oczywiście konieczna jest wiedza techniczna, ale nie oznacza to, że trzeba ją zdobyć na uczelni. Na pewno przyda się znajomość takich zagadnień, jak na przykład języki skryptowe i powłoki systemowe, SQL, narzędzia wspomagające proces integracji i testowania, podstawy programowania itp. Ważne, żeby nieustannie poszerzać swoją wiedzę. Warto także brać udział w szkoleniach dla testerów i zdobywać certyfikaty, na przykład ISTQB. To jednak nie wszystko. Dobry tester oprogramowania powinien posiadać również odpowiednie umiejętności miękkie, jak komunikatywność, dokładność, konstruktywna krytyka, klarowność w przekazywaniu informacji o błędach, cierpliwość i dociekliwość. Przydaje się także dobra znajomość języka angielskiego.

Na czym polega praca testera?

Testowanie jest procesem złożonym, w którym można wyróżnić różne poziomy odpowiadające poszczególnym fazom tworzenia oprogramowania. Tak naprawdę jest to szersze spojrzenie na aplikację, biorące pod uwagę różne aspekty, od przeznaczenia i funkcjonalności po zagadnienia techniczne. W rzeczywistości tester może podchodzić do sprawdzania oprogramowania w różny sposób – przeprowadza testy funkcjonalne lub strukturalne. W pierwszym wariancie spogląda na aplikację jak typowy użytkownik, wykonując określone zadania bez wgłębiania się w szczegóły techniczne (testy czarnej skrzynki – black box testing). W przypadku testów strukturalnych, konieczny jest wgląd do kodu danego programu i analiza, jak zachowują się poszczególne części aplikacji i jakie wykorzystywane są przy tym biblioteki (testy białej skrzynki – white box testing).

Niektóre testy wykonywane są ręcznie, inne można zautomatyzować. O ile jednak wykonanie testów jednostkowych nie jest skomplikowane i pozwala użyć prostych narzędzi, o tyle automatyzacja black box testing wymaga bardziej specjalistycznego oprogramowania oraz przygotowania przez testera odpowiednich skryptów. Same testy mogą być przeprowadzane na różnym poziomie i mogą obejmować zróżnicowany zakres. Najprostsze są testy jednostkowe (sprawdzanie pojedynczych funkcji), do bardziej zaawansowanych zalicza się natomiast testy integracyjne (badania współpracy różnych komponentów) oraz systemowe (działanie całej aplikacji). Oczywiście każdy z przeprowadzanych testów może mieć inne przeznaczenie, na przykład regresyjne pozwalają sprawdzić, jak zachowuje się aplikacja po dodaniu nowych funkcjonalności. Poza tym tester opracowuje również dokumentację testową i raportuje błędy.

W ostatnich latach coraz większe znaczenie w rozwoju oprogramowania odgrywa jakość, co sprawia, że wzrasta również rola testera w cyklu tworzenia aplikacji. Oznacza to również, że zwiększa się zapotrzebowanie na pracowników wykonujących profesjonalne testy. W tym kontekście można z całym przekonaniem stwierdzić, że tester oprogramowania jest zawodem perspektywicznym.