Lekcja 3.7: Czynności Wykonywane w Procesie Przeglądu

Przeglądy, jako kluczowa technika testowania statycznego, nie są chaotycznym działaniem, lecz ustrukturyzowanym procesem.

Aby były skuteczne, muszą przebiegać według określonych kroków, zapewniających systematyczność, kompletność i efektywność.

Sylabus ISTQB Foundation Level v4.0, w sekcji 3.2.2 (FL-3.2.2 K2), opisuje ogólny proces przeglądu, bazując na standardzie ISO/IEC 20246.

Zrozumienie tych czynności jest niezbędne do prawidłowego planowania, przeprowadzania i wykorzystywania wyników przeglądów.

Standard ISO/IEC 20246 definiuje „usystematyzowane, a zarazem elastyczne ramy”, co oznacza, że opisany proces stanowi szkielet, który można i należy dostosować do konkretnej sytuacji – stopnia formalności przeglądu, typu produktu pracy, kontekstu projektu i organizacji.

Im bardziej formalny przegląd (np. inspekcja), tym więcej zadań w ramach każdej czynności będzie wymaganych.

Sylabus wyróżnia pięć głównych czynności w procesie przeglądu:

  1. Planowanie
  2. Rozpoczęcie przeglądu
  3. Przegląd indywidualny
  4. Przekazanie informacji i analiza
  5. Usunięcie defektów i raportowanie

Przyjrzyjmy się bliżej każdej z tych czynności.

1. Planowanie (Planning)

Każdy skuteczny przegląd zaczyna się od solidnego planu.

Faza planowania ma na celu zdefiniowanie ram i celów przeglądu, zapewniając, że wszyscy uczestnicy wiedzą, co, dlaczego i jak będzie przeglądane.

Kluczowe zadania na tym etapie to:

  • Określenie zakresu przeglądu: Co dokładnie będzie przedmiotem przeglądu? Czy cały dokument/kod, czy tylko jego fragment? Jakie są granice przeglądu?
  • Zdefiniowanie celu przeglądu: Po co przeprowadzamy ten przegląd? Czy głównym celem jest wykrycie defektów, ocena zgodności ze standardami, osiągnięcie konsensusu, edukacja zespołu, czy może kombinacja tych celów? Cel wpływa na wybór typu przeglądu i technik.
  • Identyfikacja produktu pracy: Precyzyjne wskazanie wersji dokumentu, fragmentu kodu lub modelu, który będzie analizowany.
  • Określenie ocenianych charakterystyk jakościowych: Na jakich aspektach jakości skupi się przegląd? Czy na poprawności, kompletności, spójności, czytelności, zgodności ze standardami, testowalności?
  • Wskazanie obszarów wymagających szczególnej uwagi: Czy istnieją konkretne części produktu pracy, które są bardziej ryzykowne, złożone lub krytyczne i wymagają dokładniejszej analizy?
  • Zdefiniowanie kryteriów wyjścia (Exit Criteria): Kiedy uznamy przegląd za zakończony? Jakie warunki muszą zostać spełnione (np. liczba pozostałych defektów krytycznych, procent poprawionych anomalii, formalne zatwierdzenie)?
  • Zebranie informacji pomocniczych: Jakie materiały będą potrzebne przeglądającym (np. powiązane dokumenty, standardy kodowania, listy kontrolne, wcześniejsze wersje produktu)?
  • Oszacowanie nakładu pracy i ram czasowych: Ile czasu zajmie przygotowanie, przegląd indywidualny, spotkanie i działania po przeglądzie? Ustalenie realistycznego harmonogramu.
  • Wybór uczestników i przypisanie ról: Kto weźmie udział w przeglądzie i jakie role będzie pełnił (Autor, Moderator, Przeglądający, Protokolant, Lider przeglądu – role zostaną omówione w kolejnej lekcji).
  • Wybór typu przeglądu i technik: Jaki typ przeglądu (nieformalny, przejrzenie, techniczny, inspekcja) najlepiej pasuje do celów i kontekstu? Jakie techniki (np. ad hoc, oparte na listach kontrolnych, scenariuszach, perspektywie) zostaną zastosowane podczas przeglądu indywidualnego?

