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.
0 komentarzy