Testowanie cyfrowych produktów przyjmuje wiele form, dlatego jako tester możesz obrać różne różne kierunki swojego rozwoju. Jeśli poznasz je na początku swojej testerskiej drogi, łatwiej będzie Ci zaplanować swoją dalszą karierę. Od kiedy Natalia Pawlak, QA Team Leader w Slideworx, opublikowała swój artykuł ,,Od testera do… czyli możliwe ścieżki kariery’’ w czerwcu 2018 roku, wiele się zmieniło. W międzyczasie Polska wygrała drugi raz z rzędu Eurowizję Junior, dostajemy netflixowego Wiedźmina i wszyscy nucimy ,,Grosza daj testerowi wiedźminowi”,  a 5 października 2021 roku świat się na chwile zatrzymuje podczas globalnej awarii Facebooka. Te trzy lata były bardzo obfite w różnego rodzaju wydarzenia. Czy ten okres był równie dynamiczny w testingu?

Rozwój branży testowania oprogramowania

Przeanalizujmy dane z raportów firmy Bulldogjob z ostatnich dwóch lat. Raport z 2020 roku podaje, że około 10% osób zadeklarowało pracę na stanowisku QA/ Tester. W 2021 ta liczb wzrosła już do 18%. Ten skok o 8 punktów procentowych pokazuje, że nasza testerska brać ma się bardzo dobrze - społeczność osób odpowiedzialnych za jakość produktów cyfrowych nie tylko rośnie, ale także rozwija się, co można zauważyć po licznych wydarzeniach, które skupione są wokół testowania oprogramowania.

Jak wyglądał rozwój branży? Testowanie oprogramowania miało swoje początki blisko dwie dekady temu. Początkowo, nie istniało jako samodzielna gałąź IT. Testowanie było traktowanie po macoszemu, ale nie ma co się temu dziwić – uznawane było za monotonną, powtarzalną pracę. Dopiero z czasem ewoluowało, żeby dzisiaj ustabilizować się na mocnej i istotnej pozycji wśród procesów związanych z tworzeniem oprogramowania.

Tester powinien się stale rozwijać

Obecnie wiemy, że koszty ponoszone w wyniku pojawienia się błędów są bardzo wysokie – dużo wyższe niż koszty ponoszone za egzekucję i utrzymanie testów. Wizerunek marki i zaufanie użytkowników jest bezcenne więc rezygnacja z testów to ogromne ryzyko, dlatego stosowanie solidnych procedur QA stało się nieodzownym elementem każdego przedsięwzięcia. Mimo tego, że projekty są różne, testerzy stale się dostosowują (i uczą!), aby sprostać szybko zmieniającym się potrzebom biznesu oraz narzuconym metodologiom. 

Działania na rzecz self-developmentu, które podejmują testerzy to między innymi: 

  • Ciągłe zdobywanie wiedzy o różnorodnych rozwiązaniach, procesach, narzędziach, metodach.
     
  • Wykorzystywanie zdobytej wiedzy i łączenie specjalistycznej wiedzy branżowej i wiedzy właściwej dla danej dziedziny – przeplatanie wiedzy ogólnej i tej z konkretnego sektora.
     
  • Zdobywanie rozległych kompetencji z różnych obszarów testowania – wiedza na czym polegają zadania menedżera testów a jakie obowiązki należą do inżyniera testów pozwala łatwiej zrozumieć jak przebiega praca w projekcie.
     
  • Doskonalenie procedur, uczestniczenie w szkoleniach i w mentoringu – to ostatnie jest szczególnie ważne na początku pracy jako tester. Mentor pomoże Ci w Twoim rozwoju i nakieruje na odpowiednie materiały.

Typowe stanowiska pracy dla testerów oprogramowania

