Jakie możliwości rozwoju ma tester oprogramowania? Przeczytaj artykuł Ani Warzechy.

Branża IT to z pewnością miejsce dla osób, które lubią się uczyć. Niezależnie od miejsca pracy trzeba się stale dokształcać. Jak dotąd zupełnie mi to nie przeszkadza. Dużo radochy sprawia mi możliwość uczenia się nowych rzeczy. A im bardziej są skomplikowane, tym bardziej cieszę się, gdy uda mi się je zrozumieć. Wiele zawodów wymaga ciągłego dokształcania się, zmieniająca się w zawrotnym tempie branża IT nie jest wyjątkiem . Aby nie wypaść z obiegu trzeba się uczyć, czytać, interesować nowinkami z branży. Osobom które dopiero stawiają pierwsze kroki, może być niełatwo zdecydować, czego warto się uczyć. Jeśli jesteś testerem manualnym i nie masz jeszcze planu jak się rozwijać, postaram się Ci pomóc.

Poszerzanie horyzontów

Jako osoba żądna wiedzy i ciągle niezadowolona z jej braków chętnie dołączam do różnych grup dyskusyjnych na Facebooku. Dzięki temu „tracenie” czasu na tym portalu społecznościowym wywołuje we mnie trochę mniejsze wyrzuty sumienia. Zawsze mignie mi jakiś post, z którego mogę się czegoś dowiedzieć albo też wejdę w jakiś artykuł, którego tytuł przykuje moją uwagę. W ten sposób staram się uzupełniać branżową wiedzę.

