Lekcja 5.3: Monitorowanie, Sterowanie i Zakończenie Testów

Zaplanowaliśmy nasze testy, zidentyfikowaliśmy i oceniliśmy ryzyka.

Teraz nadszedł czas, aby przejść do działania i upewnić się, że wszystko idzie zgodnie z planem, a jeśli nie – odpowiednio zareagować.

W tej lekcji skupimy się na trzech kluczowych aspektach zarządzania procesem testowym w trakcie jego trwania i po jego zakończeniu: monitorowaniu testów, sterowaniu testami oraz czynnościach związanych z zakończeniem testów.

Wyobraź sobie, że jesteś kapitanem statku (projektu testowego), który płynie do określonego portu (celów testowania).

Monitorowanie to jak sprawdzanie map, kompasu, wskaźników prędkości i pogody – zbierasz informacje, aby wiedzieć, gdzie jesteś, jak szybko płyniesz i czy na horyzoncie nie ma burzy.

Sterowanie to jak korygowanie kursu za pomocą steru – na podstawie zebranych informacji podejmujesz decyzje, aby ominąć przeszkody, dostosować prędkość i utrzymać statek na właściwej drodze.

Zakończenie testów to jak dopłynięcie do portu – podsumowujesz podróż, rozładowujesz ładunek (wyniki testów), spisujesz wnioski i przygotowujesz statek do kolejnego rejsu.

W tej lekcji, opierając się na sylabusie ISTQB Foundation Level v4.0 (sekcje FL-5.3 K2, FL-5.3.1 K2, FL-5.3.2 K2), zgłębimy:

  • Monitorowanie testów: Jakie informacje zbierać i dlaczego?
  • Sterowanie testami: Jak reagować na zebrane informacje i podejmować decyzje korygujące?
  • Metryki testowe: Jakie wskaźniki pomagają mierzyć postęp, jakość i efektywność?
  • Raporty z testów: Jak skutecznie komunikować status i wyniki testowania?
  • Czynności związane z ukończeniem testów: Co należy zrobić po zakończeniu fazy testowania?

Efektywne monitorowanie, sterowanie i zakończenie testów są kluczowe dla zapewnienia, że proces testowy dostarcza wartościowych informacji, jest realizowany zgodnie z planem i przyczynia się do osiągnięcia celów projektu.

1. Monitorowanie Testów (Test Monitoring) (FL-5.3 K2)

Monitorowanie testów to ciągły proces zbierania danych i informacji na temat przebiegu czynności testowych.

Jego głównym celem jest dostarczenie interesariuszom (kierownikowi testów, zespołowi projektowemu, klientowi) aktualnego obrazu postępów, jakości produktu i efektywności procesu testowego.

Co monitorujemy?

  • Postęp względem planu: Czy realizujemy zadania zgodnie z harmonogramem? Czy zużycie zasobów (czas, budżet, ludzie) jest zgodne z założeniami?
  • Status przedmiotu testów: Jaka jest aktualna jakość testowanego oprogramowania? Ile defektów znaleziono? Jakie są trendy w wykrywaniu i naprawianiu błędów?
  • Pokrycie testowe: W jakim stopniu przetestowaliśmy zdefiniowane elementy (np. wymagania, ryzyka, moduły kodu, kryteria akceptacji)? Czy osiągnęliśmy zakładane poziomy pokrycia?
  • Efektywność procesu: Czy nasze działania testowe są skuteczne w wykrywaniu defektów? Czy proces przebiega sprawnie?
  • Spełnienie kryteriów wyjścia: Czy zbliżamy się do spełnienia warunków zdefiniowanych w planie testów, które pozwolą zakończyć daną fazę testowania?

Jak monitorujemy?

Monitorowanie opiera się na gromadzeniu danych z różnych źródeł:

  • Narzędzia do zarządzania testami (np. status wykonania przypadków testowych, liczba zaliczonych/niezaliczonych testów).
  • Systemy śledzenia defektów (np. liczba zgłoszonych, naprawionych, zamkniętych defektów, ich priorytety i dotkliwość).
  • Narzędzia do zarządzania projektami (np. postęp zadań, wykorzystanie zasobów).
  • Narzędzia do analizy pokrycia kodu.
  • Bezpośrednia komunikacja z zespołem.

