Przeglądy są typem testowania oprogramowania (włączając w to kod) i mogą być przeprowadzone zanim dynamicznie uruchomi się produkt. Błędy wykryte dzięki przeglądowi we wczesnej fazie cyklu tworzenia oprogramowania są zazwyczaj znacznie tańsze do usunięcia niż te wykryte podczas wykonywania testów (np. defekty znalezione w wymaganiach).
Przegląd może zostać wykonany w całości jako czynności manualne, ale jest jeszcze wsparcie narzędzi.
Główna czynność manualna to sprawdzenie przeglądanego produktu i skomentowanie go. Każdy produkt może zostać przetestowany poczynając od wymagań specyfikacji, specyfikację projektową, kod, test plany, test specyfikacje, przypadki testowe, skrypty testowe, przewodnik użytkownika lub strony internetowe.
Korzyści przeglądów to wczesne wykrycie defektów i ich korekta, poprawa produktywności rozwoju oprogramowania, zredukowanie czasu potrzebnego na tworzenie oprogramowania, zredukowanie czasu i kosztów testowania, zredukowanie kosztów cyklu życia, mniej błędów i poprawa komunikacji. Przegląd może znajdywać defekty pominięte podczas dynamicznych testów np. w wymaganiach. Przegląd, analiza statyczna i dynamiczne testowanie mają te same cele - znajdywanie błędów. Wypełniają się: różne techniki mogą znaleźć różne typy defektów efektywniej i wydajniej. Gdy technik dynamicznych raczej znajdują problemy spowodowane przez defekty to przeglądy znajdują same defekty.
Typowe defekty są łatwiejsze do znalezienia poprzez przegląd niż przez testy dynamiczne: odchylenia od standardu, złe wymagania, wady projektowe, niedostateczna serwisowalność i zła specyfikacja interfejsów.
Proces przeglądu
Wyróżnia się przeglądy od bardzo nieoficjalnych do bardzo sformalizowanych (np. regulowane). Oficjalność procesu przeglądu jest związana z czynnikami takimi jak dojrzałość procesu rozwoju oprogramowania, legalnych lub uregulowanych wymaganiach lub konieczności przeprowadzenia audytu. Różne formy przeglądu są przeprowadzone w zależności od ustalonych celów przeglądu (np. znajdywanie defektów, zrozumienie, lub dyskusja i decyzja o znalezieniu wspólnego zdania).
Fazy
Wyróżnia się następujące fazy w zakresie przeglądu:
- planowanie - wyznaczenie obsługi, zdecydowanie o rolach, zdefiniowanie kryteriów wejścia i wyjścia dla bardziej formalnych typów przeglądów (np. inspekcja); wybór, które części dokumentu sprawdzić
- rozpoczęcie - dystrybucja dokumentów; wyjaśnienie uczestnikom przeglądu celów, procesów i dokumentów; sprawdzenie osiągnięcia kryterium wejścia (dla bardziej formalnych typów przeglądu)
- indywidualne przygotowanie - praca wykonana przez różnych uczestników przed spotkaniem przeglądowym, wynotowanie ewentualnych błędów, pytań i komentarzy
- spotkanie przeglądowe: dyskusja lub rejestracja, zakończone dokumentem podsumowującym (formalne przeglądy). Uczestnicy spotkania mogą wynotować defekty, wyartykułować swoje rekomendacje jak radzić sobie z błędami, lub podjąć decyzję o defektach.
- poprawki - naprawienie znalezionych błędów, zazwyczaj zrobione przez autora
- kontynuacja - sprawdzenie czy defekty zostały naprawione lub ocenione, zebranie metryk i sprawdzenie kryterium wyjścia (formalne przeglądy)
Role i odpowiedzialność
Typowe role w formalnych przeglądach:
- kierownik - decyduje o wykonaniu przeglądu, rezerwuje czas w projekcie i określa czy cel przeglądów został osiągnięty
- moderator - osoba, która prowadzi przegląd dokumentacji lub zbioru dokumentacji, włączając planowanie przeglądu, prowadzenie spotkania, i kontynuacja po spotkaniu. Gdy konieczne, moderator może być mediatorem pomiędzy różnymi punktami widzenia i często jest osobą wspierająca sukces przeglądu
- autor - osoba posiadająca odpowiedzialność za dokument(y), które mają zostać przeglądnięte
- przeglądający - osoby ze specjalnym technicznym lub biznesowym przygotowaniem (nazywani również sprawdzający lub inspektorami), którzy po koniecznych przygotowaniach, zidentyfikują i opiszą znalezisk (np. defekty) w produkcie będącym przeglądanym. Przeglądający powinni być wybrani dla reprezentowania różnych perspektyw, reprezentowania różnych ról w procesie przeglądu i brać udział w spotkaniach przeglądowych
- zapisujący - dokumentujący wszystkie poruszone problemy i otwarte tematy, które zostały zasygnalizowane podczas spotkania
Sprawdzając dokumentację pod różnymi perspektywami i używając wcześniej przygotowanych punktów kontrolnych można podnieść efektywność przeglądu np. punkty kontrolne użytkownika, serwisanta, testera czy lista punktów do sprawdzenia typowych problemów wymagań.
Typy przeglądów
Pojedynczy dokument może być tematem więcej niż jednego przeglądu. Jeśli więcej niż jeden jest użyty, kolejność może się różnić. Dla przykładu nieoficjalne przeglądy mogą być przeprowadzone przed technicznymi, a inspekcje wymagań mogą poprzedzać sprawdzenie ich przez klienta.
Główne parametry, opcje i cele typowych przeglądów:
- nieformalne - niezdefiniowany proces, programowanie w parach lub techniczne prowadzenie przeglądów projektów i kodu, może być udokumentowane, może się różne w zależności od przydatności przeglądającego, główny cel to tanio osiągnąć korzyści
- przejście przez - spotkanie prowadzone przez autora, przygotowany scenariusz, grupa kolegów, sesja bez ustalonego końca, opcjonalnie przed spotkaniem przygotowanie przeglądów, raport przeglądu, lista znalezisk z opisem, może być różne w praktyce, główny cel: uczenie, osiąganie zrozumienia, znajdywanie defektów
- techniczne - udokumentowane, zdefiniowany proces detekcji defektów zawierający uwagi koleżeńskie i ekspertów technicznych, może być przeprowadzone bez obecności kierownictwa, w doskonałym przypadku powinno być prowadzone przez moderatora, a nie autora, przygotowane spotkanie, opcjonalnie przygotowana lista punktów kontrolnych, raport po zakończeniu przeglądu, lista znalezisk i udział kierownictwa, może być różna w zależności od okoliczności, główny cel: dyskusja, podejmowanie decyzji, sprawdzanie alternatyw, znajdowanie defektów, rozwiązywanie technicznych problemów, sprawdzenie zgodności z specyfikacją i standardami.
- inspekcja - prowadzona przez przygotowanego merytorycznie moderatora, sprawdzenie przez kolegów, zdefiniowane role, zawiera metryki, proces formalny oparty na zasadach i punktach kontrolnych z kryterium wejścia i wyjścia, przygotowanie przed spotkaniem, raport z inspekcji, lista znalezisk, formalny proces sprawdzenia wykonania założeń spotkania, opcjonalnie proces ulepszania, główny cel znajdowanie defektów.
Cechy skutecznego przeglądu
Aby skutecznie przeprowadzić przegląd należy:
- każdy przegląd musi mieć wcześniej zdefiniowane cele
- odpowiedni ludzie są zaangażowani w cele przeglądu
- znajdywanie defektów jest mile widziane i wyrażane w sposób obiektywny
- czynniki ludzkie i aspekt psychologiczny są brane pod uwagę (np. stworzenie środowiska do zdobywania doświadczenia przez wszystkich uczestników przeglądu)
- techniki przeglądów są odpowiednie i pasujące do typu i poziomu oprogramowania i uczestników przeglądu
- lista punktów kontrolnych jest użyta odpowiednio w celu zwiększenia efektywności identyfikacji defektów.
- trening w temacie technik przeglądów zostaje dostarczony do organizacji, szczególnie dla praktyk sformalizowanych
- kierownictwo wspiera dobry proces przeglądu (np. rezerwując czas potrzebny dla przeglądu w planie projektu)
- jest wola uczenia się i wprowadzania procesu ulepszania