Statyczne techniki testowania

Statyczne techniki testowania
Statyczne techniki testowe nie uruchamiają oprogramowania, które jest testowane. Mogą być ręczne (przeglądy) lub automatyczne (analiza statyczna). Dowiedz się więcej.

Testowanie statyczne jest ważną częścią całego procesu weryfikacji jakości oprogramowania. Warto je lepiej poznać, by łatwiej i szybciej wychwytywać niektóre defekty. W tym artykule skoncentrujemy się na samych przeglądach. 

Przeglądy są typem testowania oprogramowania i dokumentacji (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 istnieje wsparcie narzędziowe, które może podnieść jego efektywność.

Główna czynność manualna to sprawdzenie przeglądanego produktu i skomentowanie go. Każdy produkt może zostać przetestowany poczynając od wymagań specyfikacji, specyfikacji projektowej, kodu, test planów, test specyfikacji, przypadków testowych, skryptów testowych, przewodnika użytkownika lub stron internetowych.

Korzyści z 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 niemożliwe do wychwycenia podczas dynamicznych testów np. w wymaganiach. Przegląd, analiza statyczna i dynamiczne testowanie mają te same cele — znajdywanie błędów. Uzupełniają się, gdyż różne techniki mogą znaleźć różne typy defektów efektywniej i wydajniej. Gdy techniki dynamiczne raczej znajdują problemy spowodowane przez defekty, to przeglądy znajdują same defekty.

Typowe defekty, które 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 nieformalnych do bardzo sformalizowanych (np. w projektach regulowanych). Oficjalność procesu przeglądu jest związana z czynnikami takimi jak dojrzałość procesu rozwoju oprogramowania, prawne lub regulowane wymagania lub konieczność przeprowadzenia audytu. Różne formy przeglądu są przeprowadzane w zależności od ustalonych celów przeglądu, którymi mogą być np. znajdywanie defektów, zrozumienie lub dyskusja i decyzja o znalezieniu wspólnego rozwiązania.

Fazy

Wyróżnia się następujące fazy w zakresie przeglądu:

  • planowanie - wyznaczenie zespołu, 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 jego 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 dotyczące tego, 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 kontynuację 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ącymi lub inspektorami), którzy po koniecznych przygotowaniach zidentyfikują i opiszą znaleziska (np. defekty) w przeglądanym produkcie. Przeglądający powinni być wybrani dla reprezentowania różnych perspektyw i ról w procesie przeglądu oraz 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ć obiektem więcej niż jednego typu przeglądu. Dla przykładu nieoficjalne przeglądy mogą być przeprowadzone przed technicznymi, a inspekcje wymagań mogą poprzedzać sprawdzenie ich przez klienta.

Główne typy i cele  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óżnić w zależności od umiejętności przeglądającego. Główny cel to tanio osiągnąć korzyści w postaci znalezienia defektu
  • przejście - 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
  • techniczny - udokumentowane, zdefiniowany proces detekcji defektów zawierający uwagi koleżeńskie i ekspertów technicznych, może być przeprowadzony bez obecności kierownictwa, w doskonałym przypadku powinien być prowadzony 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 ze specyfikacją i standardami
  • inspekcja - prowadzona przez przygotowanego merytorycznie moderatora, sprawdzenie przez kolegów, zdefiniowane role, zawiera metryki, proces formalny oparty jest 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:

  • wcześniej zdefiniować cele
  • zaangażować odpowiednich i zmotywowanych ludzi
  • witać z radością znajdywane defekty i wyrażać się o nich w sposób obiektywny
  • brać pod uwagę czynniki ludzkie i aspekt psychologiczne np. stworzenie środowiska do zdobywania doświadczenia przez wszystkich uczestników przeglądu
  • wdrożyć techniki przeglądów, które są odpowiednie i pasujące do typu i poziomu oprogramowania i uczestników przeglądu
  • używać listę kontrolną w celu zwiększenia efektywności identyfikacji defektów
  • dostarczyć trening w temacie technik przeglądów, szczególnie dla przeglądów sformalizowanych
  • zapewnić wsparcie kierownictwa dla dobrego procesu przeglądu np. rezerwując czas potrzebny dla przeglądu w planie projektu
  • uczyć się i wprowadzać ulepszania  procesu.

We współczesnych projektach techniki statyczne takie jak przeglądy zostały zredukowane do bardzo nieformalnych, ale ciągle jest to ważne narzędzie kontroli jakości i prowadzenia dialogu na forum projektowym.

Ten artykuł pierwotnie ukazał się na naszych łamach 16/05/2008, ale w 2023 roku został ponownie zweryfikowany i poprawiony.

 

To powinno Cię zainteresować