Stanowisk związanych z testowaniem jest wiele i nie wszystkie odnajdziemy w ramach jednej organizacji. Te najbardziej popularne to:

  • Specjalista ds. testowania, tester oprogramowania – przeprowadza testy oraz weryfikuje błędy tworzonego oprogramowania. Raportuje wyniki testów, zarządza zgłoszonymi incydentami  współpracuje z działem programistów.
  • Specjalista ds. automatyzacji testów - ma podobny zakres obowiązków, natomiast dotyczą one testów stricte automatycznych. Wspomaga automatyzacje i opracowuje strategię automatyzacji, wybiera najlepsze narzędzia. 
  • Architekt testów – to ktoś to projektuje architekturę testów i obejmuje nadzór nad opracowywaniem testów. Słownik SJSI podaje taką definicję : ,,osoba, która definiuje sposób, w jaki testy są tworzone dla danego systemu, łącznie z takimi zagadnieniami jak narzędzia testowe i zarządzanie danymi testowymi”. 
  • Kierownik zespołu testerskiego - ponosi odpowiedzialność za pracę zespołu testowego. Kontroluje budżet przeznaczonego na realizację zleconych testów. Zgłasza ryzyka problemów w strukturze projektowej i organizacyjnej do przełożonego i udział w szukaniu dla nich rozwiązań. Analizuje wyniki i je raportuje.  Kierownik zespołu często jest nazywany też menedżerem testów.  Menedżerowie również zajmują się planowaniem, estymacją i kontrolą testów. Zbierają wymagania dotyczące testów i koordynuje pracą w projektach..
  • Konsulat testowy – to osoba, która omawia potrzeby zewnętrznego klienta i prezentuje gotowe rozwiązania na potrzeby danej firmy. Usługi są niezależne, konsultanci to zazwyczaj osoby o dużym doświadczeniu z różnych obszarów testowania. Konsultant doradza gotowe rozwiązania, ale może również pilotować wprowadzanie ich w życie organizacji.

Widzimy, że wiele obowiązków jest podobne dla różnych stanowisk.. Często nazwy stanowisk to tylko nomenklatura, zarówno kierownik zespołu testerskiego, jak i menedżer będą odpowiedzialni za raportowanie – najważniejszy jest zakres obowiązków i świadomość tego, które stanowisko odpowiada nam ze swoimi codziennymi zadaniami najbardziej. Czy dobrze odnajdujemy się zarządzając zespołem? Czy będziemy umieli ich zmotywować? A może jesteśmy bardziej zadaniowi i z chęcią wykonamy zadania zlecone przez kogoś innego?

Firma Bulldogjob w swoim raporcie zadała ankietowanym testerom pytanie ,,Gdzie widzisz się za kilka lat?”. 52% ankietowanych odpowiedziało, że widzi się dalej w roli testera lub managera testów. Drugi najwyższy wynik – 20% ankietowanych – to odpowiedź ,,będę programistą lub team leaderem” .

Wynika, z tego, że duża część testerów w przyszłości widzi się po drugiej stronie barykady. Testerzy, którzy ściśle współpracują z programistami w przyszłości świetnie sobie poradzą w roli developerów, ze względu na to, że mają punkt widzenia z obu perspektyw - programistycznej i testerskiej. Taki punkt widzenia na pewno ułatwi komunikację w projekcie. Większość z nas jednak zostanie w testerskim ogródku. Przyda się solidne, praktyczne doświadczenie zdobyte w różnorodnych projektach.

Kluczowe umiejętności dla testera oprogramowania

Umiejętności, jakimi powinien wykazywać się dobry tester oprogramowania to mieszanka kompetencji z zakresu consultingu, zarządzania, planowania, obsługi środowisk testowych, zarządzania danymi oraz defektami, umiejętność porównywania i wyboru najbardziej optymalnych narzędzi… uff, sporo tego. Wynika to z tego, że tester może, a nawet powinien, wykorzystywać w swojej karierze wiedzę zarówno dziedzinową, jak i techniczną. Do tego przydadzą mu się umiejętności związane z analityką, procesami wytwórczymi oprogramowania , komunikacją oraz ostatnie – ale równie ważne – kompetencje miękkie. 

W raporcie World Quality Report przedstawiono przegląd umiejętności wymaganych w testowaniu poziom kompetencji w organizacjach. Wynik pokazuje, że skille takie jak umiejętność opracowywania strategii testowych, wirtualizacji środowisk i prowadzenia testów niefunkcjonalnych (m.in. wydajności i bezpieczeństwa) będą zyskiwać na znaczeniu.

