W poprzedniej lekcji dowiedzieliśmy się, że testowanie statyczne obejmuje manualne badanie produktów pracy oraz automatyczną analizę statyczną.
Teraz skupimy się na kluczowym elemencie manualnego badania – procesie przeglądu.
Przeglądy są jedną z najstarszych i najbardziej efektywnych technik zapewniania jakości, pozwalającą na wczesne wykrywanie defektów, poprawę zrozumienia i budowanie konsensusu w zespole.
Sylabus ISTQB Foundation Level v4.0 szczegółowo omawia korzyści płynące z informacji zwrotnej, ogólny proces przeglądu, role i obowiązki uczestników, różne typy przeglądów oraz czynniki decydujące o ich sukcesie.
Zanurzmy się w świat przeglądów, aby zrozumieć, jak skutecznie wykorzystać tę potężną technikę.
Korzyści Wynikające z Wczesnego i Częstego Otrzymywania Informacji Zwrotnych (FL-3.2.1 K1)
Zanim przejdziemy do samego procesu przeglądu, warto zrozumieć, dlaczego uzyskiwanie informacji zwrotnej (feedback) od interesariuszy na wczesnym etapie i z odpowiednią częstotliwością jest tak istotne.
Sylabus podkreśla, że „przekazywane w odpowiednim czasie i z odpowiednią częstotliwością informacje zwrotne umożliwiają wczesne rozpoznawanie i sygnalizowanie potencjalnych problemów z jakością”.
Brak regularnej komunikacji i zaangażowania interesariuszy w trakcie cyklu rozwoju niesie ze sobą poważne ryzyko.
Produkt końcowy może okazać się niezgodny z ich oczekiwaniami lub potrzebami, co prowadzi do „poważnych konsekwencji, takich jak konieczność wprowadzenia kosztownych poprawek, niedotrzymanie terminów, przerzucanie się odpowiedzialnością, a nawet niepowodzenie całego projektu”.
Częste informacje zwrotne, często uzyskiwane właśnie poprzez przeglądy, przynoszą liczne korzyści:
- Zapobieganie nieporozumieniom: Regularna weryfikacja produktów pracy (np. wymagań, projektów) z interesariuszami pozwala upewnić się, że wszyscy mają takie samo zrozumienie i że produkt zmierza we właściwym kierunku.
- Szybsze reagowanie na zmiany: Wczesne wykrycie potrzeby zmiany pozwala na jej szybszą analizę i implementację, zanim stanie się ona kosztowna lub trudna do wprowadzenia.
- Lepsza wiedza o systemie: Proces przeglądu i dyskusji nad produktami pracy pogłębia zrozumienie systemu przez cały zespół.
- Koncentracja na wartości i ryzyku: Informacje zwrotne pomagają zespołowi skupić się na tych aspektach produktu, które przynoszą największą wartość interesariuszom i na łagodzeniu najważniejszych ryzyk.
- Budowanie zaufania i zaangażowania: Regularne włączanie interesariuszy w proces przeglądu buduje ich zaufanie do zespołu i poczucie współodpowiedzialności za produkt.
Pamiętanie o tych korzyściach (poziom K1) motywuje do aktywnego stosowania przeglądów jako mechanizmu uzyskiwania cennych informacji zwrotnych.
Czynności Wykonywane w Procesie Przeglądu (FL-3.2.2 K2)
Chociaż przeglądy mogą mieć różny stopień formalności, standard ISO/IEC 20246 (Software and systems engineering — Work product reviews) definiuje ogólny, elastyczny proces, który stanowi podstawę dla większości przeglądów.
Sylabus ISTQB podsumowuje (poziom K2) ten proces, wyróżniając następujące kluczowe czynności:
1. Planowanie (Planning)
Każdy przegląd, nawet nieformalny, wymaga pewnego planowania. W tej fazie określa się:
- Zakres przeglądu: Co dokładnie będzie przeglądane (cały dokument, konkretny rozdział, fragment kodu)?
- Cel przeglądu: Co chcemy osiągnąć (wykrycie defektów, ocena jakości, osiągnięcie konsensusu, edukacja)?
- Produkt pracy: Który konkretnie dokument, model lub kod jest przedmiotem przeglądu?
- Oceniane charakterystyki jakościowe: Na jakich aspektach jakości chcemy się skupić (poprawność, kompletność, spójność, czytelność, testowalność)?
- Obszary szczególnej uwagi: Czy są jakieś konkretne fragmenty lub aspekty, które wymagają dokładniejszej analizy?
- Kryteria wyjścia: Kiedy uznamy przegląd za zakończony (np. brak krytycznych defektów, osiągnięcie konsensusu)?
- Informacje pomocnicze: Jakie inne dokumenty, standardy czy listy kontrolne będą potrzebne przeglądającym?
- Zasoby: Kto weźmie udział w przeglądzie (role)? Jaki jest szacowany nakład pracy i ramy czasowe?
Dobre planowanie jest kluczowe dla efektywności przeglądu.
2. Rozpoczęcie Przeglądu (Initiate Review)
Na tym etapie upewniamy się, że wszystko jest gotowe do rozpoczęcia właściwego przeglądu. Obejmuje to:
- Dystrybucję materiałów: Udostępnienie produktu pracy i wszelkich materiałów pomocniczych (np. specyfikacji, standardów, list kontrolnych) wszystkim uczestnikom.
- Potwierdzenie gotowości: Sprawdzenie, czy produkt pracy jest w stanie gotowym do przeglądu (np. czy kod się kompiluje, czy dokument jest kompletny).
- Wyjaśnienie ról i celów: Upewnienie się, że każdy uczestnik rozumie cel przeglądu, swoją rolę i oczekiwania.
Ten etap zapewnia, że przegląd rozpoczyna się płynnie i wszyscy są odpowiednio przygotowani.
3. Przegląd Indywidualny (Individual Review / Individual Preparation)
To serce procesu przeglądu. Każdy uczestnik (przeglądający) samodzielnie analizuje produkt pracy. Celem jest:
- Ocena jakości: Zgodnie z zaplanowanymi charakterystykami.
- Identyfikacja potencjalnych problemów: Wyszukiwanie anomalii (potencjalnych defektów), nieścisłości, braków, niespójności.
- Formułowanie zaleceń i pytań: Zapisywanie sugestii usprawnień oraz pytań wymagających wyjaśnienia.
Jak wspomina sylabus, przeglądający mogą korzystać z różnych technik, takich jak „przegląd oparty na liście kontrolnej (checklist-based review)” czy „przegląd oparty na scenariuszach (scenario-based review)”.
Wszystkie znalezione anomalie, zalecenia i pytania powinny zostać odnotowane przed kolejnym etapem.
4. Przekazanie Informacji i Analiza (Issue Communication and Analysis)
Po indywidualnym przygotowaniu następuje etap komunikacji i wspólnej analizy znalezionych problemów.
Sylabus podkreśla, że „anomalie zidentyfikowane w trakcie przeglądu nie muszą być defektami”, dlatego kluczowe jest ich omówienie i ocena.
Ten etap często przybiera formę spotkania przeglądowego (review meeting), choć nie zawsze jest ono konieczne (zwłaszcza w mniej formalnych przeglądach).
Podczas spotkania (lub innej formy komunikacji, np. wymiany komentarzy w narzędziu do code review) uczestnicy:
- Omawiają znalezione anomalie: Wyjaśniają wątpliwości, dyskutują nad potencjalnymi problemami.
- Analizują anomalie: Decydują, czy dana anomalia jest faktycznym defektem wymagającym poprawy, czy może wynika z nieporozumienia lub jest kwestią do dalszej dyskusji.
- Podejmują decyzje: Ustalają, jakie działania należy podjąć w odniesieniu do zidentyfikowanych defektów (np. poprawić, odrzucić, odłożyć na później).
- Oceniają zgodność z kryteriami wyjścia: Sprawdzają, czy cele przeglądu zostały osiągnięte i czy można zakończyć proces.
Ważne jest, aby komunikacja była konstruktywna i skupiona na produkcie pracy, a nie na osobie autora.
5. Poprawki i Raportowanie (Fixing and Reporting)
Na podstawie decyzji podjętych podczas analizy, autor produktu pracy wprowadza niezbędne poprawki.
Obejmuje to:
- Naprawianie zidentyfikowanych defektów: Poprawianie błędów, uzupełnianie braków, wyjaśnianie nieścisłości.
- Rejestrowanie statusu defektów: Aktualizowanie informacji o stanie poszczególnych zgłoszeń (np. w systemie śledzenia błędów).
- Zbieranie metryk: Gromadzenie danych na temat przeglądu (np. liczba znalezionych defektów, czas trwania, wysiłek), które mogą być wykorzystane do doskonalenia procesu.
- Komunikowanie wyników: Poinformowanie interesariuszy o wynikach przeglądu i wprowadzonych poprawkach.
- Weryfikacja poprawek (opcjonalnie): W niektórych przypadkach może być konieczne ponowne sprawdzenie, czy poprawki zostały wprowadzone prawidłowo (follow-up).
Po zakończeniu tego etapu produkt pracy jest gotowy do dalszych działań w cyklu rozwoju.
Role i Obowiązki w Przeglądzie Formalnym (FL-3.2.3 K1)
W bardziej formalnych przeglądach często definiuje się konkretne role, aby zapewnić sprawny przebieg procesu. Sylabus (poziom K1) wymienia następujące kluczowe role:
- Autor (Author): Osoba lub zespół, który stworzył produkt pracy poddawany przeglądowi. Odpowiedzialny za wprowadzenie poprawek.
- Kierownictwo (Management): Osoby odpowiedzialne za projekt lub produkt. Zwykle podejmują decyzje dotyczące planowania przeglądów, przydziału zasobów i zapewnienia, że proces przeglądu jest realizowany.
- Moderator (Facilitator / Review Leader): Osoba odpowiedzialna za ogólny sukces przeglądu. Planuje przegląd, prowadzi spotkanie (jeśli się odbywa), zarządza czasem, pośredniczy w dyskusjach i zapewnia, że cele przeglądu są osiągane. Dba o efektywność i konstruktywną atmosferę.
- Przeglądający (Reviewer): Osoby, które faktycznie analizują produkt pracy, identyfikują anomalie i wnoszą swoją wiedzę ekspercką. Mogą to być koledzy z zespołu, eksperci domenowi, testerzy, programiści, projektanci, użytkownicy itp.
- Sekretarz (Scribe / Recorder): Osoba odpowiedzialna za dokumentowanie wszystkich znalezionych anomalii, decyzji i punktów do dalszego działania podczas spotkania przeglądowego.
Warto zauważyć, że w mniej formalnych przeglądach te role mogą być łączone lub nieformalnie przypisane.
Typy Przeglądów (FL-3.2.4 K2)
Przeglądy mogą różnić się stopniem formalności, celami i sposobem przeprowadzania. Sylabus (poziom K2) opisuje cztery główne typy przeglądów, uszeregowane od najmniej do najbardziej formalnego:
1. Przegląd Nieformalny (Informal Review)
- Cel: Wykrycie potencjalnych problemów, uzyskanie szybkiej informacji zwrotnej.
- Charakterystyka: Brak formalnego procesu, często inicjowany przez autora. Może polegać na prośbie do kolegi o „rzucenie okiem” na kod lub dokument, dyskusji przy biurku, programowaniu w parach. Wyniki mogą, ale nie muszą być dokumentowane.
- Zalety: Tani, szybki, łatwy do wdrożenia.
- Wady: Skuteczność zależy od zaangażowania i wiedzy przeglądającego, brak formalnego śledzenia wyników.
2. Przejrzenie (Walkthrough)
- Cel: Znalezienie anomalii, poprawa produktu pracy, rozważenie alternatywnych implementacji, wymiana wiedzy, osiągnięcie konsensusu.
- Charakterystyka: Zwykle prowadzone przez autora, który prezentuje produkt pracy krok po kroku. Uczestnicy zadają pytania i zgłaszają uwagi. Może, ale nie musi mieć moderatora i sekretarza. Przygotowanie indywidualne jest opcjonalne. Wyniki są zazwyczaj dokumentowane.
- Zalety: Dobre do transferu wiedzy i budowania zrozumienia.
- Wady: Autor może być zbyt skupiony na obronie swojego rozwiązania, ryzyko powierzchownego przeglądu.
3. Przegląd Techniczny (Technical Review)
- Cel: Uzyskanie konsensusu, wykrycie potencjalnych defektów, ocena jakości i zgodności ze standardami, generowanie pomysłów.
- Charakterystyka: Prowadzony przez moderatora (nie autora). Uczestnikami są zwykle eksperci techniczni (koledzy z zespołu, architekci). Wymagane jest przygotowanie indywidualne. Odbywa się spotkanie przeglądowe z udziałem sekretarza. Wyniki są formalnie dokumentowane, często z wykorzystaniem list kontrolnych i śledzenia defektów.
- Zalety: Bardziej systematyczny niż przejrzenie, skupienie na aspektach technicznych.
- Wady: Wymaga większego zaangażowania czasowego i zasobów.
4. Inspekcja (Inspection)
- Cel: Wykrycie anomalii, ocena zgodności ze specyfikacjami i standardami, zebranie metryk, edukacja.
- Charakterystyka: Najbardziej formalny typ przeglądu. Prowadzony przez wyszkolonego moderatora (nie autora). Jasno zdefiniowane role. Wymagane jest szczegółowe przygotowanie indywidualne, często z wykorzystaniem reguł, list kontrolnych i analizy perspektywicznej. Odbywa się formalne spotkanie przeglądowe z sekretarzem. Wyniki są precyzyjnie dokumentowane, w tym metryki (np. czas przygotowania, liczba defektów). Istnieją formalne kryteria wejścia i wyjścia. Często obejmuje etap weryfikacji poprawek (follow-up).
- Zalety: Najbardziej rygorystyczny i skuteczny w wykrywaniu defektów, dostarcza cennych metryk.
- Wady: Najbardziej kosztowny i czasochłonny, wymaga przeszkolenia uczestników.
Wybór odpowiedniego typu przeglądu zależy od kontekstu projektu, dostępnych zasobów, poziomu ryzyka i celów, jakie chcemy osiągnąć.
Czynniki Sukcesu Przeglądów (FL-3.2.5 K2)
Aby przeglądy były naprawdę efektywne, nie wystarczy tylko przeprowadzić je zgodnie z procesem. Sylabus (poziom K2) wskazuje na kluczowe czynniki, które przyczyniają się do sukcesu przeglądów:
- Jasno zdefiniowane cele: Każdy przegląd powinien mieć jasno określony cel, zrozumiały dla wszystkich uczestników.
- Odpowiedni dobór uczestników: W przeglądzie powinny brać udział osoby posiadające odpowiednią wiedzę i perspektywę.
- Stosowanie odpowiedniego typu przeglądu: Wybór formalności i technik przeglądu adekwatnych do celów i kontekstu.
- Wsparcie ze strony kierownictwa: Zapewnienie czasu i zasobów na przeprowadzanie przeglądów.
- Kultura zaufania i współpracy: Atmosfera, w której uczestnicy czują się bezpiecznie, zgłaszając problemy i konstruktywnie krytykując, bez obwiniania autora. Skupienie na produkcie, nie na osobie.
- Odpowiednie przygotowanie uczestników: Zapewnienie czasu i motywacji do indywidualnego przygotowania przed spotkaniem.
- Zarządzanie czasem: Efektywne prowadzenie spotkań, trzymanie się agendy.
- Stosowanie list kontrolnych i ról: Pomagają w systematycznym podejściu i zapewnieniu pokrycia kluczowych aspektów.
- Śledzenie i raportowanie wyników: Dokumentowanie znalezionych defektów i monitorowanie ich poprawy.
- Wyciąganie wniosków i doskonalenie procesu: Analiza metryk i informacji zwrotnych w celu usprawnienia przyszłych przeglądów.
Zrozumienie i stosowanie tych czynników znacząco zwiększa prawdopodobieństwo, że przeglądy przyniosą oczekiwane korzyści.
Podsumowanie
Proces przeglądu jest kluczową techniką testowania statycznego.
Wczesne i częste informacje zwrotne, uzyskiwane m.in. przez przeglądy, zapobiegają nieporozumieniom i kosztownym błędom.
Ogólny proces przeglądu obejmuje planowanie, rozpoczęcie, przegląd indywidualny, komunikację i analizę oraz poprawki i raportowanie.
W formalnych przeglądach wyróżnia się role: autora, kierownictwa, moderatora, przeglądającego i sekretarza.
Istnieją różne typy przeglądów (nieformalny, przejrzenie, techniczny, inspekcja), różniące się formalnością i celami.
Sukces przeglądów zależy od wielu czynników, w tym jasnych celów, odpowiednich uczestników, kultury współpracy i wsparcia kierownictwa.