Upss… Coś nie tak z Twoją przeglądarką
Do poprawnego wyświetlania formularza zalecana jest przeglądarka Chrome lub Safari.

"U mnie niekoniecznie wszystko działa", czyli słów kilka o pracy testera oprogramowania

Zastanawiasz się jak w łatwy sposób wejść do branży IT i zająć się testowaniem oprogramowania? A może szukasz informacji, jak w praktyce wygląda praca testera? Odpowiedzi poszukaliśmy u samego źródła. Zapraszamy do rozmowy z Jolantą Filipiak – testerką oprogramowania w Comarch Smart BSS (Business Support System).

Tester oprogramowania to jedna z najczęściej pojawiających się ofert pracy na rynku. Jaka w takim razie jest rola testera w branży IT, jak również w procesie produkcji oprogramowania?

W dzisiejszych czasach niemal na każdym kroku korzystamy z różnych aplikacji i systemów, które ułatwiają nam codzienne życie. Bez problemu możemy kupić lub sprzedać coś bez wychodzenia z domu, porozmawiać ze znajomymi z drugiego końca świata czy też sprawdzić jak dojechać z miejsca A do miejsca B. Za każdą taką aplikacją stoi zespół IT, który ją tworzy i dba o to, aby system działał bez zarzutu, ponieważ niektóre błędy w oprogramowaniu mogą nieść ze sobą poważne konsekwencje.  Testerzy oprogramowania odgrywają tu niezwykle ważną rolę. Ich głównym zadaniem jest wykrycie wszelkich nieprawidłowości i dopilnowanie tego, aby system działał zgodnie z oczekiwaniami klienta i użytkowników końcowych.

Zdarza się, że tester jest swojego rodzaju tłumaczem, który stara się czasem pośredniczyć między stroną mówiącą językiem bardziej biznesowym, a stroną, która mówi bardziej technicznie. Czy to prawda, czy jednak trochę podkoloryzowana rzeczywistość?

Myślę, że wszystko zależy od zespołu i projektu, do którego się trafi. Jeśli nie ma specjalne wyznaczonej osoby, może być tak, że to tester wyjaśnia jakieś aspekty techniczne. Czasami taką rolę pełnią po prostu programiści - najlepiej znają szczegóły techniczne, więc teoretycznie są najbardziej odpowiednimi osobami do kontaktu w tych sprawach.

W nauce testowania bardzo ważna jest nasza percepcja i sposób patrzenia na świat, który nas otacza. Od czego w takim razie według Ciebie warto zacząć i gdzie szukać wiedzy?

Testowania najlepiej uczy się w praktyce – tak jak to było w moim przypadku. Zanim podjęłam pracę testera oprogramowania, nie miałam wiele do czynienia z testowaniem, ponieważ na studiach informatycznych ten temat był traktowany po macoszemu. Nie było żadnego przedmiotu dedykowanego dla przyszłych testerów, a tematyka jest przecież bardzo obszerna. Obecnie sytuacja się poprawiła, istnieją nawet odpowiednie studia podyplomowe. Ja na szczęście miałam możliwość nauczyć się wszystkiego w pracy, dzięki nieocenionej pomocy koleżanek i kolegów z zespołu, którzy wprowadzili mnie w cały proces wytwarzania oprogramowania.

Jeśli chodzi o źródła wiedzy to całe mnóstwo książek czy kursów jest dostępnych w Internecie. Różnią się oczywiście wartością merytoryczną, więc trzeba nauczyć się wybierać te najlepsze. Na początku warto obejrzeć czy posłuchać kilka wywiadów z doświadczonymi testerami, którzy opowiadają o swojej pracy i często właśnie polecają wartą przeczytania literaturę albo kursy online. Istnieją także specjalne grupy w mediach społecznościowych (np. na Facebooku), zrzeszające miłośników testowania na wszystkich poziomach zaawansowania, wymieniających się spostrzeżeniami i cennymi wskazówkami. Organizowane są również webinary o różnorodnej tematyce np. jak się przygotować do rozmowy rekrutacyjnej, jakie narzędzia do automatyzacji testów wybrać czy też jak testować aplikację pod względem bezpieczeństwa.

Mówi się, że tester musi być asertywny, ponieważ dla dobrego testera na nic są zapewnienia programisty, że wszystko działa. Kto w takim razie może zostać testerem oprogramowania? Czy jest jakaś cecha, która na pewno nam pomoże lub, która skutecznie utrudni pracą na tym stanowisku?

Z całą pewnością osoba na stanowisku testera musi potrafić bronić swojego zdania. W mojej opinii inne pożądane cechy testera to przede wszystkim dociekliwość, dokładność, a także kreatywność, ponieważ żeby znaleźć niektóre błędy, trzeba się nieźle nagłówkować. Kolejną niezastąpioną umiejętnością jest krytyczna ocena sytuacji, najbardziej przydatna gdy trzeba zadecydować o dostarczeniu nowej wersji dla klienta. W pracy testera kluczową cechą jest także komunikatywność – zarówno w zespole jak i w kontaktach z klientem. Tester nie może być nieśmiały - musi umieć bez ogródek powiedzieć programiście, że to, co zaimplementował działa niepoprawnie. Niekiedy nawet trzeba ich przekonywać, że popełnili błąd, ponieważ zwykle uważają, że „u nich wszystko działa”.

W różnych ofertach można znaleźć dwa rozróżnienia testerów: manualny oraz automatyzujący. Czy między nimi rzeczywiście jest różnica, jeżeli tak to jaka?

