Dobry tester oprogramowania, czyli kto?

Tester oprogramowania to osoba odpowiedzialna za weryfikowanie jakości tworzonej aplikacji – pod kątem poprawności działania, ale także spełniania przyjętych na początku projektu założeń. Odpowiada za poszukiwanie luk, sprawiających, że oprogramowanie nie spełnia oczekiwań finalnego użytkownika. 

Stanowisko testera oprogramowania wymaga łączenia technicznego i nietechnicznego sposobu myślenia. Jego podstawowym celem jest wykazanie błędów i braków w aplikacji, które należy naprawić lub wdrożyć, by dostarczyć maksymalnie dopracowane oprogramowanie. Odgrywa integralną rolę w zapewnianiu jakości, tworząc zdefiniowane oczekiwania wobec aplikacji, a następnie testuje ją, by sprawdzić, czy są spełnione. Odpowiada za zapewnienie płynnej wydajności i doskonałego doświadczenia użytkownika w kontakcie z oprogramowaniem. Rola testera jest nie tylko kluczowa w procesie projektowym, ale także niezwykle wymagająca. Co zrobić by się do niej przygotować? Jakie kompetencje kształtować?

Profil dobrego testera oprogramowania

Trudno o jednoznaczne zdefiniowanie “dobrego testera’’ – o tym, czy tester sprawdza się w wykonywanych zadaniach, stanowią okoliczności, w których są one realizowane i poziom zaspokajania przez niego potrzeb organizacji. W zależności od specyfiki firmy oraz tworzonego oprogramowania oczekiwania wobec testera są różne. Można jednak wskazać niezbędne kompetencje i umiejętności, które warto kształtować planując pracę na tym stanowisku. 

Kompetencje testera oprogramowania

Zacznijmy od umiejętności, które powinien posiadać tester oprogramowania. To przede wszystkim kompetencje twarde, wśród których należy wskazać: 

  • programowanie – Tester powinien czytać ze zrozumieniem kod i wykazywać wysoki poziom zrozumienia  używanych języków programowania. Trzeba jednak tutaj dodać, że testerzy manualni często nie mają wglądu w kodu źródłowy aplikacji i wtedy ta umiejętność nie jest potrzebna. Jednak coraz częściej testerzy oprogramowania schodzą do poziomu kodu i tam wykonują swoją pracę. 
  • wiedzę na temat oczekiwań interesariuszy i użytkowników końcowych– tylko ich świadomość pozwoli testerowi stworzyć poprawne i optymalne przypadki testowe, definiując: co ma być testowane i w jaki sposób,
  • znajomość testów – tester musi znać różne typy, poziomy i rodzaje testów – np. wydajności, dymne, regresji itp., a także wiedzieć, kiedy i jak je przeprowadzać oraz określać ich wyniki,
  • znajomość baz danych – większość aplikacji opiera się na przetwarzaniu danych w backendzie, a do zarządzania nimi wykorzystywane są bazy danych. Testując oprogramowanie wysyłasz zapytania do bazy danych – ich znajomość jest więc niezbędna,
  • znajomość narzędzi – zarówno tych do testowania, jak i zarządzania testami – korzystanie z odpowiednich narzędzi może zmniejszyć nakład pracy związany z przechowywaniem przypadków testowych, śledzeniem błędów czy sprawdzaniem wydajności oprogramowania w wielu środowiskach.

Kompetencje twarde to za mało

Praca testera opiera się jednak nie tylko na twardych kompetencjach. Testowanie koncentruje się na rozbieżnościach między oczekiwaniami a rzeczywistością, dlatego wymaga wielu miękkich umiejętności. To niezwykle trudne w obiektywnej ocenie, ale równocześnie niezbędne, predyspozycje do wykonywania pracy na tym stanowisku – są wśród nich:

  • analityczne myślenie wynikowe obejmujące eksplorację, dedukcję, rozwiązywanie problemów i wiele innych. Tego rodzaju zdolności są niezbędne, by decydować czy anomalia jest problemem, jeśli tak – jaka jest jego skala, czy warto wdrożyć jego rozwiązanie oraz jakie ono będzie,
  • zdolności komunikacyjne obejmujące sposób przekazywania informacji tak, by inni je rozumieli,
  • dobra organizacja pracy i czasu przekładająca się na przechowywanie danych w zorganizowany sposób oraz używanie jasnych i zrozumiałych instrukcji podczas tworzenia artefaktów testowych,
  • umiejętności pracy w zespole umożliwiające pracę nie tylko z innymi testerami, ale także programistami,
  • umiejętności przywódcze niezbędne w przypadku testerów odpowiedzialnych za cały zespół testowy.

