Tester "manualny" czy „automatyczny”?
Zacznijmy od tego, że nie ma testerów "automatycznych". Jesteśmy ludźmi, więc nazywajmy się testerami automatyzującymi. Automatyczna to może być pralka 😊
Żeby odpowiedzieć na pytanie czym różni się tester, zwany potocznie "manualnym" od automatyzującego musimy najpierw zdać sobie sprawę, czym testerzy oprogramowania się w ogóle zajmują w swojej codziennej pracy.
Jakie są standardowe obowiązki testera?
- Czyta wymagania dotyczące budowy aplikacji
- Pyta o szczegóły działania analityków, biznes, deweloperów i klienta
- Na podstawie własnej analizy oraz rozmów piszę scenariusze testowe
- Wykonuje te scenariusze i raportuje defekty
- Dyskutuje z analitykami, klientem, deweloperami o niektórych defektach i rozbieżnościach w działaniu systemu
- Rozmawia z całym zespołem o procesie produkcji, wdrażaniu nowych wersji, testach, jakie są przeprowadzane, problemach, które trzeba rozwiązać
- Prezentuje klientowi co zostało zrobione w danej iteracji
- Dostarcza zespołowi informacji o przeprowadzonych testach oraz jakości systemu
Jak widzisz, tester ma dużo różnych obowiązków. Skupmy się jednak na sposobie wykonywania scenariuszy.
Testy wykonywane manualnie
I tutaj dochodzimy do sedna — testy można wykonywać manualnie — klikać po aplikacji ręcznie i weryfikować co wyświetla się na ekranie. Możemy też napisać program, który będzie to robić za nas.
Testy wykonywane automatycznie
W skrócie — piszemy kod, który, wykonując się, będzie realizował wszystkie akcje związane z realizacją scenariusza testowego: od przygotowania danych, przez akcje w systemie aż do sprawdzenia wyniku testu (w testach automatycznych mówimy o "asercjach", które często mogą być o wiele szersze i dokładniejsze niż w testach manualnych).
Mamy więc program, który testuje inny program :) Brzmi to świetnie, dlaczego więc wciąż nie mamy w firmach zautomatyzowanych wszystkich testów? Czy da się je wszystkie zautomatyzować?
Większość z nich tak — ale nie zawsze pełna automatyzacja się opłaca. Jest ona droga, ponieważ:
- Napisanie programu, który będzie za nas klikać, trwa dłużej niż przeklikanie aplikacji ręcznie.
- Testerzy automatyzujący mają większe oczekiwania finansowe.
- Utrzymanie istniejącego kodu testów (który dezaktualizuje się wraz z rozwojem aplikacji) również kosztuje.
Co więc opłaca się automatyzować?
- Scenariusze, które są regularnie wykonywane
- Testy na dużej ilości danych, których manualne wykonanie trwałoby bardzo długo, byłyby narażone na błąd ludzki oraz byłyby monotonne.
- Testy API — wymianę danych pomiędzy systemami bez interfejsu użytkownika
- Generowanie danych — żeby za każdym razem nie tworzyć ich ręcznie
Dlaczego testerzy automatyzujący tak dużo zarabiają?
Napisanie programu, który testuje za nas aplikację nie jest takie proste. Musisz nauczyć się programować oraz poznać inne technologie i narzędzia wspierające programowanie.
Ścieżki nauczania automatyzacji są różne. Ta, którą proponujemy w ramach naszego kursu 4_testers zawiera:
- Tworzenie własnej strony WWW w celu zapoznania się z HTML, CSS, JavaScript
- Naukę systemu do kontroli wersji Git
- Podstawy języka programowania Python
- Poznanie narzędzia wspierającego pisanie kodu (IDE) – PyCharm
- Naukę podstaw programowania obiektowego
- Pisanie testów jednostkowych
- Podstawy języka SQL
- Naukę narzędzia Postman do manualnych testów API (przydatną w automatyzacji)
- Pisanie testów API z użyciem narzędzi pytest i biblioteki Requests
- Pisanie testów UI z użyciem narzędzia Selenium
- Wykorzystanie narzędzia do Continues Integration (automatycznego wykonywania Twojego kodu do testów) - GitLab
- I wiedzę jak to wszystko skonfigurować, zaplanować i wdrożyć
Żeby się tego nauczyć potrzeba kilku miesięcy i dużo pracy oraz samozaparcia. Szczególnie że część osób wybiera drogę samodzielnej nauki bez wsparcia ekspertów.
Niestety wielu osobom nie udaje się przejść tej ścieżki i dlatego role związane z automatyzacją są lepiej płatne.
No ale czy jest zatem coś pomiędzy w czym mogę się doszkolić?
Testerzy „techniczni”
Zdarza się, że w ogłoszeniach o pracę pojawia się termin "tester techniczny". Najczęściej chodzi tutaj o osobę, która nie jest testerem automatyzującym, ale potrafi m.in.:
- Pisać skrypty bazodanowe SQL
- Zalogować się na serwer, znaleźć i przeanalizować logi aplikacji
- Posługiwać się narzędziami do testów API jak Postman czy SoapUI
- Wykorzystać narzędzia programisty w przeglądarce
Jak więc widzisz nie musisz od razu zostać testerem automatyzującym (lub jak wolisz “automatersem”). W 4_testers wierzymy jednak, że warto pójść za ciosem i dlatego w ramach naszego programu ścieżki te są połączone 🙂