Programowanie otacza nas z każdej możliwej strony, chętnych do pracy w IT nie brakuje. Do jednych z bardziej popularnych zawodów zaraz po programistach należy zawód tester. O tym jak wygląda świat testowania od kuchni miałam przyjemność rozmawiać z Maćkiem Jaskulskim, pasjonatem dzielenia się wiedzą i znajdowania miejsc do usprawnień w każdej sferze życia. 

Maćku, od kilku lat jesteś miłośnikiem znajdowania błędów w aplikacjach mobilnych. Zajmujesz się jedną z wielu specjalizacji wchodzących w skład zawodu tester oprogramowania. Jakie inne pod dziedziny można jeszcze wyróżnić?

Tak jak wspomniałaś, zajmuje się testowaniem aplikacji mobilnych i to jest moja specjalizacja. Jednak pod samym pojęciem tester oprogramowania ukrytych jest wiele innych gałęzi. Przykładowo, możemy wyróżnić specjalistę w testowaniu aplikacji webowych, gier, sieci, czy backendu etc. Dodatkowo testerów można podzielić na automatyzujących, czyli tych którzy piszą testy automatyczne oraz manualnych, którzy ręcznie sprawdzają działanie tego co widzą. 

Wejdźmy w temat trochę głębiej i poruszmy kwestię podziału testerów na automatyzujących i manualnych. Coraz częściej słyszy się, że Ci pierwsi są przyszłością jakości produktów. Jakie jest Twoje zdanie? 

Tester manualny szuka błędów i ich źródła albo ulepszeń w produkcie, który tworzy. Tester automatyzujący pisze kod tak jak programista i skupia się na rozwoju produktu, teoretycznie więc nie musi być w ogóle zainteresowany tym jak go usprawnić. Od testerów manualnych wymaga się, żeby aktywnie tworzyli nie tylko wizję produktu, ale i ulepszali produkt już stworzony. Można więc powiedzieć, że to są dwa zupełnie inne zawody. Czy jeden wypiera drugi? Moim zdaniem nie. Nie da się zautomatyzować wszystkiego. Jako przykład mogę podać Spotify, gdzie jeszcze jakiś czas temu bardzo mocno stawiano na testy automatyczne. Któregoś dnia zdali sobie jednak sprawę z tego, że ich produkt jest na tyle skomplikowany i często modyfikowany, że testy automatyczne nie sprawdzają aplikacji tak dobrze jakby chcieli. Zrezygnowali z automatycznego testowania sporej jej części.

Nie da się ukryć, że praca testera automatyzującego jest poniekąd wolniejsza. Na początku musi się on zastanowić jaka funkcjonalność wymaga otestowania i zweryfikować czy w ogóle jest to możliwe. Później jest faza pisania testu, jego integracji ze środowiskiem, weryfikacji czy wszystko na pewno działa. W grę wchodzą także ewentualne poprawki. Na samym końcu jest jeszcze utrzymanie testu, czyli praca tak naprawdę nigdy się nie kończy! Przykładowo u mnie w firmie zdarza się, że jedna osoba pisze jeden test na tydzień… i to nie jakiejś bardzo skomplikowanej funkcjonalności. I nie ma w tym nic złego, taka jest specyfika tej pracy, mi jednak nie do końca ona odpowiada.

Czyli Twoim zdaniem jest miejsce dla jednych i drugich? 

I tak i nie. W tym momencie mamy nadpodaż ludzi, którzy chcą wybrać zawód tester, jest więcej osób chętnych niż stanowisk do pracy. Dotyczy to zarówno testerów automatyzujących jak i manualnych, zwłaszcza bez doświadczenia. W dzisiejszych czasach ISTQB FL (International Software Testing Qualifications Board – Foundation Level), czyli niegdyś podstawa dla każdego potencjalnego wykrywacza błędów nie jest już czymś obowiązkowym. Dla potencjalnych pracodawców ważniejsza jest wiedza z tego zakresu niż sam certyfikat. 

Rynek jest przepełniony w każdej gałęzi testowania?

Na szczęście nie! Testerów webowych jest sporo i tu też próg wejście jest wysoki. Testerów mobilnych jest wciąż niewielu. Gdybym miał wskazać niszę, w której najłatwiej byłoby znaleźć pracę, biorąc pod uwagę tylko zapotrzebowanie na testerów, byłby to najpewniej świat gier. Być może dlatego, że to stosunkowo ciężki zawód, rynek wciąż ma duże zapotrzebowanie. Prawdopodobnie pierwsza Twoja myśl jest taka, że przecież w tym nie ma nic trudnego, a jest wręcz przeciwnie. Nie przechodzi się bowiem jednej sceny z Wiedźmina raz. A kilkadziesiąt razy i to w różnych językach, na sprzętach o różnych parametrach, etc. Musisz ciągle być tak samo skupiony mimo, że widzisz pewną scenę setny raz. 

