Przeglądy, jako metoda testowania statycznego, nie są monolitem.
Istnieje całe spektrum podejść, różniących się stopniem formalności, celami, zaangażowanymi rolami i wymaganą dokumentacją.
Wybór odpowiedniego typu przeglądu jest kluczowy dla jego efektywności i osiągnięcia zamierzonych rezultatów.
Sylabus ISTQB Foundation Level v4.0, w sekcji 3.2.4 (FL-3.2.4 K2), opisuje cztery główne, często stosowane typy przeglądów, rozciągające się od bardzo nieformalnych po wysoce sformalizowane.
Zrozumienie charakterystyki, celów, zalet i wad każdego typu pozwala świadomie dobierać narzędzie do sytuacji.
Jak podkreśla sylabus: „Wybór właściwego typu przeglądu ma zasadnicze znaczenie dla osiągnięcia wymaganych celów przeglądu”.
Decyzja ta zależy od wielu czynników, które omówimy poniżej.
Sylabus wyróżnia następujące typy przeglądów:
- Przegląd nieformalny (Informal Review)
- Przejrzenie (Walkthrough)
- Przegląd techniczny (Technical Review)
- Inspekcja (Inspection)
Przyjrzyjmy się każdemu z nich, analizując ich kluczowe cechy.
Czynniki Wpływające na Wybór Typu Przeglądu
Zanim przejdziemy do szczegółowego opisu poszczególnych typów, warto zrozumieć, co wpływa na decyzję o wyborze konkretnego podejścia.
Sylabus wymienia kilka kluczowych czynników:
- Cele przeglądu: Co chcemy osiągnąć? Wykrycie defektów, ocenę jakości, edukację, konsensus, generowanie pomysłów? Różne typy lepiej nadają się do realizacji różnych celów.
- Potrzeby projektu: Jakie są wymagania czasowe, budżetowe i jakościowe projektu?
- Dostępne zasoby: Ile czasu i osób możemy zaangażować w przegląd?
- Typ produktu pracy: Czy przeglądamy krótki fragment kodu, obszerną specyfikację wymagań, czy model architektury?
- Ryzyka związane z produktem pracy: Jak krytyczny jest dany element? Jakie są potencjalne konsekwencje błędów?
- Przyjęty model cyklu wytwarzania oprogramowania (SDLC): Czy pracujemy w modelu kaskadowym, iteracyjnym, czy zwinnym? Modele zwinne często preferują mniej formalne, częstsze przeglądy.
- Dojrzałość procesu wytwarzania oprogramowania: Bardziej dojrzałe organizacje mogą stosować bardziej sformalizowane i ustandaryzowane procesy przeglądów.
- Krytyczność i złożoność produktu pracy: Im bardziej krytyczny i złożony produkt, tym bardziej formalny przegląd może być wskazany.
- Wymogi prawne lub regulacyjne: Niektóre branże (np. medyczna, lotnicza) mogą wymagać formalnych przeglądów i szczegółowej dokumentacji (ścieżki audytu).
- Konieczność prowadzenia ścieżki audytu: Formalne przeglądy, zwłaszcza inspekcje, zapewniają udokumentowany dowód przeprowadzenia oceny jakości.
- Dziedzina biznesowa i kultura organizacyjna firmy: Jakie są standardy i oczekiwania w danej organizacji? Czy kultura wspiera otwartą komunikację i współpracę?
Mając na uwadze te czynniki, możemy teraz przeanalizować poszczególne typy przeglądów.
1. Przegląd Nieformalny (Informal Review)
Jest to najmniej sformalizowany typ przeglądu, często stosowany na co dzień w pracy zespołowej.
Charakteryzuje się:
- Brakiem zdefiniowanego procesu: Nie ma sztywnych reguł dotyczących planowania, ról czy dokumentacji. Może to być np. szybkie spojrzenie kolegi na fragment kodu („pair programming review”), dyskusja nad szkicem dokumentu przy biurku, czy wymiana uwag mailowo.
- Brakiem formalnej dokumentacji: Wyniki zwykle nie są szczegółowo protokołowane. Celem jest szybkie uzyskanie informacji zwrotnej i poprawa produktu, a nie tworzenie ścieżki audytu.
- Głównym celem: Wykrycie anomalii: Skupia się na znalezieniu oczywistych błędów, niejasności lub potencjalnych problemów.
- Elastycznością: Może być inicjowany przez autora lub inną osobę w dowolnym momencie.
- Niskim kosztem: Zwykle wymaga niewielkiego nakładu czasu i zasobów.
Kiedy stosować? Przeglądy nieformalne są idealne do szybkiego sprawdzania mniejszych fragmentów pracy, wczesnego wykrywania problemów, wymiany wiedzy w zespole i w środowiskach, gdzie formalizacja nie jest konieczna lub możliwa (np. w bardzo dynamicznych projektach zwinnych).
Są świetnym uzupełnieniem bardziej formalnych metod.
Ograniczenia: Skuteczność zależy mocno od zaangażowania i wiedzy osób biorących udział.
Brak dokumentacji utrudnia śledzenie postępów i może nie być wystarczający w przypadku wymogów audytowych.
2. Przejrzenie (Walkthrough)
Przejrzenie jest bardziej ustrukturyzowane niż przegląd nieformalny, ale nadal stosunkowo elastyczne.
Kluczowe cechy:
- Prowadzone przez autora: To autor prezentuje produkt pracy uczestnikom, prowadzi ich przez jego treść, wyjaśnia logikę i odpowiada na pytania.
- Wiele celów: Przejrzenie może służyć różnym celom, w tym:
- Ocena jakości produktu pracy i zwiększenie zaufania do niego.
- Edukacja przeglądających (np. zapoznanie zespołu z nowym modułem kodu, projektem interfejsu).
- Osiągnięcie konsensusu co do proponowanych rozwiązań.
- Wygenerowanie nowych pomysłów i alternatywnych podejść.
- Zmotywowanie autora do udoskonalania przyszłych produktów pracy.
- Wykrycie anomalii (choć nie zawsze jest to główny cel).
- Opcjonalny przegląd indywidualny: Uczestnicy mogą (ale nie muszą) zapoznać się z produktem przed spotkaniem.
- Spotkanie przeglądowe: Zazwyczaj odbywa się spotkanie, podczas którego autor prezentuje produkt.
- Opcjonalny protokolant: Może być wyznaczony protokolant do notowania uwag i decyzji, ale nie jest to regułą.
- Elastyczny proces: Proces może być dostosowany do potrzeb, nie ma sztywnych wymagań co do ról czy metryk.
Kiedy stosować? Przejrzenia są użyteczne do nauki, zdobywania zrozumienia, osiągania konsensusu i zbierania opinii na temat produktu pracy.
Są dobre, gdy chcemy zapoznać zespół z nowym rozwiązaniem lub przedyskutować alternatywy.
Ograniczenia: Ponieważ autor prowadzi spotkanie, może nieświadomie wpływać na dyskusję lub pomijać trudniejsze fragmenty.
Skupienie na edukacji może czasem odbywać się kosztem dokładnego wykrywania defektów.
3. Przegląd Techniczny (Technical Review)
Przegląd techniczny jest bardziej formalny niż przejrzenie i skupia się na osiągnięciu konsensusu co do technicznych aspektów produktu pracy.
Charakteryzuje się:
- Prowadzony przez moderatora (nie autora): Spotkanie jest prowadzone przez wyszkolonego moderatora, co zapewnia neutralność i skupienie na celach.
- Udział ekspertów technicznych: W przeglądzie biorą udział osoby z odpowiednią wiedzą techniczną (np. architekci, starsi programiści, specjaliści ds. bezpieczeństwa).
- Wymagany przegląd indywidualny: Uczestnicy muszą przygotować się przed spotkaniem, analizując produkt pracy.
- Główny cel: Konsensus i decyzje techniczne: Skupia się na ocenie technicznej poprawności, zgodności ze standardami, wykonalności, identyfikacji alternatywnych rozwiązań i podjęciu decyzji co do dalszych kroków. Wykrywanie defektów jest również ważnym celem.
- Zdefiniowany proces: Przebiega według ustalonego procesu, choć może być mniej formalny niż inspekcja.
- Opcjonalny protokolant: Zwykle obecny, aby dokumentować dyskusje, decyzje i znalezione defekty.
- Listy kontrolne i przygotowanie: Często wykorzystuje się listy kontrolne, aby upewnić się, że kluczowe aspekty techniczne zostały sprawdzone.
Kiedy stosować? Przeglądy techniczne są idealne do oceny dokumentów technicznych (np. specyfikacji, projektów architektury, planów testów), kodu, wymagań pod kątem ich technicznej poprawności i wykonalności.
Są użyteczne, gdy potrzebny jest konsensus ekspertów w kwestiach technicznych.
Ograniczenia: Wymaga zaangażowania ekspertów, co może być kosztowne.
Może być bardziej czasochłonny niż przegląd nieformalny czy przejrzenie.
4. Inspekcja (Inspection)
Inspekcja to najbardziej formalny i rygorystyczny typ przeglądu.
Jej głównym celem jest maksymalizacja efektywności w wykrywaniu defektów.
Kluczowe cechy:
- Prowadzona przez wyszkolonego moderatora (nie autora): Moderator zarządza całym procesem i spotkaniem.
- Zdefiniowane role: Wszystkie role (Moderator, Autor, Przeglądający, Protokolant, czasem Lider Przeglądu) są jasno określone i obsadzone.
- Rygorystyczny, zdefiniowany proces: Przebiega według ściśle określonych kroków (planowanie, rozpoczęcie, przegląd indywidualny, spotkanie inspekcyjne, poprawki, weryfikacja).
- Wymagany przegląd indywidualny: Uczestnicy muszą się starannie przygotować, często stosując konkretne techniki (np. oparte na listach kontrolnych, perspektywie).
- Główny cel: Wykrywanie defektów: Cały proces jest zoptymalizowany pod kątem jak najwcześniejszego i najskuteczniejszego znajdowania błędów.
- Formalna dokumentacja: Wszystkie etapy, wyniki, znalezione defekty i decyzje są szczegółowo dokumentowane. Prowadzony jest protokół i raport.
- Zbieranie metryk: Standardowo zbiera się metryki dotyczące procesu (czas, wysiłek) i wyników (liczba i typy defektów), aby oceniać i doskonalić proces inspekcji.
- Kryteria wejścia i wyjścia: Zdefiniowane są formalne warunki rozpoczęcia i zakończenia inspekcji.
- Spotkanie inspekcyjne: Odbywa się formalne spotkanie, podczas którego przeglądający zgłaszają znalezione anomalie, a protokolant je rejestruje. Dyskusje są ograniczone do minimum, aby skupić się na logowaniu problemów.
Kiedy stosować? Inspekcje są najbardziej odpowiednie dla krytycznych produktów pracy (np. wymagania dla systemów bezpieczeństwa, kluczowe moduły kodu), gdy wymagana jest najwyższa jakość i formalna ścieżka audytu.
Są również skuteczne w organizacjach o wysokiej dojrzałości procesowej.
Ograniczenia: Jest to najbardziej czasochłonny i kosztowny typ przeglądu.
Wymaga wyszkolonych uczestników (zwłaszcza moderatora) i dyscypliny w przestrzeganiu procesu.
Może być postrzegany jako zbyt biurokratyczny w niektórych środowiskach (np. zwinnych).
Podsumowanie Typów Przeglądów
Wybór odpowiedniego typu przeglądu jest kluczowy.
Od nieformalnych, szybkich sprawdzeń po rygorystyczne inspekcje – każdy typ ma swoje miejsce i zastosowanie.
Ważne jest, aby dopasować poziom formalności i cele przeglądu do konkretnych potrzeb projektu, produktu pracy i kontekstu organizacyjnego, aby zmaksymalizować korzyści płynące z tej potężnej techniki testowania statycznego.