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żne 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.

Myślisz o zmianie zawodu i wejściu do świata IT?
Sprawdź nadchodzący zdalny kurs Machine Learning z trenerem na żywo!

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?

  • Jednostkowe
  • Wydajnościowe
  • Testy API
  • Testy e2e (end to end)
  • Integracyjne
  • 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.