Czy można automatyzować testy bez znajomości programowania?

Czy można automatyzować testy bez znajomości programowania?
Odpowiedź brzmi: to zależy. Z jednej strony automatyzacja testów opiera się na kodzie, dlatego tester automatyzujący musi znać podstawy programowania. Z drugiej strony istnieją realne ścieżki przejścia dla osób bez doświadczenia programistycznego.

Bardziej precyzyjne pytanie powinno brzmieć: czy można nauczyć się programowania specjalnie na potrzeby automatyzacji testów? Zdecydowanie tak.

Ale zanim przejdziemy do konkretów, rozprawimy się z jeszcze jednym powszechnym mitem. Testy automatyczne wymagają kodu - czy to w Pythonie, Javie czy JavaScript. Choć mamy do dyspozycji narzędzia low-code, które faktycznie uproszczają start, to nawet one wymagają zrozumienia podstawowych koncepcji programistycznych.

Jak realnie przejść z testów manualnych do automatyzacji?

Przejście od testowania manualnego do automatyzacji jest całkowicie możliwe, wymaga jednak systematycznego podejścia. Wyznaczyliśmy kilka kroków na tej drodze:

1. Zdobycie solidnych podstaw testowania

Zanim sięgniesz po narzędzia do automatyzacji, upewnij się, że dobrze rozumiesz najważniejsze podstawy testowania, czyli podejścia i techniki testowania manualnego, zasady pracy w środowiskach Agile/Scrum, korzystanie z systemów do zgłaszania i zarządzania defektami oraz że znasz narzędzia do zarządzania testami. To będzie Twoim atutem niezależnie od poziomu automatyzacji. 

2. Automatyzacja ale bez kodowania

Spróbuj automatyzacji bez kodowania, czyli automatycznej weryfikacji oprogramowania bazującego na uniwersalnych narzędziach. W praktyce wygląda to tak, że bierzesz gotowe narzędzie i uruchamiasz je go sprawdzenia twojego oprogramowania. Takie rozwiązania dostępne są niemalże dla każdego typu testów i dają niesamowite rezultaty w relacji do naprawdę niewielkich kosztów wdrożenia i użycia narzędzia. Największą ich gamę znajdziemy dla aplikacji webowych, ale na innych platformach również jest ich sporo. Przykłady.

  • testy funkcjonalne: biblioteki i narzędzia sprawdzające kody błędów stron np. XENU
  • testy dostępności: audyt dostępności np. WAVE
  • testy wydajności: testy „ciężaru’ stron np. PageSpeed Insight
3. Wybór odpowiedniego języka programowania

Jeśli dopiero zaczynasz, Python to dobry wybór. Jest prostszy w składni niż Java, a jednocześnie pozwala szybko osiągnąć widoczne rezultaty. Java również ma swoje zalety, szczególnie, jeśli zależy Ci na pracy w większych zespołach albo projektach korporacyjnych. 

Skoncentruj się na jednym języku i opanuj jego podstawy:

  • zmienne i typy danych,
  • instrukcje warunkowe i pętle,
  • funkcje i metody,
  • podstawy programowania obiektowego,
  • obsługa wyjątków.
4. Nauka korzystania z narzędzi do automatyzacji

Dopasuj wybór narzędzia do rodzaju testów, które chcesz realizować:

  • aplikacje webowe: Selenium, Cypress lub Playwright
  • aplikacje mobilne: Appium (warto najpierw poznać specyfikę testowania mobilnego),
  • testy API: Postman (z Newman), RestAssured,
  • testy wydajnościowe: JMeter, 6 lub Gatling.

Dobrze, jeśli wybrane narzędzie współgra z językiem, którego się uczysz.

5. Zrozumienie podstaw CI/CD

Automatyzacja najczęściej jest częścią większego procesu. Wiedza o CI/CD pomoże Ci odnaleźć się w zautomatyzowanych pipeline’ach. Warto poznać:

  • Git (system kontroli wersji),
  • Jenkins, GitLab CI, GitHub Actions (narzędzia do uruchamiania testów w procesach CI),
  • Docker (konteneryzacja środowisk).
6. Systematyczna praktyka

Przygotuj się na to, że nauka programowania i automatyzacji wymaga dyscypliny i regularności. Twoje postępy powinny być mierzalne i utrwalane:

  • poświęć codziennie 1-2 godziny na naukę,
  • twórz proste, własne testy,
  • nie pomijaj podstaw (zbudowany solidny fundament ułatwi późniejszą naukę zaawansowanych koncepcji)
  • pracuj samodzielnie, unikając kopiowania samodzielnych rozwiązań,
  • rób notatki i regularnie powtarzaj materiał.

Realistyczne oczekiwania zawodowe

Większość ogłoszeń dla testerów automatyzujących zakłada znajomość przynajmniej jednego języka programowania oraz umiejętność tworzenia skryptów testowych, jednak wiele firm z otwartością podchodzi do kandydatów, którzy mają doświadczenie manualne i wykazują się samodzielną nauką oraz potrafią zaprezentować własne projekty. Nie musisz więc mieć tytułu inżyniera oprogramowania, wystarczy, że pokażesz, że rozumiesz proces testowania, masz techniczne podstawy i chcesz się rozwijać w stronę automatyzacji.

Menedżerowie raczej nie zatrudnią osoby zupełnie bez doświadczenia testerskiego na stanowisko SDET. Ale tester manualny, który samodzielnie uczy się automatyzacji i pokazuje własne projekty? To już kandydat wart uwagi. 

Bonus

Przykładowy plan nauki na pierwszy rok
  1. Miesiąc 1-2. Poznaj podstawy wybranego języka programowania (Python/Java).
  2. Miesiąc 3-4. Pracuj z wybranym narzędziem automatyzacyjnym (np. Selenium).
  3. Miesiąc 5-6. Zbuduj prosty framework testowy i zautomatyzuj kilka przypadków testowych.
  4. Miesiąc 7-8. Poznaj podstawy CI/CD i zintegruj swoje testy z systemem ciągłej integracji.
  5. Miesiąc 9-10. Rozszerz swoje umiejętności o testowanie API i podstawy testów wydajnościowych.
  6. Miesiąc 11-12. Przygotuj portfolio demonstracyjne z własnymi projektami.

Wnioski

Co prawda nie da się wejść w automatyzację całkiem bez kodu, można się go nauczyć i to szybciej, niż myślisz. Wystarczy tylko podejść do tematu metodycznie i nie poddawać się po pierwszym błędzie w konsoli. 
 

To powinno Cię zainteresować