1. Strona główna
  2. Sylabus poziomu podstawowego ISTQB 2018 (wersja 1.01)
  3. 5. Zarządzanie testami
  4. 5.1. Organizacja testów
  5. 5.1.2. Zadania kierownika testów i testera

5.1.2. Zadania kierownika testów i testera

W niniejszym sylabusie omówiono dwa stanowiska związane z testowaniem — są to kierownicy testów i testerzy. Czynności i zadania wykonywane przez osoby pełniące obie role zależą od kontekstu projektu i produktu, umiejętności konkretnych osób oraz specyfiki organizacji.

Kierownik testów ponosi ogólną odpowiedzialność za proces testowy i sprawne kierowanie czynnościami związanymi z testowaniem. Rolę tę może pełnić zarówno osoba zajmująca się zawodowo kierowaniem testami, jak i kierownik projektu, kierownik zespołu programistów lub kierownik ds. zapewnienia jakości. Ponadto w przypadku większych projektów lub organizacji kierownik lub koordynator testów może mieć pod sobą kilka zespołów testowych, którymi kierują liderzy testów lub testerzy prowadzący.

W zakres obowiązków kierownika testów wchodzą zwykle następujące zadania:

  • opracowywanie lub dokonywanie przeglądu strategii testów i polityki testów danej organizacji;
  • planowanie testów, w tym uwzględnienie kontekstu oraz zapoznanie się z celami testów i czynnikami ryzyka w zakresie testowania (zadanie to może obejmować dokonywanie wyboru podejść do testowania, szacowanie czasu, pracochłonności i kosztów testowania, pozyskiwanie zasobów, definiowanie poziomów testów i cykli testowych oraz planowanie zarządzania defektami);
  • sporządzanie i aktualizowanie planu testów;
  • koordynowanie realizacji strategii testów i planu testów wraz z kierownikami projektu i innymi interesariuszami;
  • prezentowanie punktu widzenia testerów w ramach innych czynności projektowych (takich jak planowanie integracji);
  • inicjowanie procesów analizy, projektowania, implementacji i wykonywania testów, monitorowanie rezultatów testów oraz sprawdzanie statusu kryteriów wyjścia (definicji ukończenia);
  • przygotowanie i dostarczenie raportu z postępu testów i raportu sumarycznego z testów na podstawie zgromadzonych informacji;
  • dostosowywanie planu testów do rezultatów i postępu testów (dokumentowanych niekiedy w raportach o statusie testów i raportach z ukończenia testów) oraz podejmowanie niezbędnych działań w zakresie nadzoru nad testami;
  • udzielanie pomocy w tworzeniu efektywnego mechanizmu zarządzania konfiguracją testaliów i systemu zarządzania defektami;
  • wprowadzanie odpowiednich miar służących do mierzenia postępu testów oraz oceniania jakości testowania i produktu;
  • udzielanie pomocy przy wyborze i implementacji narzędzi służących do realizacji procesu testowego, w tym przy określaniu budżetu przeznaczonego na wybór narzędzi (i potencjalnie na ich zakup lub pomoc techniczną) oraz wyznaczanie czasu na realizację projektów pilotażowych, a także udzielanie dalszej pomocy w zakresie korzystania z narzędzi;
  • podejmowanie decyzji o implementacji środowisk testowych;
  • monitorowanie procesu testowania oraz sporządzanie i przedstawianie raportów z testów na podstawie zgromadzonych informacji;
  • promowanie testerów i zespołu testowego oraz reprezentowanie ich punktu widzenia w organizacji;
  • stwarzanie możliwości do rozwijania umiejętności i kariery testerów (np. poprzez plan szkoleń, ewaluacje osiągnięć, coaching).

Sposób wykonywania obowiązków kierownika testów zależy od cyklu życia oprogramowania. W ramach zwinnego wytwarzania oprogramowania niektóre z wyżej wymienionych zadań — a zwłaszcza zadania związane z codziennym testowaniem w obrębie zespołu zwinnego — wykonuje tester należący do tego zespołu. Niektóre zadania, które obejmują swoim zasięgiem kilka zespołów lub całą organizację bądź są związane z zarządzaniem kadrami, mogą wykonywać kierownicy testów spoza zespołu programistycznego (zwani niekiedy trenerami testowymi). Zarządzanie procesem testowym opisane jest bardziej szczegółowo w [Black 2009].

Typowe zadania testera to między innymi:

  • dokonywanie przeglądu planów testów i uczestniczenie w ich opracowywaniu;
  • analizowanie, dokonywanie przeglądu i ocenianie wymagań, historyjek użytkownika i kryteriów akceptacji, specyfikacji oraz modeli (tj. podstawy testów) pod kątem testowalności;
  • identyfikowanie i dokumentowanie warunków testowych oraz rejestrowanie powiązań między przypadkami testowymi, warunkami testowymi i podstawą testów;
  • projektowanie, konfigurowanie i weryfikowanie środowisk testowych (często w porozumieniu z administratorami systemu i sieci);
  • projektowanie i implementowanie przypadków testowych i skryptów testowych;
  • przygotowywanie i pozyskiwanie danych testowych;
  • tworzenie harmonogramu wykonywania testów;
  • wykonywanie testów, ocenianie rezultatów i dokumentowanie odchyleń od oczekiwanych rezultatów;
  • korzystanie z odpowiednich narzędzi usprawniających proces testowy;
  • automatyzowanie testowania w zależności od potrzeb (zadanie to może być wykonywane z pomocą programisty lub eksperta ds. automatyzacji testowania);
  • ewaluacja charakterystyk niefunkcjonalnych, takich jak: wydajność, niezawodność, użyteczność, zabezpieczenia, zgodność, przenaszalność;
  • dokonywanie przeglądu testów opracowanych przez inne osoby.

Osoby zajmujące się analizą testów, projektowaniem testów, tworzeniem określonych typów testów czy automatyzacją testowania mogą być specjalistami w tych dziedzinach. Ponadto, w zależności od czynników ryzyka związanych z produktem i projektem oraz od wybranego modelu cyklu życia oprogramowania, różne osoby mogą przyjmować rolę testerów na różnych poziomach testowania. Na poziomie testowania modułowego i integracyjnego testerami są często programiści, na poziomie testowania akceptacyjnego — analitycy biznesowi, eksperci merytoryczni i użytkownicy, na poziomie testowania systemowego i integracyjnego — członkowie niezależnego zespołu testowego, a na poziomie testów akceptacyjnych — operatorzy i/lub administratorzy systemu.