Tester oprogramowania

22.02.2018 AUTOR: Radek Borzym

Bugi oraz problemy z wydajnością są jedną z największych zmór trapiących użytkowników komputerów i urządzeń mobilnych. Najczęściej spotykane błędy mogą powodować wśród użytkowników reakcje zaczynające się od dyskomfortu, a kończące się na atakach frustracji i litaniach przekleństw. Czasem jednak konsekwencje źle działającego software mogą być naprawdę bolesne. Dziś przedstawię kim jest tester oprogramowania i dlaczego jego rola jest taka ważna.

Sama myśl o skutkach bugów w oprogramowaniu medycznym może wywołać zimny pot na czole. Obecnie prawie każdy aspekt naszego życia obsługiwany jest przez systemy elektronicznie. Nietrudno więc zauważyć dlaczego bez testerów oprogramowania nie można wyobrazić sobie normalnego funkcjonowania współczesnego świata.

Porządne testy wykonywane są w ścisłej współpracy z deweloperami. Zadaniem testerów jest wykrywanie problemów we wszystkich fazach powstawania i utrzymywania software oraz ich komunikowanie programistom. Dzięki ich skrupulatnej pracy użytkownicy końcowi, deweloperzy i fundujący projekt przedsiębiorcy mogą uniknąć dużej ilości nieprzyjemności. Nim danej firmie bardziej zależy na jakości, tym częściej przeprowadza testy swojego oprogramowania. Testerzy bywają zaangażowani czasem nawet już przy wstępnych etapach planowania produktu. Wcześnie wykrycie problemów pozwoli na  zaoszczędzenie dużych środków, które zostałyby zmarnowane w sytuacji, kiedy fundamentalna wada software zostałaby znaleziona przy późnym etapie prac.

Część osób decyduje się na zostanie testerami oprogramowania widząc w tym możliwość przedostania się do branży IT, a następnie kieruje swoją karierę na inną drogę. Wielu jednak na stałe zostaje bug hunterami.

Jak zostać testerem oprogramowania? 

Umiejętność analitycznego myślenia oraz wykrywania ukrytych defektów software to jedne z najważniejszych cech kandydata, pomagające zostać testerem . Ważna jest także umiejętność sprawnej komunikacji (pisemnej i werbalnej), dzięki której programiści będą mogli zrozumieć, co wymagać będzie poprawy w kolejnych wersjach software’u.

Cierpliwość, koncentracja oraz umiejętność zrozumienia potrzeb użytkownika bardzo ułatwi życie osobom myślącym o karierze w tej branży. Dobry tester IT powinien czerpać przyjemność z wyszukiwania różnorodnych sposobów na popsucie dostarczonego mu oprogramowania.

Ważna jest także umiejętność zrozumienia różnorodności przypadków, w których działać będzie dane oprogramowanie, dzięki czemu żaden błąd nie wymknie się podczas kontroli.

Kandydat zastanawiający się jak zacząć  powinien oczywiście posiadać wiedzę na temat metodologii stosowanej obecnie w branży oraz chęć nauki, która pozwoli na sprawną recepcję zmian. W IT zawsze trzeba być gotowym na dokształcanie,a opcja zostań testerem oprogramowania jest bardzo kusząca. 

Tester oprogramowania – jakie są jego obowiązki?

Zakres obowiązków testera, jak w każdym zawodzie, zależny jest od stanowiska i doświadczenia. Jednym z głównych obowiązków jest przygotowanie planów testów w oparciu o specyfikacje dostarczone przez deweloperów, stworzenie odpowiedniego środowiska, w którym mogą być one prawidłowo przeprowadzane. Każdy przypadek jest inny i wymaga wykorzystania odrębnych metod mających służyć wykryciu bugów. Dlatego też tak ważna jest umiejętność doboru odpowiednich narzędzi, które pozwolą na możliwie szybkie sprawdzenie działania najważniejszych funkcji. Przedtem jednak musi nastąpić priorytetyzacja aspektów software’u, które mają zostać poddane testom. Dzięki niej błędy uniemożliwiające prawidłowe działanie aplikacji są eliminowane w pierwszej kolejności, a na koniec zostawiane są mniej istotne aspekty jak optymalizacja działania programu na rzadziej wykorzystywanych konfiguracjach sprzętowych.

