Lekcja 3.2: Proces Przeglądu

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.

Najczęściej Zadawane Pytania (FAQ)

Czy każdy przegląd musi mieć spotkanie?
Nie. W przeglądach nieformalnych lub przy użyciu narzędzi do code review, komunikacja i analiza mogą odbywać się asynchronicznie (np. przez komentarze). Spotkania są typowe dla przejrzenia, przeglądów technicznych i inspekcji.
Kto powinien być moderatorem?
Moderator powinien być osobą neutralną (najlepiej nie autorem), posiadającą umiejętności facylitacji, zarządzania czasem i rozwiązywania konfliktów. W inspekcjach często wymagane jest specjalne przeszkolenie.
Czy przeglądy kodu to to samo co przeglądy techniczne?
Przegląd kodu jest specyficznym przypadkiem przeglądu technicznego, gdzie produktem pracy jest kod źródłowy. Przeglądy techniczne mogą dotyczyć również innych produktów, np. dokumentacji projektowej.
Jak długo powinien trwać przegląd?
Czas trwania zależy od typu przeglądu, rozmiaru i złożoności produktu pracy oraz liczby uczestników. Ważne jest, aby zaplanować wystarczająco dużo czasu na przygotowanie indywidualne i ewentualne spotkanie, ale też efektywnie zarządzać czasem.
Czy listy kontrolne są zawsze potrzebne?
Nie są obowiązkowe, ale bardzo pomocne, zwłaszcza w bardziej formalnych przeglądach. Pomagają upewnić się, że kluczowe aspekty zostały sprawdzone i zapewniają spójność między różnymi przeglądami.
Co jeśli podczas przeglądu znajdziemy bardzo dużo defektów?
Jeśli liczba lub powaga defektów przekracza ustalone kryteria wyjścia, przegląd może zostać zakończony z decyzją o konieczności znaczącej przeróbki produktu pracy. Po poprawkach może być wymagany kolejny przegląd.
Jak motywować zespół do przeprowadzania przeglądów?
Kluczowe jest pokazanie korzyści (mniej błędów w późniejszych fazach, lepsza jakość), zapewnienie wsparcia kierownictwa (czas na przeglądy), budowanie kultury doceniania informacji zwrotnej i unikanie obwiniania autorów.
Czy przeglądy można stosować do dokumentacji testowej?
Tak, jak najbardziej. Przeglądy planów testów, przypadków testowych czy skryptów automatycznych są bardzo wartościowe, pomagają zapewnić ich jakość, kompletność i zgodność z wymaganiami.
Jaka jest różnica między anomalią a defektem?
Anomalia to cokolwiek, co odbiega od oczekiwań podczas przeglądu (np. niejasność, potencjalny błąd). Dopiero po analizie anomalia może zostać sklasyfikowana jako faktyczny defekt wymagający poprawy.
Czy inspekcje są zawsze najlepszym typem przeglądu?
Inspekcje są najbardziej formalne i skuteczne w wykrywaniu defektów, ale też najkosztowniejsze. Wybór typu przeglądu powinien zależeć od celów, ryzyka i dostępnych zasobów. Czasem mniej formalny przegląd jest wystarczający.

Przykładowe Pytania Egzaminacyjne

Pytanie 1 (K1): Która rola w przeglądzie formalnym jest odpowiedzialna za prowadzenie spotkania przeglądowego i zapewnienie efektywności procesu?

  • a) Autor
  • b) Przeglądający
  • c) Moderator
  • d) Sekretarz

Poprawna odpowiedź: c (Moderator jest odpowiedzialny za zarządzanie procesem przeglądu, w tym prowadzenie spotkania.)

Pytanie 2 (K2): Który typ przeglądu jest uważany za najbardziej formalny i rygorystyczny?

  • a) Przegląd nieformalny
  • b) Przejrzenie
  • c) Przegląd techniczny
  • d) Inspekcja

Poprawna odpowiedź: d (Inspekcja charakteryzuje się jasno zdefiniowanymi rolami, formalnym procesem, metrykami i często etapem weryfikacji poprawek.)

Pytanie 3 (K2): Jaka czynność w procesie przeglądu polega na samodzielnym analizowaniu produktu pracy przez każdego uczestnika w celu znalezienia anomalii?

  • a) Planowanie
  • b) Rozpoczęcie przeglądu
  • c) Przegląd indywidualny
  • d) Poprawki i raportowanie

Poprawna odpowiedź: c (Przegląd indywidualny to etap, w którym każdy przeglądający samodzielnie bada produkt pracy przed ewentualnym spotkaniem.)