Zebrane dane są następnie analizowane i przetwarzane w celu uzyskania użytecznych informacji, często w postaci metryk testowych.

2. Metryki Stosowane w Testowaniu (FL-5.3.1 K2)

Metryki testowe to ilościowe miary, które pomagają ocenić różne aspekty procesu testowego i jakości produktu.

Są one kluczowym narzędziem monitorowania i dostarczają obiektywnych danych do podejmowania decyzji w ramach sterowania testami.

Sylabus ISTQB wymienia kilka kategorii powszechnie stosowanych metryk:

  • Metryki dotyczące postępu realizacji projektu:
    • Procent ukończenia zaplanowanych zadań testowych.
    • Wykorzystanie zasobów (np. liczba przepracowanych osobodni vs. plan).
    • Pracochłonność testowania (np. czas poświęcony na projektowanie, wykonywanie, raportowanie testów).
  • Metryki dotyczące postępu testów:
    • Postęp implementacji przypadków testowych (np. liczba zaprojektowanych przypadków vs. plan).
    • Postęp przygotowania środowiska testowego (np. procent gotowości środowiska).
    • Liczba wykonanych/niewykonanych przypadków testowych.
    • Liczba zaliczonych/niezaliczonych przypadków testowych (Pass/Fail Rate).
    • Stosunek liczby zaliczonych do całkowitej liczby wykonanych testów.
    • Czas wykonywania testów.
    • Pokrycie testowe (np. procent pokrytych wymagań, ryzyk, instrukcji kodu).
  • Metryki dotyczące defektów:
    • Liczba zgłoszonych defektów (ogółem, wg priorytetu/dotkliwości).
    • Liczba znalezionych i naprawionych defektów.
    • Liczba otwartych defektów (ogółem, wg priorytetu/dotkliwości).
    • Gęstość defektów (np. liczba defektów na tysiąc linii kodu lub na punkt funkcyjny).
    • Średni czas życia defektu (od zgłoszenia do zamknięcia).
    • Procent odrzuconych/odroczonych defektów.
  • Metryki dotyczące zaufania do produktu:
    • Procent pomyślnie wykonanych testów dla krytycznych wymagań.
    • Poziom pokrycia ryzyk produktowych.
    • Subiektywna ocena zaufania przez zespół/interesariuszy (np. w skali 1-5).

Wybór odpowiednich metryk zależy od celów testowania, kontekstu projektu i potrzeb informacyjnych interesariuszy.

Ważne jest, aby metryki były łatwe do zrozumienia, mierzalne, wiarygodne i dostarczały wartościowych informacji do podejmowania decyzji.

3. Raporty z Testów (Test Reporting) (FL-5.3.2 K2)

Raportowanie testów to proces komunikowania wyników monitorowania testów do interesariuszy.

Celem jest dostarczenie jasnych, zwięzłych i istotnych informacji, które pomogą w podejmowaniu decyzji dotyczących dalszych działań w projekcie (np. decyzji o wydaniu produktu, potrzebie dodatkowych testów, zmianie priorytetów).

Rodzaje raportów:

  • Raport postępu testów (Test Progress Report): Przygotowywany regularnie (np. codziennie, co tydzień) w trakcie trwania fazy testowania. Zawiera informacje o postępach w wykonywaniu testów, znalezionych defektach, napotkanych problemach i odchyleniach od planu.
  • Raport końcowy z testów (Test Completion Report / Test Summary Report): Przygotowywany po zakończeniu danej fazy testowania (np. poziomu testów, iteracji, całego projektu). Podsumowuje wszystkie działania testowe, przedstawia ostateczne wyniki, ocenę jakości produktu, osiągnięte pokrycie, pozostałe ryzyka i wnioski na przyszłość.

