Rodzaje testerów oprogramowania

Rodzaje testerów oprogramowania
Tester oprogramowania jest zawodem niszowym, ale w niszy również pojawiają się różnego rodzaju podziały i specjalizacje. Jest ich naprawdę wiele i często dotykają bardzo unikatowych obszarów IT.

Źródła wiedzy testerskiej definiują wiele ról lub odpowiedzialności testerskich. Część z nich nie przyjęła się w świecie testowania, a część rozpowszechniła się dość mocno. 

Pierwszy podział wynika z doświadczenia w testowaniu:

  1. Junior tester (do około 6 miesięcy testowania),
  2. Tester – zwany z angielskiego regularem (do 2 – 3 lat doświadczenia),
  3. Tester mid – czyli ze średnim doświadczeniem (do 5 lat),
  4. Senior tester (około 8 lat i więcej).

Innym podziałem ról testerskich, wynikającym ze struktury certyfikacji w ISTQB®, jest wyróżnienie wynikające z odpowiedzialność względem testów. 

  1. Operator testów – zajmujący się zazwyczaj uruchomieniem testów zaprojektowanych przez ich projektanta,
  2. Analityk testów – rola zajmująca się analizą dokumentacji testerskiej i eksperckim wsparciem projektów w zakresie swojej specjalizacji,
  3. Projektant testów – zajmuje się budowaniem przypadków testowych oraz skryptów testowych. 

Będąc przy ISTQB® warto wspomnieć, że wprowadza ono wiele ról testerskich, które nie są szczególnie popularne w projektach i często wynikają ze specyfiki branży w jakich się znajdują. Są to:

  1. Tester z branży automotive – pracujący przy systemach transportowych,
  2. Tester z branży hazardowej – testujący głównie maszyny kasynowe.

Takie wyróżniki testerów można by stworzyć dla każdej innej branży, której specyfika testowania różni się od klasycznego testowania i moglibyśmy mieć testerów branży produkcyjnej czy testerów systemów kasowych.

ISTQB® w swoim systemie certyfikacji ma również niejako „niedokończone” struktury ról gdzie w danej gałęzi dałoby się wyróżnić więcej niż jedną, a ISTQB® pokazuje jedynie pojedynczą z nich. 

Może to być podział ze względu na platformy dostarczania oprogramowania:

  1. Tester rozwiązań mobilnych [ISTQB®] – w tym testerzy Androida i iOS-a,
  2. Tester rozwiązań internetowych – testerzy stron i aplikacji webowych,
  3. Tester rozwiązań desktopowych – testerzy rozwiązań na komputery stacjonarne,
  4. Tester rozwiązań wbudowanych – osoby testujące oprogramowanie (zazwyczaj) bez interfejsu graficznego.

Opcjonalnie można dorzucić jeszcze testera wearables czy testera internetu rzeczy, ale te role możemy również potraktować jako mieszczące się w ogólnej strukturze z podziałem ze względu na platformę.

Łatwo można również wyróżnić testerów pracujących na różnych poziomach testowania:

  1. Tester jednostkowy – piszący unit testy,
  2. Tester integracyjny – głównie piszący testy API,
  3. Tester systemowy – głównie tester funkcjonalny lub automatyzujący,
  4. Tester akceptacyjny [ISTQB®] – często okazjonalna rola przy odbiorze oprogramowania.

Do tej klasyfikacji ról czasami dokleja się testera e2e (end-to-end), w zakresie, którego pojawia się odpowiedzialność za testowania całego procesu zaszytego w systemie – od pierwszego zapytania do końcowej odpowiedzi. 

ISTQB® wyróżnia również role bazujące w specyficznej strategii lub też technice:

  1. Tester bazujący na modelu [ISTQB] – przy notacji wymagań w postaci modelu,
  2. Tester eksploracyjny – przy braku specyfikacji wymagań,
  3. Tester bazujący na specyfikacji funkcjonalnej – tester weryfikujący system opisany specyfikacją napisaną w języku naturalnym.

Strategii testerskich są dziesiątki i do każdej z nich można przypisać role, jednak nie są one zbyt popularne. 