Dobrze przeprowadzona faza planowania jest fundamentem sukcesu całego procesu przeglądu.

2. Rozpoczęcie Przeglądu (Initiate Review)

Po zaplanowaniu następuje formalne rozpoczęcie przeglądu, często nazywane „kick-off”.

Celem tego etapu jest upewnienie się, że wszystko i wszyscy są gotowi do rozpoczęcia właściwej pracy.

Kluczowe zadania to:

  • Dystrybucja produktu pracy i materiałów pomocniczych: Upewnienie się, że wszyscy uczestnicy otrzymali dostęp do właściwej wersji produktu pracy oraz wszelkich niezbędnych dokumentów referencyjnych, list kontrolnych, standardów itp.
  • Wyjaśnienie celów, zakresu i procesu: Przypomnienie uczestnikom celów przeglądu, jego zakresu, oczekiwanych rezultatów, harmonogramu oraz zasad, według których będzie przebiegał.
  • Potwierdzenie ról i obowiązków: Upewnienie się, że każdy uczestnik rozumie swoją rolę (np. jako przeglądający, moderator) i związane z nią zadania.
  • Sprawdzenie gotowości produktu pracy: Czasami sprawdza się, czy produkt pracy spełnia podstawowe kryteria wejścia do przeglądu (np. czy jest kompletny, czy przeszedł podstawowe testy).
  • Odpowiedzi na pytania uczestników: Umożliwienie uczestnikom zadawania pytań dotyczących procesu lub produktu pracy przed rozpoczęciem przeglądu indywidualnego.

Etap rozpoczęcia zapewnia, że wszyscy są na tej samej stronie i mają wszystko, czego potrzebują, aby efektywnie przeprowadzić przegląd indywidualny.

3. Przegląd Indywidualny (Individual Review / Preparation)

To jest „serce” procesu przeglądu, gdzie każdy przeglądający samodzielnie analizuje produkt pracy.

Celem jest dokładne zbadanie produktu pod kątem zdefiniowanych celów i charakterystyk jakościowych oraz zidentyfikowanie potencjalnych problemów.

Kluczowe zadania:

  • Analiza produktu pracy: Każdy przeglądający dokładnie studiuje przydzielony mu produkt pracy (lub jego część).
  • Stosowanie technik przeglądu: Wykorzystanie jednej lub więcej technik przeglądu (np. ad hoc, listy kontrolne, scenariusze, oparte na rolach, perspektywie) w celu systematycznego wyszukiwania problemów. Sylabus wspomina o listach kontrolnych i scenariuszach, a więcej technik opisuje standard ISO/IEC 20246.
  • Identyfikacja anomalii: Wyszukiwanie wszelkich odchyleń od oczekiwań, standardów, wymagań lub dobrych praktyk. Anomalie mogą obejmować defekty, niespójności, niejednoznaczności, braki, sugestie usprawnień itp.
  • Dokumentowanie anomalii: Zapisywanie znalezionych anomalii wraz z ich lokalizacją, opisem i (opcjonalnie) proponowanym rozwiązaniem lub klasyfikacją ważności.
  • Zadawanie pytań: Notowanie pytań lub wątpliwości, które pojawiają się podczas analizy, a które wymagają wyjaśnienia przez autora lub innych uczestników.

Efektywność całego przeglądu w dużej mierze zależy od staranności i zaangażowania uczestników na tym etapie.

4. Przekazanie Informacji i Analiza (Communicate and Analyze Issues)

Po zakończeniu przeglądu indywidualnego, znalezione anomalie i pytania muszą zostać zebrane, skonsolidowane i przeanalizowane.

Celem jest wspólne zrozumienie problemów, podjęcie decyzji co do ich klasyfikacji i dalszych działań.

