Tester automatyzujący – czym się zajmuje i jak nim zostać?

19.06.2019

Artykuł

Błędnie działające oprogramowanie może doprowadzić do wielu problemów (np. sprzedaż artykułu, którego nie ma w magazynie), a co za tym idzie także do strat finansowych. Dlatego też każde oprogramowanie przed komercyjnym użyciem musi zostać dokładnie przetestowane i pozbawione błędów. Praca testerów staje się więc coraz bardziej potrzebna i popularna.

W tym artykule odpowiemy na pytania:

  • Jak zostać testerem automatyzującym?
  • Jak wygląda praca testera?
  • Z jakich narzędzi korzystać?
  • Gdzie szukać wiedzy?
  • Czego od testera oczekują pracodawcy?
  • Ile zarabiają testerzy?
  • Czy rzeczywiście jest to najłatwiejszy sposób, aby wejść do świata IT?

Obowiązki testera

Na początek kilka słów o tym, jakie są główne zadania testera:

  • Współpraca z programistami – dobra komunikacja jest tutaj podstawą
  • Tworzenie scenariuszy i przypadków testowych
  • Przeprowadzanie testów
  • Raportowanie błędów
  • Przygotowywanie raportów

Tester manualny vs automatyzujący – dlaczego jedno nie istnieje bez drugiego?

Tester manualny ocenia każdy przypadek za pomocą tzw. interfejsu białkowego, czyli “na oko”, a tester automatyzujący ma za zadanie te czynności zautomatyzować. Czy można od razu zostać testerem automatyzującym bez znajomości wiedzy z zakresu testowania manualnego? W teorii tak, ale nie polecamy takiej kolejności w rozwoju kariery, ponieważ znajomość uniwersalnych zagadnień związanych z testami (również manualnymi) jest niezbędna w pracy testera automatyzującego.

Jeżeli choć trochę czytaliście na temat testów to pewnie natrafiliście na pojęcie przypadek testowy (ang. test case). Co to jest? Otóż przypadek testowy opisuje, w jaki sposób przetestować pojedynczą funkcjonalność, np. załączanie pliku w formularzu kontaktowym.

Aby dobrze opisać przypadek testowy należy podać następujące informacje:

  • ID – unikalny identyfikator
  • Tytuł – tytuł, który mówi czego dotyczy przypadek testowy.
  • Środowisko uruchomienia – system operacyjny, przeglądarka, ew. inne oprogramowanie
  • Warunek początkowy – warunki niezbędne do wykonania przypadku testowego
  • Dane testowe – dane, które chcemy użyć do testowania
  • Kroki do wykonania – instrukcja, która w punktach mówi, co należy wykonać.
  • Oczekiwany rezultat – opisanie oczekiwanego rezultatu, dzięki czemu będziemy w stanie stwierdzić, czy test zakończył się sukcesem lub porażką. Przykład; plik został prawidłowo załączony do formularza.
  • Warunek końcowy – warunek, który jednoznacznie określa kiedy test można uznać za wykonany

Inne ważnej pojęcie to scenariusz testowy, jest to “przepis”, który mówi krok po kroku, w jaki sposób należy sprawdzić działanie systemu lub jego fragmentu. Scenariusz testowy składa się z przypadków testowych.

Kiedy automatyzować testy, a kiedy to jest nieopłacalne?

Kiedy warto automatyzować?

  • Wtedy, gdy testy są powtarzalne i należy je wykonywać często
  • W przypadku testowania po modyfikacjach (regresja)
  • Gdy testy są łatwe do automatyzacji i przynoszące dużą wartość zwrotu – ROI
  • Przy testach wydajności – ponieważ nie jesteśmy w stanie “ręcznie” zasymulować ruchu wielu użytkowników i wygenerować dużego obciążenia.

Przykładem są serwisy bankowe, które przed produkcyjnym wdrożeniem nowej wersji muszą przejść szereg, zaplanowanych wcześniej, testów.

Kiedy nie warto automatyzować?

Nie warto automatyzować testów w przypadku projektów:

  • które są małe z dużym tempem zmian
  • które są krótkie, w których automatyzacja nie zdąży się zwrócić
  • w których trudno byłoby cokolwiek zautomatyzować np. ze względu na integracje z innymi systemami/urządzeniami