Zawartość raportu końcowego z testów (wg ISO/IEC/IEEE 29119-3):

  • Podsumowanie testów: Krótki przegląd najważniejszych wyników i wniosków.
  • Odchylenia od planu: Opis wszelkich różnic między przeprowadzonymi działaniami a planem testów (np. zmiany w zakresie, harmonogramie, zasobach).
  • Ocena kryteriów wyjścia: Informacja, czy i w jakim stopniu zostały spełnione zdefiniowane kryteria wyjścia.
  • Wyniki testów: Podsumowanie wyników wykonania testów (np. liczba wykonanych, zaliczonych, niezaliczonych testów).
  • Status defektów: Podsumowanie informacji o znalezionych defektach (np. liczba otwartych, zamkniętych, wg priorytetu).
  • Pokrycie testowe: Informacje o osiągniętym poziomie pokrycia (np. wymagań, ryzyk).
  • Pozostałe ryzyka: Identyfikacja ryzyk, które nie zostały w pełni złagodzone przez testowanie.
  • Wnioski i rekomendacje: Ogólna ocena jakości produktu i rekomendacje dotyczące dalszych działań (np. decyzja o wydaniu, potrzeba dodatkowych testów).
  • Wyciągnięte wnioski (Lessons Learned): Refleksje na temat procesu testowego, które mogą pomóc w usprawnieniu przyszłych projektów.

Raporty powinny być dostosowane do odbiorców – inne informacje mogą być istotne dla zespołu technicznego, a inne dla kierownictwa czy klienta.

Wizualizacja danych (np. wykresy trendów, tabele) często pomaga w lepszym zrozumieniu prezentowanych informacji.

4. Sterowanie Testami (Test Control) (FL-5.3 K2)

Sterowanie testami to proces podejmowania działań korygujących w odpowiedzi na informacje uzyskane podczas monitorowania testów.

Celem jest utrzymanie procesu testowego na właściwym torze i zapewnienie osiągnięcia założonych celów, pomimo napotykanych problemów i odchyleń od planu.

Przykłady działań sterujących:

  • Zmiana priorytetów testów: Jeśli krytyczne obszary okazują się bardziej problematyczne niż oczekiwano, można zwiększyć priorytet testów dla tych obszarów.
  • Dostosowanie harmonogramu: Jeśli postęp jest wolniejszy niż planowano, może być konieczna zmiana harmonogramu lub alokacja dodatkowych zasobów.
  • Zmiana zakresu testów: Jeśli czas lub zasoby są ograniczone, może być konieczne podjęcie decyzji o zmniejszeniu zakresu testów (np. rezygnacja z testowania mniej krytycznych funkcjonalności), zawsze w oparciu o analizę ryzyka.
  • Zmiana kryteriów wejścia/wyjścia: W uzasadnionych przypadkach, w porozumieniu z interesariuszami, można zmodyfikować kryteria (np. obniżyć wymagany poziom pokrycia kodu, jeśli osiągnięcie go jest nierealistyczne w danym czasie).
  • Eskalacja problemów: Jeśli problemy wykraczają poza możliwości zespołu testowego (np. długotrwała niedostępność środowiska), należy je eskalować do odpowiednich osób (np. menedżera projektu, administratorów).
  • Poprawa procesu: Jeśli monitorowanie wykazuje systematyczne problemy w procesie (np. niska jakość kodu dostarczanego do testów), należy podjąć działania w celu usprawnienia wcześniejszych etapów.

Decyzje sterujące powinny być podejmowane na podstawie analizy danych z monitorowania, oceny ryzyka i w porozumieniu z odpowiednimi interesariuszami.

5. Czynności Związane z Ukończeniem Testów (Test Completion Activities) (FL-5.3 K2)

Po osiągnięciu kryteriów wyjścia dla danej fazy testowania, następuje etap zakończenia testów.

Nie oznacza to jedynie zaprzestania wykonywania testów, ale obejmuje szereg ważnych czynności podsumowujących i archiwizacyjnych.

Główne czynności związane z ukończeniem testów:

  • Sprawdzenie, czy wszystkie zaplanowane prace zostały ukończone: Weryfikacja, czy wszystkie zadania testowe zostały wykonane, a wszystkie zgłoszone defekty zostały odpowiednio obsłużone (zamknięte, odroczone, itp.).
  • Upewnienie się, że wszystkie defekty są zamknięte lub przekazane: Potwierdzenie, że nie ma "wiszących" defektów bez określonego statusu. Defekty, które nie zostaną naprawione w bieżącym wydaniu, powinny zostać formalnie przekazane do backlogu lub kolejnej iteracji.
  • Przygotowanie raportu końcowego z testów: Stworzenie i dystrybucja raportu podsumowującego (opisanego wcześniej) do interesariuszy.
  • Archiwizacja środowiska testowego, testware i infrastruktury: Zabezpieczenie i zarchiwizowanie wszystkich produktów pracy testowej (planów, przypadków testowych, skryptów, danych, wyników), konfiguracji środowiska testowego oraz używanej infrastruktury. Umożliwi to odtworzenie testów w przyszłości (np. w celu weryfikacji defektów lub przeprowadzenia testów regresji).
  • Przekazanie testware interesariuszom: Udostępnienie odpowiednich produktów pracy testowej zespołom odpowiedzialnym za utrzymanie systemu lub rozwój kolejnych wersji.
  • Analiza wyciągniętych wniosków (Lessons Learned): Przeprowadzenie spotkania lub analizy w celu zidentyfikowania dobrych praktyk, problemów i obszarów do usprawnienia w przyszłych projektach lub iteracjach. Wnioski te powinny być udokumentowane i wykorzystane do doskonalenia procesu testowego.

