Lekcja 1.9: Role w Testowaniu

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.

Najczęściej Zadawane Pytania (FAQ)

Czy zawsze musi być dedykowany Kierownik Testów?
Nie zawsze. W mniejszych projektach lub zespołach zwinnych zadania zarządcze związane z testowaniem mogą być wykonywane przez lidera zespołu, menedżera projektu, doświadczonego testera lub nawet rozproszone na cały zespół. Ważne jest, aby te zadania były realizowane.
Czy tester może zajmować się planowaniem testów?
Tak, szczególnie doświadczeni testerzy często wnoszą istotny wkład w planowanie, np. poprzez szacowanie pracochłonności, identyfikację ryzyk czy proponowanie strategii. W niektórych zespołach testerzy mogą być w pełni odpowiedzialni za planowanie testów dla swojego obszaru.
Czy Kierownik Testów musi mieć umiejętności techniczne?
Chociaż główny nacisk kładziony jest na umiejętności zarządcze, dobre zrozumienie technicznych aspektów testowania (narzędzi, technik, architektury) jest bardzo pomocne dla Kierownika Testów w podejmowaniu świadomych decyzji, planowaniu i komunikacji z zespołem technicznym.
Czy programiści mogą być testerami?
Tak, programiści często wykonują testy jednostkowe i komponentowe. W podejściach takich jak BDD czy ATDD programiści ściśle współpracują przy tworzeniu testów akceptacyjnych. W zespołach zwinnych programiści mogą również uczestniczyć w innych działaniach testowych.
Jaka jest różnica między Testerem a Analitykiem Testów?
ISTQB na poziomie podstawowym używa terminu "Tester" jako ogólnej roli technicznej. Na wyższych poziomach (np. Advanced Level) rozróżnia się Analityka Testów (skupionego na analizie i projektowaniu) oraz Technicznego Analityka Testów (skupionego na aspektach technicznych, np. automatyzacji, testach niefunkcjonalnych).
Czy istnieje rola Testera Automatyzującego?
Chociaż ISTQB FL nie wyróżnia jej jako osobnej roli, w praktyce często spotyka się stanowisko Testera Automatyzującego lub Inżyniera Automatyzacji Testów, skupionego na tworzeniu i utrzymaniu zautomatyzowanych skryptów testowych. Zadania te wpisują się w ogólną rolę testera.
Jakie są role w testowaniu w Scrum?
Scrum nie definiuje formalnej roli testera. Odpowiedzialność za jakość spoczywa na całym Zespole Deweloperskim (Development Team). Członkowie zespołu posiadający umiejętności testowania realizują zadania testowe w ramach sprintu, współpracując blisko z programistami i Właścicielem Produktu (Product Owner).
Czy Kierownik Testów zarządza tylko testerami?
Głównie tak, ale jego rola obejmuje również koordynację działań testowych z innymi zespołami i interesariuszami, zarządzanie budżetem testowym, narzędziami i środowiskami. Wpływa na cały proces zapewnienia jakości w projekcie.
Czy testerzy tylko wykonują testy?
Nie. Jak pokazuje lista zadań, rola testera obejmuje znacznie więcej: analizę wymagań, projektowanie testów, przygotowanie danych i środowisk, raportowanie defektów, współpracę z zespołem, a często także automatyzację i utrzymanie testware.
Czy jedna osoba może pełnić obie role?
Tak, szczególnie w małych zespołach lub projektach, jedna osoba (np. lider testów) może być odpowiedzialna zarówno za zadania zarządcze (planowanie, monitorowanie), jak i techniczne (projektowanie, wykonywanie testów). Wymaga to szerokiego zakresu umiejętności.
Kto decyduje o strategii testów?
Formalnie jest to zadanie Kierownika Testów, często we współpracy z innymi interesariuszami (np. architektem, menedżerem projektu). Strategia powinna być udokumentowana w Planie Testów i zakomunikowana zespołowi.
Czy testerzy są odpowiedzialni za jakość produktu?
Testerzy są odpowiedzialni za dostarczanie informacji o jakości produktu, identyfikowanie defektów i ryzyk. Jednak za *zapewnienie* jakości (budowanie jakości w produkcie) odpowiedzialny jest cały zespół projektowy, w tym programiści, analitycy i menedżerowie.
Jakie są ścieżki kariery dla testera?
Ścieżki kariery mogą być różne. Tester może specjalizować się w konkretnym obszarze (np. automatyzacja, wydajność, bezpieczeństwo), rozwijać się w kierunku Analityka Testów, Technicznego Analityka Testów, Kierownika Testów, a także przechodzić do ról związanych z zarządzaniem jakością, analizą biznesową czy zarządzaniem projektami.
Czy Kierownik Testów raportuje do Menedżera Projektu?
Struktura raportowania zależy od organizacji. Kierownik Testów może raportować do Menedżera Projektu, Menedżera Programu, szefa działu QA lub bezpośrednio do wyższego kierownictwa. Ważna jest jasna linia komunikacji i raportowania statusu testów.
Czy tester musi umieć programować?
Nie zawsze jest to wymóg, zwłaszcza dla ról skupionych na testach manualnych czy analizie. Jednak umiejętność programowania jest coraz bardziej ceniona, szczególnie w kontekście automatyzacji testów, testów technicznych czy pracy w zespołach zwinnych i DevOps.

Przykładowe Pytania Egzaminacyjne

Pytanie 1 (K1): Które z poniższych zadań jest typowo przypisywane do roli Kierownika Testów?

  • a) Projektowanie przypadków testowych.
  • b) Wykonywanie testów manualnych.
  • c) Opracowanie Planu Testów.
  • d) Raportowanie defektów.

Poprawna odpowiedź: c (Opracowanie i aktualizacja Planu Testów to kluczowe zadanie zarządcze należące do roli Kierownika Testów. Pozostałe opcje to typowe zadania Testera.)

Pytanie 2 (K1): Które z poniższych zadań jest typowo przypisywane do roli Testera?

  • a) Definiowanie strategii testów dla organizacji.
  • b) Monitorowanie postępów testów i raportowanie do interesariuszy.
  • c) Analiza podstawy testów i definiowanie warunków testowych.
  • d) Zarządzanie budżetem testowym.

Poprawna odpowiedź: c (Analiza podstawy testów i definiowanie warunków testowych to kluczowe zadanie techniczne należące do roli Testera. Pozostałe opcje to typowe zadania Kierownika Testów.)

Pytanie 3 (K2): W małym zespole jedna osoba jest odpowiedzialna za planowanie testów, projektowanie przypadków testowych i wykonywanie testów. Jakie role ISTQB ta osoba pełni?

  • a) Tylko rolę Kierownika Testów.
  • b) Tylko rolę Testera.
  • c) Obie role: Kierownika Testów i Testera.
  • d) Żadnej z tych ról, jest to Lider Testów.

Poprawna odpowiedź: c (Osoba ta wykonuje zadania zarówno zarządcze - planowanie, jak i techniczne - projektowanie, wykonywanie, co odpowiada połączeniu obu ról zdefiniowanych przez ISTQB.)