Warto dodać, że często możemy zrobić zaślepki niektórych części systemu (np. drukarka) lub innych, dających się wyodrębnić, elementy systemu. Te zaślepki symulują działanie określonych modułów.

Automatyzacja, to nie tylko testy interfejsu

Jakie mamy rodzaje testów poza testowaniem interfejsu?

  • testy jednostkowe
  • testy wydajnościowe
  • testy API
  • testy e2e (end to end)
  • testy integracyjne
  • testy bezpieczeństwa

W tym momencie warto wspomnieć o piramidzie testowej, która pokazuje, które testy trwają najkrócej/najdłużej, jaki jest ich koszt i ile ich trzeba wykonać. Wspomniana piramida została szerzej omówiona podczas webinaru.
Piramida testowa - webinar - infoShare Academy
Źródło: http://fabiopereira.me/blog/wp-content/uploads/2012/03/testing-pyramid-fabio-pereira.png

Jak rozpocząć naukę testowania automatycznego?

  1. Przede wszystkim należy być świadomym tego, że automatyzując testy piszemy kod w jakimś języku, np. Pythonie lub Javie
  2. Najlepiej zacząć od nauki podstaw języka programowania, w którym potem będziemy chcieli automatyzować testy
  3. Potem warto nauczyć się jednego z frameworków do testowania, np. Selenium (np. webdriver)
  4. Praktyka – znaleźć dowolny serwis, np. taki, który umożliwia logowanie – zrobić automatyzację logowania, potem idziemy dalej, np. wypełniamy formularz
  5. Napotkamy problemy – np. chcemy kliknąć przycisk, który jest niewidoczny, bo się nie wczytał – takie przypadki należy obsłużyć w teście.

Gdzie i jak zdobywać wiedzę, doświadczenie i znajomości?

  • Książki:
  • – Testowanie i jakość oprogramowania (Adam Roman)
    – Zawód tester (Radosław Smilgin)

  • Warto chodzić na konferencje i meetupy, które są organizowane w każdym większym mieście, np. TrojQA, WarszawQA, KraQA, itd.
  • Kursy w szkołach programowania.
  • Dlaczego? Nic nie zastąpi pracy z ludźmi w zespole, a także pomocy trenerów, zarówno podczas zajęć, jak i realizacji prac domowych. Podczas kursów realizowane są też prawdziwe biznesowe przykłady. Na kursach przekazywana jest całościowa wiedza, tzn. podstawy programowania, teoria testów, dobre praktyki, niezbędne narzędzia, praca projektowa w zespołach, itd.

Sprawdź program naszego kursu testerskiego:
Tester automatyzujący – Python DevQA

W jakich językach można automatyzować testy?

Najbardziej popularne to:

  • Python
  • Java
  • C#
  • JavaScript

Najbardziej przydatne narzędzia w pracy testera

Testowanie Manualne:

Testowanie automatyczne:

Gdzie i jak szukać pracy?

  • Na początku zbuduj swoje portfolio, którym warto się chwalić. To najlepszy dowód na pokazanie umiejętności.
  • Przygotuj profil na LinkedIn oraz sieć kontaktów
  • Ofert możesz szukać na grupie na Facebooku: Testowanie oprogramowania – PRACA, Ogłoszenia
  • oraz na serwisach:
  • – NoFluffJobs: https://nofluffjobs.com/
    – BulldogJob: https://bulldogjob.pl/
    – JustJoinT: https://justjoin.it/

  • Warto mieć znajomych, którzy mogą polecić nas do pracy. Zdarza się, że trenerzy podczas kursów polecają swoich kursantów.

Ile zarabiają testerzy automatyzujący?

Odpowiedzi na to pytanie znajdziecie w poniższych linkach:
Część 1: http://testerzy.pl/baza-wiedzy/analiza-zarobkow-testerow-2018-czesc-i
Część 2: http://testerzy.pl/baza-wiedzy/analiza-zarobkow-testerow-2018-czesc-ii

Webinar

🎥 Jeżeli chcesz dowiedzieć się więcej o pracy testera oprogramowania to zapraszamy Cię do obejrzenia webinaru, który możesz obejrzeć tutaj: nagranie z webinaru

Artykuł powstał na podstawie webinaru „Jak zostać testerem automatyzującym?”
Uczestnikami byli: Robert Kaszubowski, Karol Gierszewski, Andrzej Kiesz