Kluczowe zadania:

  • Przekazanie wyników: Przeglądający przekazują zidentyfikowane anomalie i pytania (np. w formie listy, komentarzy w narzędziu, podczas spotkania).
  • Konsolidacja i usunięcie duplikatów: Zebranie wszystkich zgłoszonych anomalii w jednym miejscu i zidentyfikowanie duplikatów.
  • Analiza anomalii: Wspólne (np. podczas spotkania przeglądowego) lub indywidualne (przez moderatora/lidera) przeanalizowanie każdej anomalii w celu zrozumienia jej istoty i wpływu.
  • Klasyfikacja anomalii: Określenie, czy dana anomalia jest faktycznie defektem, sugestią, pytaniem, czy może fałszywym alarmem. Defekty mogą być dalej klasyfikowane według ważności (np. krytyczny, wysoki, niski).
  • Podejmowanie decyzji: Ustalenie, które defekty wymagają poprawy, które sugestie zostaną wdrożone, a które odrzucone (z uzasadnieniem).
  • Dyskusja i wyjaśnienie wątpliwości: Omówienie pytań i niejasności zgłoszonych przez przeglądających.
  • Dokumentowanie wyników: Zapisanie ostatecznej listy defektów do poprawy, podjętych decyzji i ewentualnych dalszych działań (np. potrzeba kolejnego przeglądu).

Forma tego etapu może się różnić – od formalnego spotkania przeglądowego (typowego dla inspekcji) po asynchroniczną komunikację za pomocą narzędzi.

5. Usunięcie Defektów i Raportowanie (Fixing and Reporting)

Ostatnia czynność koncentruje się na naprawie zidentyfikowanych defektów i formalnym zakończeniu przeglądu.

Kluczowe zadania:

  • Poprawa defektów przez autora: Autor produktu pracy wprowadza poprawki zgodnie z ustaleniami z poprzedniego etapu.
  • Weryfikacja poprawek: Sprawdzenie (np. przez moderatora, lidera przeglądu lub wyznaczonego przeglądającego), czy defekty zostały poprawnie usunięte i czy nie wprowadzono nowych problemów.
  • Aktualizacja statusu anomalii: Oznaczenie poprawionych defektów jako zamknięte.
  • Zebranie metryk: Zgromadzenie danych dotyczących przeglądu (np. liczba znalezionych defektów, czas trwania, wysiłek), które mogą być wykorzystane do oceny efektywności procesu i jego doskonalenia.
  • Sprawdzenie kryteriów wyjścia: Weryfikacja, czy wszystkie zdefiniowane w fazie planowania kryteria wyjścia zostały spełnione.
  • Formalne zatwierdzenie (jeśli wymagane): W bardziej formalnych przeglądach może być wymagane formalne podpisanie lub zatwierdzenie produktu pracy przez odpowiednie osoby.
  • Raportowanie wyników: Przygotowanie i dystrybucja raportu z przeglądu, podsumowującego jego przebieg, wyniki, podjęte decyzje i status końcowy.

Po pomyślnym zakończeniu tego etapu, produkt pracy jest gotowy do dalszych kroków w cyklu życia oprogramowania.

Elastyczność Procesu

Należy pamiętać, że opisany proces jest modelem ogólnym.

W praktyce, zwłaszcza przy mniej formalnych przeglądach (np. przejrzenie kodu przez kolegę), niektóre czynności mogą być uproszczone, połączone lub pominięte.

Kluczowe jest jednak zachowanie podstawowej struktury i celów każdej fazy, aby zapewnić systematyczność i skuteczność przeglądu, dostosowując poziom formalności do konkretnych potrzeb.

Najczęściej Zadawane Pytania (FAQ)