Szczerze polecam dołączanie do grup typu „Pierwsze kroki z … ” np. Java: pierwsze kroki (https://www.facebook.com/groups/540713846115289/). Można poznać tam wielu zajawkowiczów, którzy chętnie dzielą się swoją wiedzą.

Ilość przeróżnych technologii, frameworków czy narzędzi, wykorzystywanych w branży IT może przytłaczać. Choć część z nich cieszy się dużą popularnością i korzysta się z nich w wielu firmach, to bywają i takie, które są nieco mniej popularne. Każda firma, czy zespół decyduje o wyborze narzędzia, które wydaje się najbardziej odpowiednie. Czasem decyzja wynika z tego, że większość zespołu jest z danym narzędziem obeznana, w innych przypadkach rozwiązania mogą zostać narzucone odgórnie.

Niezależnie od tego, warto wiedzieć „co w trawie piszczy”. Nie można nauczyć się ich wszystkich, ale warto dowiedzieć się, do czego służą i jakie korzyści przynoszą. Dlatego, kiedy w pracy słyszę obcą mi nazwę jakiegoś narzędzia, robię szybki research i poświęcam chociaż parę minut, żeby zorientować się do czego służy dane narzędzie. Czasem są to narzędzia wykorzystywane głównie przez programistów (np. Swagger, Docker, Redis), ale i takie, z których korzystają także testerzy czy analitycy (Jenkins, New Relic, Kibana). To mój kolejny sposób na „poszerzanie horyzontów”.

SQL

Z pewnością warto zapoznać się z podstawami relacyjnych baz danych oraz językiem SQL i opanować choćby jego podstawy. Niezależnie od planowanej ścieżki kariery zawodowej r – SQL z pewnością Ci się przyda.

W przypadku testerów bezpośredni dostęp do bazy danych może znacząco ułatwić testy. Opanowanie podstawowych pytań, pozwalających wyciągać „surowe” dane z bazy danych może być znacznym ułatwieniem i pozwoli na przyspieszenie testów, szybsze wyciąganie wniosków oraz skuteczniejsze analizowanie błędów. Jeśli chcesz iść w kierunku analizy danych to nie masz się nad czym zastanawiać – naucz się podstaw SQLa np. z kursu Mirosława Zelenta, Codecademy czy https://www.w3schools.com/sql/.

Język programowania

Choć na samym początku mojej przygody z testowaniem ani przez chwilę nie przeszło mi przez myśl, żeby uczyć się programowania, to po pewnym czasie stało się to dla mnie całkowicie oczywiste. Wcale nie musisz marzyć o zostaniu programistą, żeby mieć powód do nauki programowania. Samo zrozumienie podstaw języka, w którym powstaje aplikacja, daje możliwość spojrzenia na nią od całkiem od innej strony.

A kto inny, jeśli nie tester, powinien umieć patrzeć na system z różnych punktów widzenia?

Łącząc wiedzę techniczną z biznesową trudniej wpaść w monotonię w trakcie testowania. Mając pewną wiedzę o programowaniu, łatwiej przewidzieć jakie błędy mógł popełnić programista (niestety drodzy programiści, nie jesteście bezbłędni). Rozumienie kodu to także możliwość rozmawiania z deweloperem na innym poziomie. Zrozumienie, na czym polega błąd pozwala, nie tylko na utworzenie odpowiedniego raportu, ale także na sugestii w jaki sposób można problem rozwiązać.

Programowania warto się także uczyć, aby mieć możliwość rozwijania się w automatyzacji testów. Zautomatyzowanie monotonnych czynności testowych to nie tylko oszczędność czasu. Mało urozmaicone testy regresji wykonywane w sposób mechaniczny to najprostszy sposób na przegapienie niebezpiecznych dla aplikacji (i w efekcie dla biznesu) błędów. Podstawowa wiedza z programowania plus odpowiednie narzędzia pozwolą zautomatyzować najczęściej wykonywane testy.

Do testowania interfejsu użytkownika, wnioskując po ofertach pracy, najczęściej wykorzystywanym  frameworkiem jest Selenium WebDriver. Narzędzie to pozwala na lokalizowanie elementów na stronie i wykonywanie działań imitujących zachowanie użytkownika.

Opanowanie podstaw wcale nie wymaga dużej ilości czasu, a jest doskonałym sposobem na rozwój w kierunku automatyzacji testów (czyt. wyższych zarobków). Przy tym jest to całkiem fajna zabawa. Zapewniam, że poczujesz dumę, kiedy uda Ci się napisać pierwszy działający test!

Zarządzanie testami

Jeśli bardziej interesuje Cię rozwój w kierunku zarządzania to poza doświadczeniem niezbędna będzie wiedza dotycząca planowania testów czy tworzenia przypadków testowych. Takiej wiedzy potrzebuje każdy tester, jednak osoba koordynująca testy w firmie powinna dysponować bardziej zaawansowaną wiedzą.

Stworzenie idealnego przypadku testowego czy skutecznego planu testów wcale nie należy do najprostszych. Należy także zdawać sobie sprawę z tego, jakie testy powinny zostać zautomatyzowane, a które, mimo wszystko, powinny być wykonywane manualnie.

Warto pamiętać, że bycie dobrym specjalistą nie gwarantuje bycia dobrym menedżerem. Poza wiedzą i doświadczeniem w testowaniu konieczne jest także posiadanie kompetencji miękkich. Umiejętności organizacyjnych i przywódczych można się nauczyć jak wszystkiego innego.

Niezwykle cenne może okazać się doświadczenie nabyte na niższych stanowiskach. Awansując z testera na lidera testerów doskonale znasz bolączki swojego zespołu, a będąc na wyższym stanowisku masz znacznie więcej możliwości, aby te problemy rozwiązać.

Kompetencje miękkie

Jak wspomniałam w poprzednim akapicie, kompetencje miękkie są niezwykle istotne w przypadku stanowiska menedżerskiego. Nie znaczy to, że nie są one potrzebne w przypadku innych stanowisk, takich jak tester. Z osobistego doświadczenia wiem, że tester musi posiadać cały wachlarz umiejętności, związanych z komunikacją z ludźmi oraz organizacją pracy.

Szczególnie ważna jest umiejętność komunikacji z programistami, zwłaszcza w przypadku przekazywania informacji o błędach w aplikacji. Czasem testerzy uczestniczą też w spotkaniach z klientami, dlatego warto popracować nad swoimi kompetencjami w tym zakresie.

Bardzo rzadko zdarza mi się pracować w ciągu dnia tylko nad jednym tematem. Zazwyczaj konieczne jest szybkie “przełączanie się” między zadaniami. Jeśli Twoja praca wygląda podobnie to znaczy, że potrzebujesz dobrej organizacji pracy oraz umiejętności zarządzania czasem. W sieci znajdziesz mnóstwo artykułów na temat zwiększania produktywności. Wiedzę taką możesz wykorzystać nie tylko w pracy, ale i w domu.

Wejdź na wyższy poziom

Nauka całkiem nowych rzeczy to naprawdę fajna sprawa, ale czasem warto zastanowić się czy nasza wiedza w znanych nam tematach nie wymaga uzupełnienia. Technologie i narzędzia są stale rozwijane. Może przyda się sprawdzić jakie zmiany weszły w najnowszych wersjach?

Codziennie zgłaszasz błędy, ale czy robisz to naprawdę dobrze? Poczytaj jak powinno wyglądać idealne zgłoszenie, na pewno możesz coś poprawić w sposobie, w jaki raportujesz awarie w aplikacji. Sprawdź jak inni testerzy w Twojej firmie zgłaszają błędy, przejrzyj ich scenariusze testowe, poproś o ocenę tych pisanych przez Ciebie. Konstruktywna krytyka będzie korzyścią zarówno dla Ciebie, jak i współpracowników.

Co jeszcze?

Wszystko zależy od tego w jakim kierunku chcesz się rozwijać. Jak już wspomniałam, ogrom przeróżnych technologii może przytłaczać (ja wciąż czuję się przytłoczona i bardzo cierpię przez świadomość, że braknie mi życia na zrozumienie i nauczenie się wszystkiego). Dlatego warto przemyśleć czym chcesz się zajmować i stworzyć plan wybiegający dalej niż na najbliższy miesiąc. Skakanie po technologiach nie jest najlepszym pomysłem (wiem po własnych doświadczeniach). Jeśli już trochę programujesz to niezbędny do pracy będzie system kontroli wersji np: GIT. Nauka podstaw Gita to kwestia kilku dni. Gita można używać z linii komend lub programów graficznych, przykładowo SourceTree  Podstawowa wiedza z HTML i CSSa też nie zaszkodzi. Przydać mogą Ci się również wyrażenia regularne czy podstawowe komendy Linuxa. Warto również zapoznać się z podstawą działania protokołu http oraz architekturą REST. Zawsze możesz podpytać doświadczonych współpracowników, jaka wiedza przydałaby Ci się na zajmowanym stanowisku.

Nie poddawaj się

Niestety nie jesteś w stanie nauczyć się wszystkiego. Zdarza się, że nauka jest lekka, łatwa i przyjemna – najważniejsze to nie poddawać się przy pierwszych porażkach. Później będzie lepiej (właściwie to raz lepiej, raz gorzej). Przygotuj plan nauki i go realizuj. Jeśli jesteś zmęczony – odpocznij. Nauka, kiedy zasypiasz na siedząco, na niewiele się zda. Polecam też wystrzegać się uczenia się zbyt wielu rzeczy jednocześnie. I pamiętaj, nie bój się pytać i szukać pomocy u innych. Z pewnością bardziej doświadczeni koledzy z pracy chętnie podzielą się wiedzą! Jeśli swoją przyszłość wiążesz z branżą IT przygotuj się na dużo nauki i ciągły rozwój. Nie ma tu miejsca na nudę. Każdego dnia w pracy dowiesz się czegoś nowego. W ciągu kilku lat poznasz dziesiątki narzędzi, przeróżne technologie i mnóstwo ciekawych osób.

Nie potrafisz zmotywować się sam – zapisz się na kurs (chociaż ilość materiałów i darmowych kursów jest ogromna, więc przy odrobinie samozaparcia nie potrzeba pieniędzy!). Dowiedz się czy pracodawca nie zasponsoruje Ci kursu (lub chociaż się dorzuci). Poszukaj darmowych lub dofinansowywanych szkoleń – w większych miastach jest ich naprawdę sporo.