Niewymierne atrybuty testera

Uzupełnieniem miękkich umiejętności testera oprogramowania powinny być, jeszcze trudniejsze w obiektywnej ocenie, atrybuty. To cechy osobowościowe, o bardzo subiektywnym wymiarze. Dobry tester posiada:

  • zdolność szybkiego uczenia się – musi szybko przystosowywać się do zmieniających się technologii i projektów,  
  • elastyczność –  istotną w radzeniu sobie z różnymi projektami,
  • wielozadaniowość,
  • ciekawość – odgrywa ważną rolę w znajdowaniu błędów, które mogą pozostać niewykryte podczas korzystania z konwencjonalnych metod – np. w testach eksploracyjnych,
  • umiejętność rozwiązywania problemów,
  • zorientowanie na szczegół i ogół – tester musi skupić się na niuansach, nie tracąc przy tym z oczu ogólnego celu.

Wiedza testera oprogramowania

Ostatnia grupa kryteriów, stosowanych do definiowania i de facto oceny pracy testera oprogramowania, to wiedza. Czynnik ten jest zdecydowanie łatwiejszy do weryfikacji niż kompetencje miękkie czy atrybuty, ale bardzo szybko dezaktualizuje się z uwagi na specyfikę branży IT. Zwykle od testerów oczekuje się:  

  • wiedzy dziedzinowej dotyczącej charakteru działalności biznesowej obsługiwanej przez testowane oprogramowanie,
  • wiedzy o środowisku technicznym, która zawiera znajomość wszystkiego tyczącego się aplikacji – od systemu operacyjnego po narzędzie automatyzacji,
  • wiedzy założonej, rozumianej jako wiedza oczywista, której oczekuje się od testerów – np. obsługa komputera, znajomość programów Microsoft Office itp.

Tester oprogramowania – jeden czynnik to za mało

Planując pracę na stanowisku testera oprogramowania spójrz na wskazane cechy kompleksowo. Dobry tester to osoba, która łączy odpowiednie, dla danego stanowiska pracy, projektów i środowiska organizacji, proporcje atrybutów, umiejętności i wiedzy. Kompetencje twarde nie wystarczą, jeśli nie potrafisz spojrzeć na defekt z perspektywy szczegółu i ogółu, oceniając w ten sposób wagę problemu dla całości projektu oraz przewidując efekt domina. Tylko synergia umiejętności, wiedzy i atrybutów prowadzi do osiągnięcia cech istotnych w pracy testera oprogramowania. Pamiętaj, że testowanie to nie tylko ocena jakości oprogramowania. To określenie luk pomiędzy tym, czego oczekuje finalny użytkownik, a tym, co zapewnia oprogramowanie. 

Notatka o autorze:

Zajmuję się testowaniem, zabezpieczaniem i zapewnianiem jakości oprogramowania od ponad 13 lat. Rozpocząłem swoją karierę od testów manualnych i analizy biznesowo-technicznej. Obecnie prowadzę firmę Quality Island, która zajmuje się szeroko pojętym testowaniem oprogramowania oraz szkoleniami dla przyszłych i obecnych testerów oprogramowania. Moją specjalnością są testy automatyczne aplikacji webowych oraz budowa procesów automatyzacji i robotyzacji. Od 8 lat prowadzę aktywnie szkolenia oraz konsultacje z tych tematów i wykonuję zlecenia dla firm trzecich jako konsultant, ekspert oraz audytor. Współpracuję również z firmami jako osoba do rekrutacji i weryfikacji technicznych. Interesują mnie głównie tematy związane z architekturą IT oraz zagadnienia DevOps/TestOps, ponieważ ściśle wiążą się z zapewnianiem jakości oprogramowania.

 

Tomasz Stelmach

CEO&Founder

 

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *