Tester – to chyba jeden z zawodów, który najczęściej pojawia się w myśli większości osób planujących np. przebranżowienie i które rozważają rozpoczęcie swojej ścieżki kariery w obszarze IT. Wydawać by się mogło, że jest to jeden z tych zawodów, które na początku kariery w IT jest najłatwiejszy – o ile możemy mówić o łatwiej pracy w branży IT - lub taki, którego najszybciej i stosunkowo najłatwiej można się nauczyć.
Ale czy tak jest naprawdę?Zapytaliśmy o to Pawła Pikula, którego poprosiliśmy o przybliżenie codziennej pracy testera.
Diverse CG: Jak wygląda codzienna praca na stanowisku Testera?
Paweł Pikul: Może zaskoczę wszystkich, ale praca testera polega na testowaniu :) Developerzy wytwarzający oprogramowanie nie są nieomylni i jak każdy człowiek popełniają błędy. Najczęściej nie wynikają one z braku umiejętności, ale wielu innych czynników chociażby takich jak: praca pod presją czasu, skomplikowane i rozbudowane solucje czy gorszy dzień. Tester jest "drugą parą oczu" i ma za zadanie weryfikować, czy praca wykonana przez kolegę developera spotyka się z wymaganiami postawionymi przez biznes i dobre praktyki.
Diverse CG: A jak określiłbyś rolę Testera w zespole developerskim?
PP: Przede wszystkim jest integralną częścią zespołu developerskiego i jakkolwiek górnolotnie to nie zabrzmi - jest centrum informacji o wytwarzanym produkcie. To od testera wymagane są zrozumienie wymagań postawionych przez biznes, ścisła współpraca z developerami, jednoznaczne i klarowne zgłaszanie błędów, umiejętność raportowania o stanie produktu do interesariuszy. To tester jest pierwszym użytkownikiem systemu i powinien być w stanie poznać jego problemy techniczne nakładając na nie możliwie dużo przypadków użycia przez użytkownika końcowego. Co po takim wspaniałym testerze, jeżeli będzie się kłócił z devami, generował konflikty, a zapytany o stan weryfikacji jakości produktu odpowie, że ciężko powiedzieć? Wbrew pozorom jest to bardzo odpowiedzialna rola i obecność testera na spotkaniach zespołowych jest konieczna. Jest on w stanie krytycznie podejść do podejmowanych tematów, zwrócić uwagę na problemy, które dotyczą użytkownika końcowego, a które łatwo przeoczyć rozważając zawiłości techniczne. Dodatkowo (zakładając, że posiada taką wiedzę) może usprawniać proces rozwoju oprogramowania jako całości i podnieść tym samym jakość produktu, zanim zacznie się rozwój, poprzez zapobieganie błędom procesowym.
DCG: To jak wygląda dzień pracy testera w Twoim wykonaniu?
PP: Dzień zaczynam od dobrej kawy, a następnie sprawdzam zaplanowane na dany dzień spotkania i maile, tak aby móc się odpowiednio przygotować i jak najlepiej wesprzeć zespół. Oprócz przygotowań i uczestnictwu w spotkaniach oczywistą częścią pracy jest sprawdzanie bugtrackera (narzędzia do śledzenia zadań i błędów, np. Jira), czy pojawiły się nowe funkcjonalności lub poprawione błędy do sprawdzenia. Otwieram konkretne zadanie, sprawdzam wymogi funkcjonalne, następnie uruchamiam aplikację na środowisku developerskim i za pomocą wylistowanych wymagań, doświadczenia oraz kreatywności weryfikuję poprawność wyprodukowanej funkcjonalności. Kolokwialnie mówi się, że tester 'próbuje popsuć' testowany element, ja bym to raczej ujął jako podjęcie wszelkich działań mających na celu udowodnienie, że coś zostało zrobione źle. Jeżeli błąd tam jest, to ja go znajdę - powstał już wcześniej. Znaleziony błąd, musi zostać odnotowany w bugtrackerze, żeby został naprawiony w przyszłości. Notka musi zawierać informacje o tym, gdzie i jak znalazłem ten błąd oraz klarowne instrukcje do odtworzenia tej sytuacji.
DCG: Porozmawiajmy o kompetencjach. Jakie umiejętności są niezbędne na stanowisku Testera?
PP: Bez względu na rodzaj testera (manualny, automatyzujący, UX, itd.) najistotniejsze umiejętności to umiejętności miękkie i moim zdaniem istnieje takich pięć najważniejszych:
Komunikatywność - to jedna z najistotniejszych cech testera. Tester musi cechować się wzorową komunikacją, klarownością przekazu, śmiałością.
Asertywność – tester nie może się bać wyrazić swojej opinii w grupie i stać przy dobrej sprawie, jeżeli nie ma zaangażowania ze strony developerów.
Odpowiedzialność - tester, który nie czuje się jako „gospodarz” projektu, będzie mniej dokładny i nie będzie mu zależało na tym, żeby produkt był możliwie doskonały. Nie będzie także wyglądał poza czubek swojego nosa i patrzył na produkt z dalszej perspektywy, np. z perspektywy klienta, który będzie produkt odbierał, czy analizy, jak produkt współpracuje z innymi produktami, z którymi ma styczność.
Kreatywność - tester musi oprócz oczywistych wymagań do produktu umieć w kreatywny sposób podejść do tematu, spróbować zrobić to samo na kilka różnych sposobów. W głowie zawsze krąży mnóstwo przypadków testowych.
Spostrzegawczość - ciężko umieć weryfikować estetykę czy drobne detale, jeżeli ich się po prostu nie zauważa :).
DCG: Czy warto pójść na studia z Testowania?
PP: Moja odpowiedź na to pytanie może być nieco spolaryzowana, ponieważ mój poprzedni pracodawca i osoby, z którymi współpracowałem, ucząc się fachu testera, są wykładowcami kierunku Testowanie Oprogramowania na warszawskiej Vistuli. Z wiedzy, jaką otrzymałem od Darka Drezno i Adama Baska, korzystam do dzisiaj i bardzo serdecznie ich pozdrawiam, jeżeli czytają ten wywiad :).
Udzielając odpowiedzi na pytanie, czy warto, powiem - absolutnie tak. Ludzie, którzy prowadzą te wykłady to znakomici praktycy i fantastyczni profesjonaliści. Wiedza przekazywana przez nich jest warta każdej złotówki.
DCG: Pisaliśmy w ostatnim artykule o trendach w testowaniu. Jakie Twoim zdaniem trendy w Testowaniu będą realizować się w najbliższej przyszłości?
PP: W moim odczuciu świat nie zamierza cofnąć się do aplikacji desktopowych, zatem większość z testerów w przyszłości będzie miała do czynienia z coraz większą ilością aplikacji webowych, mobilnych i tematyką BigData. Dodatkowo automatyzacja staje się coraz bardziej powszechna i nie spodziewam się, żeby miał ten trend się odwrócić. Już teraz często spotykam się z ofertami testera „od wszystkiego”, który potrafi dokonać dobrej analizy, testów eksploracyjnych, testów API i automatyzacji.
DCG: Czy wobec tego Tester Oprogramowania to jeden z zawodów przyszłości?
PP: Zdecydowanie. Na rynku zawsze będzie zapotrzebowanie na specjalistów, dlatego zachęcam wszystkich, również siebie, do rozwoju w kierunku wykorzystania narzędzi automatyzacji procesu testowania i poznania chociaż jednego języka programowania. Obecnie najpopularniejszym językiem na rynku testerskim jest Java, natomiast C#, Python, JavaScript to również dobre wybory. Selenium, Cypress, Postman, JMeter to tylko niektóre narzędzia, które dobrze znać chociaż na poziomie podstawowym. Ich znajomość sprawi, że rozmowy kwalifikacyjne powinny być dla nas łatwiejsze.