Inne kompetencje, które również uwzględniono w raporcie i które warto posiadać:

  • przygotowanie zestawów danych testowych
  • znajomość procesów biznesowych
  • monitorowanie jakości produkcji
  • łączenie roli testera i programisty
  • automatyzacja testów funkcjonalnych
  • programowanie i kodowanie
  • testowanie niefunkcjonalne (wydajność bezpieczeństwa)
  • analiza predyktywna* (analizowanie, albo raczej ‘’przepowiadanie’’ przyszłości na podstawie posiadanych zbiorów informacji, prognozuje się potencjalne zagrożenia, trendy i zachowania na podstawie historycznych danych)

Nie powinniśmy zapominać o umiejętnościach miękkich. Komunikatywność jest kluczem do sukcesu i dobrej współpracy z innymi teamami. Jako tester nie unikniesz rozmów z innymi członkami zespołu. Będziesz współpracować z deweloperami, z klientami oraz z innymi działami w Twojej firmie. 

Nie mniej istotna jest również umiejętności zrozumienia działań użytkownika - to trochę taka umiejętność łącząca intuicję i przewidywanie. Twoim zadaniem będzie wcielić się w potencjalnego użytkownika i odwzorowywać jego zachowania w aplikacji. 

Przyda Ci się także duża doza cierpliwości i dokładności – w końcu użytkowników jest wielu tak samo jak wiele jest urządzeń i wersji do przetestowania.

QA a tester

Jeśli tylko uruchomimy jakikolwiek portal z ofertami pracy w IT i w wyszukiwarce wpiszemy słowo kluczowe ‘’test’’, pojawią nam się najróżniejsze formy życia albo raczej formy testerów. Poszukiwani są: Test Engineer, Tester Automatyzujący - Inżynier QA, IT Quality Senior Analyst – Test Automation, Młodszy programista testów automatycznych, Software Quality Assurance Tester czy Menedżer Zespołu ds Automatyzacji Testów. 

Choć pracodawcy prześcigają się w jak najbardziej oryginalnych ofertach pracy oraz jak najdłuższych nazwach wakatów, osoba, która zaczyna jako junior może być zagubiona w tej nomenklaturze. Pojawiają się pytania czy QA junior to to samo co młodszy tester manualny, czy powinien aplikować na to stanowisko? Czy pomiędzy QA a Testerem, możemy stawiać znak równości? 

Jeden i drugi w końcu przeprowadza testy. Tyle, że w przypadku Quality Assurance wykonywanie testów nie jest jego głównym zadaniem. Obowiązki QA to szersze spektrum - najważniejsza jest dla niego, obok testów , ogólna jakości oprogramowania oraz optymalizacja procesów wraz z całym cyklem życia oprogramowania. 

Dla QA nie jest najważniejsze tylko jak zepsuć aplikację, ale jak przedstawić klientowi możliwie najlepszy produkt. Dostarczenie produkt najwyżej jakości i skupienie się na aspektach związanych z bezpieczeństwem, stabilnością, zadowoleniem użytkowników – to priorytety. Dla testera oprogramowania ważne jest, aby jego praca skutkowała wypuszczeniem aplikacji z minimalną liczbą błędów. QA będzie chciał oddać produkt wysokiej jakości z dobrze dobranym, płynnym procesem wydawniczym. 

Podsumowanie

Testowanie to około 30-40% cyklu tworzenia oprogramowania. Cieszy nas to, że w porównaniu do początków testingu, testowanie stało się normą a nie niepotrzebną fanaberią. Zapotrzebowanie na testy będzie zawsze – niezależnie, czy wdrażamy nowe technologie, czy ulepszamy istniejący kod. 

Praca testera rozwijała się przez lata, odchodząc od manualnego wykonywania testów na rzecz pisania automatycznych skryptów. Wraz z rozwojem nowych metodyk – na przykład DevOps – testerzy musieli posiąść umiejętności, takie jak pisanie testów jednostkowych czy testowaniem API.

Nowe metody i narzędzia do testowania będą wymuszać potrzebę dalszej nauki wśród testerów – ale to oznacza, że testerzy będą stale potrzebni. Testowanie to dziedzina, która łączy różnorakie umiejętności: biznesowe, techniczne, procesowe, branżowe i miękkie.  Bogata w różne stanowiska i wyzwania – jedynie od nas zależy, którą ścieżkę wybierzemy dla siebie.

 

Źródła:

https://bulldogjob.pl/it-report/2020/tester

World Quality Report

,,Testowanie kodu w praktyce” Renu Rajani