Tester oprogramowania to w uproszczeniu osoba, która dobrze zna testowany system i potrafi określić jakie rzeczy trzeba zweryfikować, aby dostarczane do klienta oprogramowanie działało poprawnie i zgodnie z wymaganiami biznesowymi. W tym celu tworzy różne scenariusze testowe, które opisują m.in. dokładne kroki, jakie należy poczynić podczas testów oraz oczekiwany rezultat, jaki ma powstać w wyniku tych działań. W przypadku testera manualnego weryfikacja odbywa się głównie poprzez ręczne klikanie po systemie i szukanie tzw. bugów (ang. bugs), czyli wszelkich luk w oprogramowaniu. Można się domyślać, że w niektórych przypadkach taka praca może być bardzo żmudna i czasochłonna – na szczęście w takiej sytuacji na ratunek przybywają testerzy automatyzujący. Potrafią oni pisać testy automatyczne, czyli mechanizmy, które po odpowiednim zaprogramowaniu samoczynnie klikają po systemie i wcielają się w rolę użytkowników końcowych aplikacji. Dzięki takim zabiegom możemy  znacznie usprawnić i przede wszystkim przyspieszyć cały cykl wytwarzania oprogramowania.

Myślę, że umiejętności testera automatyzującego są po prostu rozszerzeniem umiejętności testera manualnego. Często testerzy manualni decydują się na pójście w kierunku automatyzacji, ponieważ pisanie testów niezwykle ułatwia pracę, a poza tym to niezła frajda!

Często praca testera to dla osób początkujących idealne rozwiązania, by zacząć swoją zawodową karierę. Pytanie, czy można być testerem bez umiejętności programowania?

Nieumiejętność programowania nie stanowi przeszkody w testowaniu, aczkolwiek znacznie je usprawni. Dla osób czyniących swoje pierwsze kroki w świecie IT oraz dla tych, którzy chcą się przebranżowić, jak najbardziej odpowiednie będzie stanowisko testera manualnego, gdzie na początek trzeba po prostu poznać działanie systemu i sprawdzać, czy działa on zgodnie z wymaganiami klienta. Samego programowania można się z czasem nauczyć i myślę, że prędzej czy później każdy będzie chciał to zrobić.

Według raportu przygotowanego przez portal Bulldogjob w 2020 roku, wynika, że wśród najpopularniejszych technologii poza SQL-em (58,6%) możemy znaleźć Javę (52,2%), Python (50,6%), JavaScript (31,2%) oraz C# (28,8%).Czy obecnie te proporcje są zbliżone, czy nastąpiła zmiana? Jak to wygląda w Twoich projektach? Jakie narzędzia powinien znać manualny tester oprogramowania, a jakie automatyzujący?

Wszystkie wymienione technologie są jak najbardziej przydatne. Szczególnie SQL, którego każdy tester, niezależnie od tego czy manualny, czy nie, będzie musiał poznać. Obecnie istnieje wiele narzędzi do tworzenia testów, trzeba jednak wybrać taki, który będzie pasował to danego projektu. Moim zdaniem wygodnie jest zastosować podejście, w którym testy są pisane w tym samym języku co cały system, ponieważ w takiej sytuacji testerów mogą wesprzeć programiści, znający już daną technologię.

W mojej pracy do pisania testów automatycznych używamy języka Python i narzędzia Selenium WebDriver – jest to dość popularne zestawienie open source, którego główną zaletą jest szybkość działania, kompatybilność z wieloma przeglądarkami oraz ogromna liczba dodatkowych bibliotek. Za pomocą tych narzędzi stworzyliśmy wewnętrzny framework testowy, dzięki któremu łatwo można stworzyć test automatyczny, weryfikujący wybrane funkcjonalności systemu.

Niezwykle przydatna jest też znajomość innych języków skryptowych, np. Basha, narzędzi do testowania API takich jak Postman czy SoapUI, a także podstaw HTML i CSS, jeśli testujemy warstwę front-endową, czyli graficzny interfejs użytkownika.

Mówiliśmy już o tym, że stanowisko testera jest idealną opcją do rozpoczęcia przygody z IT. Jasne jest, że kolejnym krokiem w wielu przypadkach jest stanowisko programistyczne. Co jeśli ktoś chciałby się jednak rozwijać w innym obszarze? Jakie są ścieżki rozwoju testera?

W IT istnieje mnóstwo ciekawych ścieżek kariery i sądzę, że każdy znajdzie coś dla siebie. Tester może rozwinąć się w kierunku bardziej technicznym i zostać np. specjalistą od automatyzacji albo po prostu programistą. Ciekawą opcją dla osób bardziej doświadczonych jest także bycie trenerem i przeprowadzanie szkoleń dla innych testerów. Jeśli ktoś ma odpowiednie predyspozycje, w szczególności umiejętności miękkie, może również podążać ścieżką menedżerską i zostać Team Leaderem albo kierownikiem projektu. Istnieje jeszcze inna ścieżka, którą sama obecnie  podążam, czyli połączenie funkcji technicznych z kierowniczymi. Możliwości rozwoju jest wiele i moim zdaniem warto spróbować kilku profesji, żeby wiedzieć, w jakiej się chce dalej rozwijać.

Więcej o stanowiskach pracy w IT przeczytasz w artykule „Czym zajmuje się DevOps? Jakie technologie wykorzystuje w swojej pracy analityk biznesowo-systemowy? Co robi admin? Mini słownik stanowisk branży IT”.

Dodaj komentarz

      adres e-mail nie zostanie opublikowany

            Najczęściej czytane w tej kategorii