Specjalista wykonuje testy, dokumentując jednocześnie wszystkie wykryte przez siebie błędy. Zbierają dane o wydajności, które pomogą programistom w optymalizacji kodu. Testerzy sugerują, które bugi są najbardziej istotne. Eliminacja tych błędów w pierwszej kolejności najbardziej pomogłaby ulepszyć aplikację.

Po otrzymaniu poprawionej wersji, z której miejmy nadzieję, wyeliminowano poprzednie bugi, testerzy sprawdzają, czy nowe błędy nie pojawiły się w działających wcześniej bezproblemowo fragmentach kodu. Naprawianie jednych problemów często prowadzi do powstawania kolejnych.

Stanowiska dostępne dla testerów oprogramowania 

 

Tester funkcjonalny – Nie ma dostępu do kodu ani nie interesują go techniczne aspekty danego programu. Zamiast tego testuje działanie głównie od strony użytkownika.Obowiązkiem testera jest sprawdzenie, czy aplikacja spełnia wymagania pod względem funkcjonalności i czy jej zachowania odzwierciedlają cele, które postawiono sobie na etapie planowania.

Tester wydajności – Jego zadania polegają na sprawdzeniu, czy program poradzi sobie w ekstremalnych warunkach. Dlatego też doprowadza do przeciążeń, które mogą być spowodowane przez zwykłych użytkowników korzystających z różnych konfiguracji systemu i testuje wpływ tego typu przypadków na wydajność.

Wyspecjalizowany tester – Czasem umiejętności ogólne nie wystarczają. Potrzebny wtedy jest wyspecjalizowany tester, który korzystając ze swojego doświadczenia, sprawdzi funkcjonowanie pojedynczych aspektów danego programu. Wyszukuje błędy, których możliwość zaistnienia nie byłaby wcale taka oczywista dla przeciętnego testera oprogramowania. Dzięki jego pracy najbardziej istotne elementy funkcjonowania danej aplikacji zostają doprowadzone do perfekcji.

Tester oprogramowania – jaki certyfikat?

Dla zapewnienia wysokich standardów w branży od 2002 roku prowadzone są międzynarodowe testy certyfikacyjne ISTQB.  Organizacją je wydającą jest położona na terenie Belgii International Software Testing Qualifications Board. Ponad pół miliona osób posiada wydany przez tę organizację certyfikat, który stał się de facto standardem obowiązującym w branży. Niewielu pracodawców zatrudni osoby nieposiadające ISTQB .

tester oprogramowania

Certyfikaty przyznawane są na szczęście dożywotnio. Istnieje kilka poziomów, ale początkujące osoby powinny zacząć od szkolenia ISTQB Certified Tester Foundation Level. Sam test polega na wyborze prawidłowych odpowiedzi wśród czterech podanych możliwości. Znajduje się na nim czterdzieści pytań, do których trzeba się solidnie przygotować. Zdobycie certyfikatu otworzy drogę do otrzymania pierwszej pracy w branży. Potem będzie już tylko łatwiej.

Ile zarabia tester oprogramowania?

W 2017 roku Sedlak&Sedlak opublikował raport poświęcony zarobkom w IT. Nie obyło się w nim bez testerów software. Mediana zarobków dla młodszego testera wynosi 4709 złotych brutto. Bardziej doświadczony od juniora kolega bądź koleżanka może liczyć na 7250 złotych, a mediana płac seniorów wynosi 9900 złotych.

Opanowanie umiejętności pozwalających na przeprowadzanie testów automatycznych jest racjonalnym wyborem dla osób pragnących rozwijać swoją karierę. Osoby nie umiejące obsługiwać tej technologii zarabiają 5679 złotych brutto, zaś ci, którzy ją opanowali mogą liczyć na pensję w wysokości 7683 złotych.

Na stanowiskach kierowniczych wynagrodzenia  zaczynają się od 10 tysięcy złotych.

Tester oprogramowania: manualni i automatyczni

Różnica w zarobkach pomiędzy testerami manualnymi i automatycznymi jest, jak widać dosyć spora. Przyjrzyjmy czym różnią się obie metody pracy.

