Kariera testera oprogramowania – ścieżki rozwoju i certyfikacja ISTQB (część 1/2)

Jesteś osobą, która rozpoczęła lub myśli o rozpoczęciu swojej zawodowej kariery jako tester oprogramowania? W takim przypadku powinieneś wiedzieć, że kariera testera oprogramowania może obrać różne kierunki. Dobrym rozwiązaniem jest poznać je już na początku i świadomie kierować własnym rozwojem w celu osiągnięcia zakładanego celu. 

Z pomocą przychodzi tutaj certyfikacja ISTQB, która jest najbardziej rozbudowanym systemem kształcenia przyszłych specjalistów w dziedzinie testowania oprogramowania. Podążanie jej ścieżkami nie jest oczywiście jedyną słuszną drogą naszego rozwoju w tym zawodzie. Certyfikaty te są jednak dobrze widziane przez pracodawców i często wymagane w ofertach pracy. Dodatkowo materiały przygotowane dla każdego poziomu certyfikacji i opublikowane w postaci sylabusów, słowników czy przykładowych egzaminów są bardzo przydatnym źródłem wiedzy, szczególnie w kwestii teorii testowania. Pieniądze i zasoby poświęcone na zdobycie certyfikatów mogą okazać się dobrą inwestycją. Warto także zaznaczyć, że w przypadku certyfikacji ISTQB możemy przystępować do samych egzaminów, bez konieczności odbywania akredytowanych szkoleń, co może znacznie obniżyć poniesione koszty. 

Poniższy graf pokazuje ścieżki rozwoju testera według ISTQB:

Certyfikowany Tester Oprogramowania

Dla osób, które rozpoczynają pracę w charakterze testera oprogramowania będzie to zazwyczaj ich pierwsze spotkanie z branżą IT. Przez pierwsze miesiące swojej kariery dowiedzą się jak wygląda tworzenia oprogramowania, jaką rolę pełnią poszczególne osoby zaangażowane w projekt informatyczny oraz oczywiście czym jest i jak przebiega proces testowania oprogramowania. 

Po takim okresie wdrożenia zalecanym jest zdobycie certyfikatu ISTQB poziomu podstawowego (Foundation Level). W założeniu twórców do szkolenia i egzaminu nie powinny przystępować osoby bez doświadczenia komercyjnego. Rekomendowany staż to 6 miesięcy pracy jako młodszy tester oprogramowania. Niestety rynek zweryfikował to wymaganie i aktualnie pracodawcy bardzo często wymagają tego certyfikatu w ofertach pracy już na poziomie juniorskim. Po zdaniu egzaminu ISTQB Foundation Level możemy się poszczycić tytułem certyfikowanego testera oprogramowania. 

Przez kolejne miesiące pracy młodszy tester oprogramowania doskonali umiejętności wykonywania testów oraz projektuje swoje pierwsze przypadki testowe. Praca ta powinna przebiegać pod okiem doświadczonego testera – mentora, który będzie pomagał w naszym rozwoju, wskazywał błędy i pomagał je naprawiać. 

W tym czasie rozpoczyna się także nasza specjalizacja. W dużej będzie to zależeć od projektów i technologii używanych w firmie ponieważ większość naszej wiedzy i umiejętności będzie pochodzić z doświadczenia zdobytego podczas pracy. Możemy wyróżnić kilka podstawowych specjalizacji, którym odpowiadają kolejne certyfikaty ISTQB:

  • testy akceptacyjne (Foundation Level Acceptance Testing)
  • testy wydajnościowe (Foundation Level Performance Testing)
  • testy aplikacji mobilnych (Foundation Level Mobile Application Testing)
  • testy gier (Foundation Level Gambling Industry Testing)
  • test aplikacji dla przemysłu samochodowego (Foundation Level Automotive Software Testing)
  • testy użyteczności (Foundation Level Usability Testing)
  • testy oparte na modelu (Foundation Level Model-Based Testing)

Testy akceptacyjne mają za zadanie ostatecznie sprawdzić w pełni funkcjonalny produkt w środowisku produkcyjnym oraz odpowiedzieć na pytanie czy system jest gotowy do wdrożenia. Tester specjalizujący się w tej dziedzinie musi umieć ocenić oprogramowanie pod względem zgodności z procesami biznesowymi oraz umowami zawartymi z klientem. Ważne może okazać się także dobre rozumienie wszelkiego rodzaju norm, standardów i przepisów prawnych związanych z danym projektem. Testy takie są wykonywane często przez firmy zewnętrzne lub pośredniczące, tak by były one w pełni niezależne.