Staranne przeprowadzenie czynności związanych z ukończeniem testów zapewnia formalne zamknięcie fazy testowania, dostarcza cennych informacji zwrotnych i ułatwia przyszłe działania związane z testowaniem i utrzymaniem systemu.

Podsumowanie

Monitorowanie, sterowanie i zakończenie testów to dynamiczne i wzajemnie powiązane procesy, które zapewniają kontrolę nad przebiegiem testowania i jego efektywnością.

Poprzez ciągłe zbieranie danych (monitorowanie) za pomocą odpowiednich metryk, możemy podejmować świadome decyzje korygujące (sterowanie), aby utrzymać projekt na właściwym kursie.

Skuteczne raportowanie zapewnia przejrzystość i komunikację z interesariuszami.

Natomiast staranne przeprowadzenie czynności związanych z zakończeniem testów pozwala na formalne podsumowanie, archiwizację wyników i wyciągnięcie wniosków na przyszłość.

Najczęściej Zadawane Pytania (FAQ)

Czym różni się monitorowanie od sterowania testami?
Monitorowanie polega na zbieraniu i analizowaniu danych o przebiegu testów (np. postęp, defekty, pokrycie). Sterowanie polega na podejmowaniu działań korygujących na podstawie informacji z monitorowania (np. zmiana priorytetów, alokacja zasobów, zmiana planu). Monitorowanie dostarcza danych, sterowanie to podejmowanie decyzji.
Czy zawsze trzeba zbierać wszystkie wymienione metryki?
Nie. Wybór metryk powinien być świadomy i dostosowany do celów testowania, kontekstu projektu i potrzeb informacyjnych interesariuszy. Zbieranie zbyt wielu niepotrzebnych metryk może być stratą czasu. Kluczowe jest, aby metryki dostarczały wartościowych informacji do podejmowania decyzji.
Jak często należy przygotowywać raporty postępu testów?
Częstotliwość zależy od dynamiki projektu i potrzeb interesariuszy. W projektach zwinnych raportowanie może odbywać się codziennie (np. na daily stand-up) lub na koniec sprintu. W bardziej tradycyjnych projektach może to być raport tygodniowy. Ważne, aby informacje były aktualne i dostarczane na czas.
Kto decyduje o działaniach sterujących?
Decyzje sterujące są zazwyczaj podejmowane przez kierownika testów w porozumieniu z zespołem testowym i innymi interesariuszami (np. kierownikiem projektu, właścicielem produktu), w zależności od skali i wpływu podejmowanych działań. Niektóre decyzje mogą wymagać formalnej akceptacji.
Czy można zakończyć testowanie, jeśli nie wszystkie kryteria wyjścia są spełnione?
Tak, ale powinna to być świadoma decyzja podjęta na podstawie analizy ryzyka i zaakceptowana przez odpowiednich interesariuszy. W takiej sytuacji raport końcowy powinien jasno opisywać, które kryteria nie zostały spełnione i jakie są związane z tym pozostałe ryzyka.
Po co archiwizować testware?
Archiwizacja testware (planów, przypadków, skryptów, danych, wyników) jest ważna z kilku powodów: umożliwia odtworzenie testów w przyszłości (np. audyt, weryfikacja defektów), stanowi podstawę dla testów regresji w kolejnych wersjach produktu oraz może być źródłem danych dla metryk i usprawniania procesu w przyszłych projektach.
Co to jest "gęstość defektów"?
Gęstość defektów to metryka określająca liczbę defektów znalezionych w danej jednostce rozmiaru oprogramowania (np. liczba defektów na 1000 linii kodu lub na punkt funkcyjny). Może być używana do porównywania jakości różnych modułów lub projektów, ale należy ją interpretować ostrożnie, biorąc pod uwagę kontekst.
Czy raport końcowy jest zawsze potrzebny?
W większości formalnych projektów raport końcowy jest standardowym elementem dokumentacji, podsumowującym fazę testowania. W projektach zwinnych formalny raport może być zastąpiony przez inne formy komunikacji (np. demo produktu, podsumowanie na spotkaniu retrospektywnym), ale kluczowe informacje (ocena jakości, pozostałe ryzyka) nadal muszą być przekazane.
Jakie narzędzia wspierają monitorowanie i raportowanie?
Istnieje wiele narzędzi wspierających te procesy: narzędzia do zarządzania testami (np. Jira z dodatkami, TestRail, Zephyr Scale) śledzą postęp wykonania testów i pokrycie; systemy śledzenia defektów (np. Jira, Bugzilla) zarządzają cyklem życia defektów; narzędzia do zarządzania projektami (np. Jira, Trello) śledzą postęp zadań; narzędzia BI (np. Tableau, Power BI) mogą być używane do wizualizacji metryk.
Co zrobić z wnioskami z "Lessons Learned"?
Wyciągnięte wnioski powinny być udokumentowane i aktywnie wykorzystywane do usprawniania procesu testowego w przyszłości. Mogą prowadzić do aktualizacji standardów testowania, szkoleń dla zespołu, wprowadzenia nowych narzędzi lub modyfikacji szablonów planów testów. Chodzi o ciągłe doskonalenie.