Najstarszą metodą sprawdzania oprogramowania są testy manualne. Zajmują więcej czasu niż testy automatyczne, ale uważa się, że ich wyniki są bardziej miarodajne. Wymagają mniejszej ilości dedykowanych narzędzi, dlatego też ich przeprowadzanie zużywa mniejsze nakłady finansowe. Poza tym w przeciwieństwie do ograniczonych w swoim zastosowaniu testów automatycznych umożliwiają sprawdzenie wszystkich aspektów oprogramowania. Dlatego też w najbliższym czasie metoda ta nie odejdzie do lamusa.

Jak sama nazwa wskazuje, tester manualny samoczynnie opracowuje i wykonuje testy, a następnie zapisuje ich wyniki. Ryzyko popełnienia błędu jest tutaj oczywiście wyższe, dlatego istotne jest prawidłowe zrozumienie tego, jak w danym wypadku powinien odbywać się proces testowania software.

Dzięki testom automatycznym możliwe jest zaoszczędzenie czasu, który normalnie poświęcany byłby nudnym, powtarzalnym czynnością. Osoba wykonująca tego typu testy musi umieć pisać odpowiednie skrypty, które automatycznie sprawdzają software, a potem generują rezultaty swoich działań. Zadaniem testera będzie tutaj porównanie wyników otrzymanych od skryptów do wyników oczekiwanych. Różnice wykażą aspekty oprogramowania, nad którym trzeba będzie jeszcze popracować.

Metoda ta świetnie nadaje się do dużych projektów, w których trzeba często sprawdzać działanie dużych ilości kodu. Obecnie istniejące narzędzia świetnie nadają się do testowania interfejsu użytkownika, poprawności działania baz danych, czy wydajności osiąganej na danym etapie prac nad software.

Testowanie automatycznie nie jest odpowiedzią na wszystkie problemy trapiące software i niemalże zawsze jest ono wspierane przez swoją manualną odpowiedniczkę. Dopiero połączenie obu tych metod jest w stanie zapewnić najlepszą wykrywalność bugów.

Opanowanie narzędzi służących do testowania automatycznego jest głównym wymogiem pozwalającym na otrzymanie awansu na lepiej płatne stanowisko.

Testowanie i debugowanie to nie to samo

Popularnym błędem jest utożsamianie testowania software z jego debugowaniem. Debugowanie zaczyna się wtedy, kiedy kończy się testowanie. Jest to proces usuwania błędów wykrytych przez testerów.

Otrzymawszy raporty o wykrytych błędach, deweloperzy rozpoczynają proces wyszukiwania ich przyczyn. Tylko zrozumienie powodów powstawania bugów może pozwolić na ich eliminację. Po dokładnym sprawdzeniu kodu następuje proces wprowadzania poprawek. Naprawiony software wraca z powrotem w ręce testerów, którzy starają się zreplikować wcześniejszy błąd i sprawdzają, czy najnowsza wersja oprogramowania nie została wzbogacona o nowe problemy.

Każda osoba marząca o możliwie bezproblemowym wejściu w branżę IT powinna poważnie zastanowić się, czy nie warto spróbować swoich sił jako tester oprogramowania. Dzięki zdobyciu odpowiednich certyfikatów możliwe jest rozpoczęcie kariery jako młodszy tester, a następnie jej dalszy rozwój, chociażby dzięki nauce obsługi narzędzi służących do testów automatycznych. Ci, którym praca testera oprogramowania nie przypadnie do gustu będą mogli się przebranżowić i zostać np. programistą.

Artykuł powstał dzięki:

Coders Lab

Łącząc doświadczenie edukacyjne ze znajomością rynku pracy IT, Coders Lab umożliwia szybkie i efektywne zdobycie pożądanych kompetencji związanych z nowymi technologiami. Skupia się się na przekazywaniu praktycznych umiejętności, które w pierwszej kolejności są przydatne u pracodawców.

Wszystkie kursy odbywają się na bazie autorskich materiałów, takich samych niezależnie od miejsca kursu. Dzięki dbałości o jakość kursów oraz uczestnictwie w programie Career Lab, 82% z absolwentów znajduje zatrudnienie w nowym zawodzie w ciągu 3 miesięcy od zakończenia kursu.


Do góry!

Polecane artykuły

28.09.2020

Jak efektywnie kosztowo zapewnić organizacji stały dostęp do najnowocześniejszych rozwiązań ...