Ź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:
- Junior tester (do około 6 miesięcy testowania),
- Tester – zwany z angielskiego regularem (do 2 – 3 lat doświadczenia),
- Tester mid – czyli ze średnim doświadczeniem (do 5 lat),
- 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.
- Operator testów – zajmujący się zazwyczaj uruchomieniem testów zaprojektowanych przez ich projektanta,
- Analityk testów – rola zajmująca się analizą dokumentacji testerskiej i eksperckim wsparciem projektów w zakresie swojej specjalizacji,
- 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:
- Tester z branży automotive – pracujący przy systemach transportowych,
- 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:
- Tester rozwiązań mobilnych [ISTQB®] – w tym testerzy Androida i iOS-a,
- Tester rozwiązań internetowych – testerzy stron i aplikacji webowych,
- Tester rozwiązań desktopowych – testerzy rozwiązań na komputery stacjonarne,
- 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:
- Tester jednostkowy – piszący unit testy,
- Tester integracyjny – głównie piszący testy API,
- Tester systemowy – głównie tester funkcjonalny lub automatyzujący,
- 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:
- Tester bazujący na modelu [ISTQB] – przy notacji wymagań w postaci modelu,
- Tester eksploracyjny – przy braku specyfikacji wymagań,
- 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:
- Tester GUI – tester zajmujący się testowaniem interfejsów graficznych,
- Tester noGUI – osoba testująca rozwiązania bez interfejsu dotykowego, np. z interfejsem głosowym,
- 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:
- Tester funkcjonalny,
- Tester niefunkcjonalny,
- Tester bezpieczeństwa – nazywani często pentesterami,
- Tester wydajności – zajmujący się aspektem efektywności i czasami odpowiedzi systemów,
- Tester użyteczności – specjalista weryfikujący poprawność konstrukcji interfejsu oraz interakcji w nim, często nazywany testerem UX,
- Tester niezawodności – sprawdzający zdolność do działania oprogramowania w dłuższym czasie,
- Tester dostępności – weryfikujący czy oprogramowanie będzie dostępne dla osób z ograniczeniami,
- Inny – rola przypisana do testowanej charakterystyki oprogramowania.
Można również na odpowiedzialności testerskie spojrzeć z perspektywy modelu rozwoju oprogramowania, w jakim pracują:
- Tester zwinny – agile tester, który często nie jest rolą, a pewną odpowiedzialnością projektową,
- Tester DevOps – tester pracujący w kulturze pracy DevOps, który często nazywany jest również DevTestOpsem,
- 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.:
- Tester ERP,
- Tester CRM,
- 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:
- Tester – zwany najczęściej testerem manualnym, czyli taki, który uruchamia testy ręcznie,
- 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.
- Lider zespołu testerskiego – zazwyczaj do 6 osób,
- Koordynator testerów – który często spina kilka działań testerskich, ale w żadnym nie ma on kierowniczej roli,
- Kierownik testów – który zarządza wszystkimi działaniami testerskimi w projekcie,
- 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 automatyzujący,
- Tester widoków i interakcji,
- Tester użyteczności
- Tester dostępności,
- Kierownik testów.
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.