Wydaje się, że podobnie jest w aplikacjach mobilnych. Tutaj często też wspiera się inne języki. Czy w Twojej pracy nie bywa nudno? 

Faktycznie w aplikacjach zazwyczaj jest wsparcie językowe i zdarza się, że testowanie setny raz poprawności działania logowania w różnych językach bywa nużące. Zwłaszcza jeżeli chodzi o języki arabskie, w których specjalistą nie jestem. Sprawdzam wtedy czy translacje dostarczone przez klienta są poprawne oraz coraz częściej sięgam po Google live translator! Ale to jedyny taki aspekt. W grę wchodzą przecież jeszcze testy backendu, testy ruchu sieciowego, etc. Zresztą tak jak już mówiłem, tester manualny nie zajmuje się tylko wykrywaniem błędów, a również kreowaniem wizji produktu. Więc odpowiadając wprost na Twoje pytanie – nie, nie nudzę się. Wciąż odkrywam nowe możliwości i frameworki. Ostatnio moją pasją stał się Flutter

Tester
Nigdy nie jest nudno

Czytałam po Twoim występie na jednym z wrocławskich meetupów dla testerów – Log Cat – że Flutter cieszy się coraz większą popularnością nie tylko wśród programistów ale również wśród testerów. Czym różni się testowanie aplikacji pisanych natywnie od tych tworzonych we Flutterze? 

Flutter to stosunkowo nowy zestaw narzędzi stworzony przez Google, który umożliwia pisanie jednego kodu, działającego na dwóch platformach (Android i iOS). Jakiś czas temu zacząłem interesować się nim bardziej i wspólnie z Alexandrem Stolarem udaliśmy się na konferencję Flutter Europe, gdzie zobaczyliśmy jak ogromne budzi zainteresowanie na świecie. Jest to pewnego rodzaju nisza i postanowiłem zostać w niej specjalistą. Zdobytą wiedzą, wspólnie z Alexem zaczęliśmy dzielić się w ramach wrocławskiej społeczności, ale na tym z pewnością nie poprzestaniemy.

Wracając do Twojego pytania o różnice pomiędzy testowaniem aplikacji pisanych natywnie, a tych stworzonych we Flutterze mogę powiedzieć tyle, że tutaj już nic nie jest dla mnie pewne. Przy testowaniu natywnych aplikacji z doświadczenia wiem gdzie mogą pojawić się błędy. Przy Flutterze piszemy dwie aplikacje jednym kodem, ciężko jest więc przewidzieć w którym miejscu wyskoczy nam błąd. Muszę się spodziewać, że może czaić się za każdym rogiem. Konieczna jest dogłębniejsza i częstsza regresja, czyli testowanie wcześniej już przetestowanego modułu. Tak naprawdę to to, że coś nie działa na Androidzie wcale nie znaczy, że nie będzie działało również na iOS. To ciągłe odkrywanie nieznanego. 

Lubisz dzielić się wiedzą, robisz to nie tylko na meet-upach ale również na uczelni. Z wykształcenia jesteś filologiem anglieskim i przez moment uczyłeś języka zawodowo. Porzuciłeś jednak nauczanie w imię rozwoju techniki. Jak to się więc stało, że postanowiłeś wrócić do edukacji innych? 

W ubiegłym roku wraz z koleżanką z zespołu, Dorotą Głuszczyk, występowaliśmy na meet-upie KraQA w Krakowie. Po prelekcji podszedł do nas organizator – Dariusz Drezno. Bardzo podobało mu się nasze wystąpienie, to jak biła od nas energia i jak chętnie dzieliliśmy się wiedzą. Zapytał czy nie bylibyśmy zainteresowani rozwojem wrocławskiej społeczności w ramach nauczania na WSH. Po chwili zastanowienia stwierdziłem, że to świetny sposób na rozwój i ciekawe doświadczenie. Nie będę ukrywał, że przygotowania do pierwszego semestru zajęły mi więcej czasu niż zakładałem, ale satysfakcja była i jest ogromna. Zachęcam wszystkich do udziału w kursie testowania oprogramowania jeżeli chcą się dowiedzieć jak podejść do testowania, nie tylko aplikacji mobilnych. 

Rozumiem, że to jest jedna z Twoich podpowiedzi jak zacząć karierę? 

Tak! Jak wspomniałem wcześniej warto mieć ISTQB FL. Polecam oczywiście chodzenie na różnego rodzaju meet-upy czy konferencje. Ale jako taką największą podpowiedź mogę zasugerować znalezienie jakiegoś programisty freelancera i rozpoczęcie z nim współpracy. W ramach takiego wolontariatu. Nie znam chyba programisty, który nie chciałby mieć zweryfikowanej i przetestowanej aplikacji. Studia, o których mówiliśmy, są oczywiście bardzo ważnym i cennym elementem. 

