Proces testowy, jak każdy zorganizowany wysiłek, wymaga jasno zdefiniowanych ról i odpowiedzialności.
Chociaż w praktyce nazewnictwo stanowisk i dokładny podział zadań mogą się różnić w zależności od organizacji i projektu, ISTQB na poziomie podstawowym wyróżnia dwie główne, pryncypialne role w testowaniu: rolę kierownika testów (Test Manager) oraz rolę testera (Tester).
Zrozumienie zakresu odpowiedzialności przypisanego do tych ról jest kluczowe dla efektywnej organizacji pracy zespołu testowego i jego współpracy z resztą zespołu projektowego.
W tej lekcji przyjrzymy się bliżej tym dwóm rolom i typowym zadaniom, które są z nimi związane.
Warto od razu zaznaczyć, że podział na te dwie role nie oznacza sztywnej struktury organizacyjnej.
W zależności od kontekstu projektu, wielkości zespołu, stosowanej metodyki (np. Agile) i umiejętności poszczególnych osób, zadania przypisane do tych ról mogą być wykonywane przez różne osoby i w różnym czasie.
Jedna osoba może pełnić obie role jednocześnie (szczególnie w małych zespołach), zadania kierownika testów mogą być realizowane przez lidera zespołu, menedżera projektu lub nawet programistę, a zadania testera mogą być rozproszone wśród różnych członków zespołu.
Kluczowe jest jednak zrozumienie *logicznego* podziału odpowiedzialności, niezależnie od konkretnych stanowisk.
Rola Kierownika Testów (Test Manager Role)
Rola kierownika testów obejmuje ogólną odpowiedzialność za proces testowy oraz za przywództwo (leadership) w działaniach testowych.
Osoba pełniąca tę rolę koncentruje się na strategicznym i zarządczym aspekcie testowania, zapewniając, że działania testowe są zgodne z celami projektu, polityką organizacji i najlepszymi praktykami.
Jest to rola wymagająca zarówno umiejętności technicznych, jak i zarządczych oraz komunikacyjnych.
Główne zadania i odpowiedzialności typowo przypisywane do roli kierownika testów obejmują:
- Opracowanie lub przegląd polityki i strategii testów dla organizacji: Definiowanie ogólnych zasad, standardów i podejść do testowania stosowanych w całej organizacji lub w ramach konkretnego programu.
- Planowanie działań testowych: Uwzględnianie kontekstu, zrozumienie celów i ryzyk testowania, wybór podejścia, szacowanie czasu i zasobów, definiowanie kryteriów wejścia i wyjścia. Tworzenie i aktualizacja Planu Testów.
- Inicjowanie analizy, projektowania i implementacji testów: Uruchamianie i nadzorowanie prac związanych z przygotowaniem testów, zapewnienie dostępności odpowiednich zasobów i środowisk.
- Zapewnienie odpowiedniego środowiska testowego: Koordynacja działań związanych z konfiguracją i utrzymaniem środowisk potrzebnych do przeprowadzenia testów.
- Monitorowanie i sterowanie postępami testów: Śledzenie realizacji planu, zbieranie metryk, analiza odchyleń, podejmowanie działań korygujących, zarządzanie ryzykiem.
- Zapewnienie odpowiedniego poziomu zarządzania konfiguracją testware: Dbanie o wersjonowanie, spójność i identyfikowalność artefaktów testowych.
- Definiowanie i wdrażanie odpowiednich metryk: Wybór wskaźników do pomiaru postępu testów, jakości produktu i efektywności procesu testowego.
- Promowanie i wspieranie rozwoju zawodowego testerów: Identyfikacja potrzeb szkoleniowych, mentoring, dbanie o rozwój kompetencji zespołu.
- Raportowanie statusu testów: Przygotowywanie i komunikowanie Raportów o Postępach Testów oraz Raportów Podsumowujących Testy do interesariuszy.
- Decydowanie o wdrożeniu (Release): Na podstawie wyników testów i oceny ryzyka, kierownik testów często odgrywa kluczową rolę w rekomendowaniu lub podejmowaniu decyzji o wdrożeniu oprogramowania.
Jak widać, rola kierownika testów koncentruje się na zarządzaniu całym procesem, zasobami, ryzykiem i komunikacją.
W metodykach zwinnych (Agile), niektóre z tych zadań mogą być przejmowane przez cały zespół (np. planowanie w ramach sprintu) lub przez inne role (np. Scrum Master, Product Owner), ale odpowiedzialność za zapewnienie jakości i efektywności testowania nadal istnieje.
Rola Testera (Tester Role)
Rola testera obejmuje odpowiedzialność za inżynierskie (techniczne) aspekty testowania.
Osoba pełniąca tę rolę koncentruje się na praktycznym przeprowadzaniu działań testowych, zgodnie z wytycznymi określonymi w planie i strategii testów.
Jest to rola wymagająca przede wszystkim umiejętności analitycznych, technicznych i dbałości o szczegóły.
Główne zadania i odpowiedzialności typowo przypisywane do roli testera obejmują:
- Przegląd i współtworzenie Planu Testów: Zrozumienie celów i podejścia, wnoszenie wkładu opartego na wiedzy technicznej i znajomości produktu.
- Analiza, przegląd i ocena podstawy testów: Badanie wymagań, historyjek użytkownika, specyfikacji projektowych pod kątem testowalności, identyfikacja niejasności i potencjalnych defektów w podstawie testów. Definiowanie warunków testowych.
- Projektowanie i implementacja przypadków testowych i procedur testowych: Tworzenie konkretnych kroków, danych wejściowych i oczekiwanych rezultatów w celu weryfikacji warunków testowych. Przygotowywanie i weryfikacja danych testowych.
- Tworzenie i zarządzanie skryptami testów automatycznych: Jeśli automatyzacja jest częścią strategii, testerzy (lub dedykowani testerzy automatyzujący) tworzą, wykonują i utrzymują skrypty automatyczne.
- Przygotowanie i konfiguracja środowisk testowych: Ustawianie i weryfikacja środowisk zgodnie ze specyfikacjami.
- Wykonywanie testów: Uruchamianie testów (manualnych lub automatycznych), porównywanie wyników rzeczywistych z oczekiwanymi, rejestrowanie wyników.
- Raportowanie defektów: Precyzyjne i zrozumiałe dokumentowanie znalezionych defektów, w tym kroków do ich reprodukcji.
- Współpraca z programistami i innymi interesariuszami: Pomoc w analizie defektów, weryfikacja poprawek (testy potwierdzające), udział w spotkaniach zespołu.
- Utrzymanie testware: Aktualizacja przypadków testowych, skryptów i danych w odpowiedzi na zmiany w systemie lub podstawie testów.
Rola testera jest kluczowa dla faktycznego przeprowadzenia testów i dostarczenia informacji o jakości produktu.
Wymaga ona ciągłego uczenia się, adaptacji do nowych technologii i narzędzi oraz rozwijania umiejętności analitycznych.
Współpraca i Nakładanie się Ról
Chociaż role kierownika testów i testera mają odrębne główne obszary odpowiedzialności, ich zadania często się przenikają i wymagają ścisłej współpracy.
Na przykład, testerzy dostarczają danych wejściowych do planowania i monitorowania, a kierownik testów wspiera testerów w ich rozwoju i usuwaniu przeszkód.
Współpraca obu ról z innymi członkami zespołu projektowego (programistami, analitykami, menedżerami projektu) jest również kluczowa dla sukcesu testowania.
W podejściach zwinnych, gdzie nacisk kładzie się na współpracę i samoorganizację zespołu, tradycyjny podział ról może być mniej wyraźny, a odpowiedzialność za jakość rozłożona na cały zespół (tzw. "whole-team approach").
Niemniej jednak, zadania związane z zarządzaniem testami i ich technicznym wykonaniem nadal muszą być realizowane.
Podsumowanie
ISTQB Foundation Level wyróżnia dwie główne role w testowaniu: kierownika testów, odpowiedzialnego za zarządzanie procesem, oraz testera, odpowiedzialnego za techniczne aspekty testowania.
Kierownik testów planuje, monitoruje, steruje i raportuje, podczas gdy tester analizuje, projektuje, implementuje i wykonuje testy oraz raportuje defekty.
Zrozumienie typowych zadań i odpowiedzialności tych ról jest ważne, ale należy pamiętać, że w praktyce podział ten może być elastyczny i dostosowany do kontekstu projektu i organizacji.
Niezależnie od formalnych stanowisk, kluczowa jest realizacja wszystkich niezbędnych zadań testowych i efektywna współpraca w zespole.