Czy zawsze musi być 5 czynności w przeglądzie?
Niekoniecznie. To jest modelowy proces. W mniej formalnych przeglądach niektóre kroki mogą być połączone lub uproszczone. Na przykład, w nieformalnym przejrzeniu kodu, planowanie może być minimalne, a komunikacja i poprawki mogą dziać się ad-hoc.
Kto jest odpowiedzialny za planowanie przeglądu?
Zazwyczaj lider przeglądu lub moderator, często we współpracy z autorem i innymi kluczowymi interesariuszami. W mniej formalnych sytuacjach może to być po prostu osoba inicjująca przegląd.
Jak długo powinien trwać przegląd indywidualny?
Czas zależy od objętości i złożoności produktu pracy oraz doświadczenia przeglądających. Ważne jest, aby zaplanować wystarczająco dużo czasu na dokładną analizę, ale unikać przeciążenia przeglądających. Zbyt długie sesje mogą prowadzić do zmęczenia i spadku efektywności.
Czy spotkanie przeglądowe jest zawsze konieczne?
Nie. W niektórych typach przeglądów (np. przejrzenie) lub gdy liczba znalezionych problemów jest niewielka, komunikacja i analiza mogą odbywać się asynchronicznie (np. przez e-mail, komentarze w narzędziu). Spotkanie jest typowe dla bardziej formalnych przeglądów, jak inspekcje.
Co jeśli autor nie zgadza się z znalezionym defektem?
Podczas etapu komunikacji i analizy powinna odbyć się dyskusja. Jeśli nie uda się osiągnąć konsensusu, decyzję podejmuje moderator lub lider przeglądu, ewentualnie eskalując sprawę do odpowiedniej osoby decyzyjnej (np. architekta, menedżera produktu).
Czy autor powinien uczestniczyć w przeglądzie indywidualnym?
Autor zazwyczaj nie uczestniczy aktywnie w przeglądzie indywidualnym swojego produktu pracy (aby uniknąć stronniczości), ale powinien być dostępny do odpowiadania na pytania przeglądających.
Jakie metryki warto zbierać podczas przeglądów?
Przykładowe metryki to: czas przygotowania, czas przeglądu indywidualnego, czas spotkania, liczba znalezionych defektów (ogółem i wg ważności), liczba defektów na stronę/linię kodu, gęstość defektów. Pomagają one ocenić i usprawnić proces przeglądu.
Co to są kryteria wyjścia i dlaczego są ważne?
Kryteria wyjścia to warunki, które muszą zostać spełnione, aby uznać przegląd za zakończony (np. wszystkie krytyczne defekty poprawione). Są ważne, ponieważ zapewniają obiektywną miarę zakończenia procesu i osiągnięcia założonych celów jakościowych.
Czy ten proces dotyczy tylko przeglądów kodu?
Nie, ten ogólny proces można zastosować do przeglądu dowolnego produktu pracy, takiego jak dokumentacja wymagań, przypadki testowe, plany testów, projekty architektury, makiety interfejsu użytkownika itp.
Jakie narzędzia mogą wspierać proces przeglądu?
Istnieją narzędzia do zarządzania przepływem pracy przeglądu, komentowania kodu/dokumentów, śledzenia defektów, zbierania metryk. Przykłady to Gerrit, Crucible, systemy kontroli wersji z funkcją pull requestów (GitHub, GitLab), a nawet proste arkusze kalkulacyjne.

Przykładowe Pytania Egzaminacyjne

Pytanie 1 (K2): Która czynność procesu przeglądu obejmuje dystrybucję produktu pracy i wyjaśnienie celów uczestnikom?

  • a) Planowanie
  • b) Rozpoczęcie przeglądu
  • c) Przegląd indywidualny
  • d) Usunięcie defektów i raportowanie

Poprawna odpowiedź: b (Rozpoczęcie przeglądu (Initiate Review) to etap, na którym materiały są dystrybuowane, a cele i proces wyjaśniane uczestnikom.)

Pytanie 2 (K1): Podczas której czynności procesu przeglądu przeglądający samodzielnie analizują produkt pracy w poszukiwaniu anomalii?

  • a) Planowanie
  • b) Rozpoczęcie przeglądu
  • c) Przegląd indywidualny
  • d) Przekazanie informacji i analiza

Poprawna odpowiedź: c (Przegląd indywidualny (Individual Review) to faza, w której każdy uczestnik samodzielnie bada produkt pracy.)

Pytanie 3 (K2): Zdefiniowanie kryteriów wyjścia dla przeglądu jest częścią której czynności?

  • a) Planowanie
  • b) Przegląd indywidualny
  • c) Przekazanie informacji i analiza
  • d) Usunięcie defektów i raportowanie

Poprawna odpowiedź: a (Kryteria wyjścia, określające warunki zakończenia przeglądu, są definiowane podczas fazy Planowania.)