Testerów można również wyróżnić ze względu na testowane przez nich interefejsy:

  1. Tester GUI – tester zajmujący się testowaniem interfejsów graficznych,
  2. Tester noGUI – osoba testująca rozwiązania bez interfejsu dotykowego, np. z interfejsem głosowym,
  3. Tester API – tester zajmujący się weryfikacją interfejsów programowalnych.

Kolejnym podziałem może być wyróżnienie odpowiedzialności względem testowania cech oprogramowania. Wyróżniamy:

  1. Tester funkcjonalny,
  2. Tester niefunkcjonalny,
    1. Tester bezpieczeństwa – nazywani często pentesterami,
    2. Tester wydajności – zajmujący się aspektem efektywności i czasami odpowiedzi systemów,
    3. Tester użyteczności – specjalista weryfikujący poprawność konstrukcji interfejsu oraz interakcji w nim, często nazywany testerem UX,
    4. Tester niezawodności – sprawdzający zdolność do działania oprogramowania w dłuższym czasie,
    5. Tester dostępności – weryfikujący czy oprogramowanie będzie dostępne dla osób z ograniczeniami,
    6. Inny – rola przypisana do testowanej charakterystyki oprogramowania.

Można również na odpowiedzialności testerskie spojrzeć z perspektywy modelu rozwoju oprogramowania, w jakim pracują:

  1. Tester zwinny – agile tester, który często nie jest rolą, a pewną odpowiedzialnością projektową,
  2. Tester DevOps – tester pracujący w kulturze pracy DevOps, który często nazywany jest również DevTestOpsem,
  3. Tester w modelu V – osoba odpowiedzialna za testowanie w najbardziej rozpowszechnionym modelu kaskadowym.

Pamiętajmy, że do każdego modelu o specyficznych cechach można przypisać rolę. 

Dodatkowo możemy wyróżnić testerów pracujących w specyficznych i zazwyczaj dużych systemach, jak np.:

  1. Tester ERP, 
  2. Tester CRM,
  3. Tester [inne] – gdzie „inne” oznacza jeden z wymagających specjalnej wiedzy, umiejętności i doświadczenia system.

Jednym z najpopularniejszych podziałów ról będzie wyróżnienie odpowiedzialności testerskich w zakresie uruchomienia testów:

  1. Tester – zwany najczęściej testerem manualnym, czyli taki, który uruchamia testy ręcznie,
  2. Tester automatyzujący – nazywany (zbyt) często „testerem automatycznym”, który pisze i uruchamia testu automatyczne.

Tester automatyzujący często wpada do kategorii testera technicznego czyli odpowiedzialności wymagających zrozumienia i posługiwania się narzędziami technicznymi. 

Na koniec wszystkich podziałów można jeszcze wspomnieć testerów w rolach liderskich. Choć nie na każdym z tych poziomów wymaga się umiejętności powiązanych z testowaniem, to zazwyczaj będą one pomocne. 

  1. Lider zespołu testerskiego – zazwyczaj do 6 osób,
  2. Koordynator testerów – który często spina kilka działań testerskich, ale w żadnym nie ma on kierowniczej roli,
  3. Kierownik testów – który zarządza wszystkimi działaniami testerskimi w projekcie,
  4. Dyrektor testów – często jest to rola liniowa odpowiedzialna za zarządzanie działem testów.

Ogólna klasyfikacja ról testerskich

Większość wspomnianych ról nie jest szczególnie rozpowszechnionych w IT i gdybyśmy chcieli budować strukturę korzystając tylko z tych najpopularniejszych mogłaby ona wyglądać następująco:
Tester oprogramowania:

  • Tester funkcjonalny (manualny),
  • Tester techniczny,
    • Tester automatyzujący,
      • GUI,
      • API / integracja,
    • Tester bezpieczeństwa,
    • Tester wydajności,
  • Tester widoków i interakcji,
    • Tester użyteczności
    • Tester dostępności,
  • Kierownik testów.

rodzaje-testerow-oprogramowania.png

Zaprezentowane tu role i odpowiedzialności testerskie nie wyczerpują dostępnych na rynku opcji. Może się również zdarzyć, że wspomniane tutaj role występują w organizacjach pod innymi nazwami i mają zupełnie inny zakres obowiązków wynikających ze specyfiki danej organizacji. 

 

Sprawdź naszą analizę definicji: TESTER OPROGRAMOWANIA >>

To powinno Cię zainteresować