Czy to zawód dla każdego? Co cechuje dobrego testera? 

Nie, to nie zawód dla każdego. Z perspektywy mobilnej trzeba z pewnością śledzić najnowsze trendy, lubić gadżety, telefony. Trzeba wykazywać się dużą dociekliwością, tak żeby znaleźć potencjalny błąd tam gdzie nikt się go nie spodziewa. Jeżeli mówimy o testach automatycznych to z pewnością konieczne jest techniczne podłoże, bardzo dobra znajomość narzędzi np. Android Studio, czyli programu umożliwiającego tworzenie oprogramowania na urządzenia z Androidem. Osobiście lubię być bliżej samej aplikacji niż kodu, wtedy to mogę wskazywać błędy w jej działaniu. Bardzo się denerwuje gdy coś sam napiszę i teoretycznie powinno działać, ale tak się nie dzieje. Nie każdy potrafi znaleźć błędy w swojej pracy. Ja należę właśnie do tych ludzi. Wolę biznesowe podejście do wytwarzanych produktów, czyli szukanie nie tylko błędów ale pracę nad wizją produktu i proponowanie różnych ulepszeń, żeby w ten sposób dbać o jakość produktu.

Wyobraź sobie np. pralkę, jej działanie uznajemy za poprawne wtedy kiedy pierze ubrania i ich nie dziurawi. Testując pralkę mógłbym ocenić, że skoro robi te dwie rzeczy poprawnie to znaczy, że jest wzorowym, dobrym produktem. Podchodzę do swojej pracy trochę w bardziej kreatywny sposób i wskazałbym możliwość dorzucania ubrań w trakcie prania jako przydatne ulepszenie. Nie musi zostać one wprowadzone ale, jako ekspert, podpowiadam Właścicielowi Produktu, co może w nim usprawnić tak żeby jego klienci byli bardziej zadowoleni. 

Ciekawy przykład. Czy poza pracą też szukasz błędów? Przychodzi Ci do głowy jakiś najdziwniejszy, najśmieszniejszy błąd jaki znalazłeś? 

Podzielę się błędem, którego obecność tylko zweryfikowałem. Gdy we Wrocławiu był starszy model biletomatów, w których płaciło się kartą i automat drukował papierowy bilet to można było zablokować wszystkie kasowniki w pojeździe. Jak? Wystarczyło przejść całą ścieżkę i na etapie płatności anulować całą akcję. I tak trzy razy.  Biletomaty w całym pojeździe wariowały i przestawały działać na ok. 15 minut. Był to powszechnie znany błąd. Weryfikowałem czy podobnie dzieje się przy nowych automatach i na szczęście błędu nie można już zreprodukować! 

Jak się czujesz, gdy w produkcie, który jest dostępny w sklepie a przeszedł przez Twoje ręce użytkownicy znajdują błędy? 

To zależy. Jeżeli faktycznie przepuściłem jakiś poważny błąd, dajmy na to nie działa logowanie na jakieś konkretnej wersji Androida, to czuje się z tym źle. Jeżeli natomiast wypuszczamy produkt na rynek, którego użytkowników nie znam zbyt dobrze, na Chiny czy Japonię i znajdują oni błąd o którym w życiu bym nie pomyślał to nie czuje zawodu z tego powodu. To już specyfika klienta końcowego, w którego buty zawsze staram się wejść, ale nie zawsze się udaje. Co ciekawe użytkownicy często zgłaszają usprawnienia jako błędy bo tak naprawdę nie wiedzą co było w planie danego produktu

Tak na zakończenie, jakbyś miał podać jeden powód dla którego tak lubisz to co robisz – co to by było?

Lubię ten moment kiedy mam szansę rozpocząć pracę nad nowym produktem oraz kiedy mam możliwość jego współtworzenia. Dużo satysfakcji odczuwam również kiedy pojawia się nowa wersja produktu na sklepie i zawiera funkcjonalność, którą zaproponowałem. Produktem, który do tej pory przyniósł mi największą satysfakcję jest HoneyBee, czyli aplikacja dzięki, której mieszkańcy USA z niższym dochodem mogą wziąć pożyczkę na bardzo korzystnych warunkach. 

Maciek dziękuje Ci bardzo za Twój czas i wiele cennych wskazówek.
Dzięki i powodzenia.


Maciek Jaskulski –  tester aplikacji mobilnych. Z wykształcenia jest filologiem angielskim z wielką pasją do nauczania. Współorganizuje jeden z wrocławskich meetupów dla testerów Log Cat oraz uczy podstaw testowania oprogramowania na WSH. W wolnych chwilach opiekuje się świnkami morskimi i psem, oraz tworzy muzykę.


Sprawdź nasze poprzednie wpisy: