Nie ma co ukrywać, że testerzy posiadający umiejętności związane z automatyzacją są bardziej poszukiwani na rynku pracy i mogą liczyć na wyższe wynagrodzenia. Ta znajomość otwiera drzwi do lepiej płatnych ról i stanowisk, takich jak Test Automation Engineer. Zmianie ulega też sama perspektywa pracy, bo zamiast odtwarzać kolejne scenariusze testowe masz możliwość tworzenia własnych rozwiązań i większego wpływu na jakość produktu. Jest to ważna zmiana nie tylko w obowiązkach, ale i w tym, jak postrzegasz swoją rolę w zespole.
Zacznij od tego, co znasz
Jeśli już używasz narzędzi takich jak Postman do testowania API, to masz już solidną podstawę do tego, aby rozpocząć naukę automatyzacji. Postman oferuje wbudowane możliwości automatyzacji testów, możesz zacząć od eksperymentowania z zakładką „Tests”, gdzie masz szansę automatyzować sprawdzanie kodów statusu czy czasów odpowiedzi. Nie musisz od razu uczyć się nowego języka programowania, bo wystarczy do tego odrobina JavaScriptu.
Chcesz wykorzystać pełen potencjał Postmana? Zajrzyj do szkolenia Postman – Automatyzacja testów Rest API, które pomoże ci przejść od prostych testów do kompletnych scenariuszy testowych.
Programowanie
Zdecydowana większość doświadczonych automatyków powtarza jedno: nie zaczynaj od frameworków, jeśli nie rozumiesz podstaw programowania. Pętle, warunki, klasy, funkcje to fundamenty, na których buduje się testy automatyczne, a jego brak prowadzi do chaotycznych i trudnych w utrzymaniu testów.
Nie musisz znać miliona algorytmów, bo wystarczy solidne opanowanie podstaw. Na tym poziomie nie programujesz systemów, tylko tworzysz narzędzia, które pomogą ci mądrzej testować. A jeśli potrzebujesz struktury w nauce, możesz sprawdzić nasze warsztaty przygotowane specjalnie dla testerów, takie jak:
- Java dla testerów oprogramowania
- Python dla testerów oprogramowania
- JavaScript dla testerów oprogramowania
Wybór języka programowania
JavaScript/TypeScript zyskują przewagę z dwóch powodów. Większość nowoczesnych narzędzi testowych to frameworki wspierające JS, ponieważ bardzo łatwo budować małe narzędzia i serwisy podstawowym JS/TS bez konieczności rozumienia JVM (wirtualna maszyna Javy) zasad programowania obiektowego czy innych skomplikowanych koncepcji. To daje dużą elastyczność w tym, co można zbudować przy tym samym nakładzie czasu i energii, przy stosunkowo niskim progu wejścia.
Python jest intuicyjny i czytelny, dobry do nauki, stanowi dobrą alternatywę, szczególnie jeśli planujesz pracę z narzędziami do automatyzacji wspierającymi ten język. Z kolei Java wciąż pozostaje popularnym wyborem, szczególnie w dużych organizacjach, gdzie na tej technologii często bazuje backend, a kombinacja Java + Selenium nadal przebija się w testowaniu interfejsów użytkownika, choć wymaga większego nakładu nauki.
Rekomendacje wyboru narzędzi
Testowanie interfejsów użytkownika
Największe rekomendacje od praktyków otrzymuje Playwright. Oficjalnie wspiera on JavaScript, Pythona, Javę i .NET. Jeśli chcesz nauczyć się jego obsługi, dokumentacja na stronie narzędzia będzie dobrym punktem startowym, a wbudowany generator kodu umożliwi rozpoczęcie pracy bez konieczności pisania wszystkiego od zera.
Cypress jest prostszy w obsłudze niż Selenium, z bardziej intuicyjnym API. Jeśli chcesz opanować to narzędzie krok po kroku, sprawdź szkolenie Cypress.IO – Automatyzacja testów aplikacji webowych.
Selenium jest nadal obecne, ale mniej przyjazne dla początkujących. Jeżeli mimo to chcesz poznać je od podstaw, pomocne może być szkolenie Selenium WebDriver dla początkujących.
Testowanie API
REST Assured (dla Java) ma mocne poparcie w środowisku testowania API, w tym samym kierunku rozwija się również Cypress. Alternatywą dla bardziej zaawansowanych użytkowników jest Maestro, narzędzie o składni czytelnej dla człowieka, obsługujące zarówno mobilne, jak i webowe aplikacje. Duże firmy jak DoorDash, Meta, Square, Uber, Stripe i Disney już się na nią przerzucają.
Nauka krok po kroku
Etap pierwszy: podstawy
Zacznij od nauki wybranego języka programowania. Skup się na jednym i opanuj go dobrze, zanim przejdziesz do nauki frameworków. Najmocniejsze rekomendacje od doświadczonych testerów otrzymuje kombinacja JavaScript/TypeScript plus Playwright.
Etap drugi: wzorce projektowe
Gdy opanujesz już podstawy programowania, naucz się Page Object Model, czyli podstawowego wzorca projektowego w automatyzacji. Następnie przejdź do tzw. „fixtures”, czyli mechanizmów służących do ponownego wykorzystania zadań setup i teardown wykonywanych przed i po grupach testów. Przećwicz testy sparametryzowane, które pozwalają uruchamiać ten sam zestaw kroków testowych dla różnych warunków i wyników. Warto poznać też analizę wartości brzegowych (ang. Boundary Value Analysis) i podział na podzbiory równoważności (ang. Equivalence Partitioning), czyli techniki, które pomagają w projektowaniu skutecznych zestawów danych testowych.
Etap trzeci: zaawansowane koncepcje
Gdy poczujesz się dość pewnie z podstawami, poznaj Dockera albo skonfiguruj lokalnie Jenkinsa i zbuduj pipeline’y uruchamiające testy automatycznie. Playwright daje doskonałe wsparcie dla testowania API, nie ograniczaj się tylko do interfejsów użytkownika.
Zarządzanie procesem nauki
Jeśli cały swój wysiłek wkładasz w testowanie manualne, prawdopodobnie nie uda ci się przejść na automatyzację. Musisz nauczyć się mówić „nie” niektórym codziennym zadaniom, żeby znaleźć czas na rozwój umiejętności automatyzacji.
Znajdź mentora, kogoś w zespole lub firmie, kto już zajmuje się automatyzacją. Poproś o sesję 1 na 1, przegląd kodu, pomoc w konfiguracji pierwszego projektu automatyzacji. Zacznij małymi krokami i pokazuj zainteresowanie innym. Jeśli pracujesz zdalnie lub bez lokalnego wsparcia, możesz skorzystać z aktywnego uczestnictwa w społecznościach online lub lokalnych meetupach.
Pułapki, oczekiwania i perspektywy rozwoju
Nie traktuj automatyzacji jako alternatywy „albo-albo” wobec testowania manualnego. Najlepsze wyniki osiągają osoby, które wykorzystują jedno podejście do wzmocnienia drugiego. Chodzi o to, że automatyzacja powinna znacznie poprawić jakość testowania manualnego, a nie je zastąpić. Po raz kolejny zastosowanie znajdzie powyższe zalecenie, aby nie skupiać się tylko na frameworkach bez zrozumienia podstaw programowania. Takie podejście prowadzi do tworzenia testów słabej jakości, które są trudne w utrzymaniu.
Dawniej wymagano znajomości wielu języków programowania, ogólnego przeznaczenia i frameworków, żeby mieć szansę na przebicie się do automatyzacji. Obecnie sytuacja się zmieniła, wystarczy opanować jeden język i jeden dobry framework. Trzeba jednak pamiętać (i będziemy powtarzać to do znudzenia), że proces przejścia wymaga czasu i systematyczności. Automatyzacja to umiejętność, która rozwija się stopniowo.
Z całością dyskusji i innymi ciekawymi radami zapoznasz się tutaj.
Redakcja