Testy wydajnościowe sprawdzają jak zachowuje się badany system przy zwiększonym obciążeniu. Są powszechne w przypadku tworzenia aplikacji webowych, przez co mamy do czynienia ze stałym zapotrzebowaniem na specjalistów w tej dziedzinie. Tester wydajności powinien być osobą o dużych umiejętnościach technicznych. Zagadnienia związane z protokołem HTTP, REST i SOAP oraz serwerami webowymi powinny być takiej osobie bardzo dobrze znane. Pomaga także podstawowa umiejętność programowania (preferowane języki skryptowe) oraz znajomość Linuxa. Jeżeli pójdziemy tą ścieżką, będziemy musieli opanować, na wysokim poziomie, obsługę jednego z programów do testów wydajnościowych – najbardziej znane to jMeter, Gatling oraz Load Runner.

Kariera testera - testy wydajnościowe

Testowanie aplikacji mobilnych jest w ostatnich latach bardzo rozpowszechnione. Rynek ten ciągle rośnie i raczej nie zmieni się to w najbliższej przyszłości. Tester specjalizujący się w tej dziedzinie powinien znać bardzo dobrze systemy Android i iOS do tego orientować się w zagadnieniach związanych z technologiami mobilnymi takimi jak komunikacja 3G/LTE, GPS czy NFC. Przydatna będzie również umiejętność pracy z emulatorami urządzeń mobilnych. Należy także pamiętać, że technologie mobilne to nie tylko smartphony z systemem Google czy Apple. Choć niszowe, na rynku wciąż istnieją systemy innych producentów, a do tego mamy stosunkowo nowy rodzaj aplikacji mobilnych, które są tworzone na inteligentne zegarki (smartwatche).

Tester gier może dla wielu osób wydawać się wymarzonym zawodem. Brzmi to jak praca połączona z zabawą. Czy tak jest w rzeczywistości? Niestety, przeważnie nie jest tak przyjemnie. Testowanie takie jest żmudnym procesem, w którym będziemy musieli przechodzić pewne etapy gier po dziesiątki czy setki razy. Będziemy musieli wywoływać wszystkie możliwe błędne sytuacje, a następnie je opisywać i zgłaszać. Bardzo ważna jest tutaj bardzo dobra znajomość języka angielskiego. Do minusów tej ścieżki można jeszcze zaliczyć stosunkowo niskie płace oraz to, że inni pracodawcy często niezbyt poważnie traktują testowanie gier jako wpis w CV.

Testowanie aplikacji dla przemysłu samochodowego może wydawać się niezbyt powszechne w Polsce – kraju, który własnych aut nie produkuje. Nic bardziej mylnego. Wiele zagranicznych firm zleca tworzenie takiego oprogramowania zespołom pracującym w naszym kraju. Rynek ten jest bardzo ciekawy i rozwojowy za sprawą autonomicznych aut, które stają się coraz bardziej popularne. Tester specjalizujący się w tej dziedzinie będzie musiał radzić sobie z pracą z systemami wbudowanymi. Znajomość języków obcych, rynku samochodowego oraz różnego rodzaju norm z nim związanych jest często niezbędna.

Testy użyteczności mają za zadanie stwierdzić w jakim stopniu oprogramowanie jest zrozumiałe dla użytkowników oraz łatwe do przyswojenia i użycia. Ta ścieżka nie będzie raczej naszą główną specjalizacją a tylko dodatkiem. Nie znaczy to jednak, że zdobycie certyfikatu, wiedzy i umiejętności w tej dziedzinie jest czymś niezalecanym. Zagadnienie jest ważne i jego rozumienie pomoże nam w byciu lepszymi testerami oprogramowania. Sytuacja przedstawia się identycznie w przypadku testowania opartego na modelu

Na tym zakończymy część pierwszą artykułu. W drugiej opiszemy dokładniej role dla zawansowanych testerów oprogramowania, takie jak:

  • analityk testów
  • tester automatyzujący
  • pentester (tester bezpieczeństwa)
  • agile Tester
  • manager testów

Do zobaczenia w kolejnej części z serii Kariera Testera Oprogramowania!