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ść.