Przykładowe Pytania Egzaminacyjne

Pytanie 1 (K1): Która z poniższych czynności jest częścią monitorowania testów?

  • a) Zmiana priorytetów pozostałych do wykonania testów.
  • b) Zbieranie danych o liczbie wykonanych przypadków testowych.
  • c) Decyzja o zatrudnieniu dodatkowego testera.
  • d) Archiwizacja środowiska testowego.

Poprawna odpowiedź: b (Monitorowanie polega na zbieraniu danych o przebiegu testów, np. liczbie wykonanych przypadków. Pozostałe opcje to przykłady sterowania (a, c) lub czynności związanych z zakończeniem testów (d).)

Pytanie 2 (K1): Jaki jest główny cel raportu końcowego z testów?

  • a) Codzienne informowanie zespołu o postępach.
  • b) Podsumowanie wszystkich działań i wyników testowania po ich zakończeniu.
  • c) Szczegółowy opis każdego znalezionego defektu.
  • d) Planowanie przyszłych działań testowych.

Poprawna odpowiedź: b (Raport końcowy (Test Summary Report) służy do podsumowania całej fazy testowania, przedstawienia wyników, oceny jakości i wniosków.)

Pytanie 3 (K2): Kierownik testów zauważa, że liczba krytycznych defektów jest znacznie wyższa niż oczekiwano, a termin wydania się zbliża. Które z poniższych działań jest przykładem sterowania testami?

  • a) Zaktualizowanie metryki dotyczącej gęstości defektów.
  • b) Przygotowanie raportu postępu testów z informacją o problemie.
  • c) Zdecydowanie o zwiększeniu priorytetu testów regresji dla obszarów, gdzie znaleziono krytyczne defekty.
  • d) Archiwizacja wyników dotychczas wykonanych testów.

Poprawna odpowiedź: c (Sterowanie testami polega na podejmowaniu działań korygujących w odpowiedzi na monitorowane dane. Zmiana priorytetów testów w reakcji na wysoką liczbę krytycznych defektów jest typowym działaniem sterującym.)

Pytanie 4 (K1): Która z poniższych metryk jest przykładem metryki dotyczącej defektów?

  • a) Procent pokrycia wymagań.
  • b) Średni czas życia defektu.
  • c) Liczba wykonanych przypadków testowych.
  • d) Pracochłonność przygotowania środowiska testowego.

Poprawna odpowiedź: b (Średni czas życia defektu (od zgłoszenia do zamknięcia) jest metryką bezpośrednio związaną z procesem zarządzania defektami. Pozostałe opcje dotyczą pokrycia (a), postępu testów (c) i postępu projektu (d).)