Metoda wyszukująca niedopracowane miejsca w kodzie przez analize statyczną.

Arkadiusz Piwowarski

 

Motto: Programista jeśli coś pisze, to robi to w jakimś celu. Bezużyteczny kod przeczy tej idei i najpewniej jest błędny.

Problem, dotychczas uważany za drobny błąd kosmetyczny, w rzeczywistości często towarzyszy błędom poważnym i mogą dać namiar na ich wystąpienia. Statystycznie 45%-100% trafień. Przykładowo:

Sprawdzenia, dające mierzalne efekty:

  1. Kod nie dający efektu (np: x = x; x/x; x&x.).

    SystemPoważne błędyDrobne błędyNieuzasadnine podejrzenia
    Linux 2.4.5-ac8763
    OpenBSD 3.2268
    PostgreSQL000


  2. Przypisania na zmienne, które nigdy nie są odczytane lub przypisanie ponowne na zmienna, zanim zostanie odczytana.

    SystemPoważne błędyDrobne błędyNieuzasadnine podejrzenia
    Linux 2.4.5-ac8129261840
    OpenBSD 3.26336117
    PostgreSQL37100


  3. Nieosiągalny kod.

    SystemPoważne błędyDrobne błędyNieuzasadnine podejrzenia
    Linux 2.4.5-ac86626
    OpenBSD 3.2114
    PostgreSQL00


  4. Zawsze spełnione/niespełnione wyrażenia warunkowe.

    SystemPoważne błędyDrobne błędyNieuzasadnine podejrzenia
    Linux 2.4.5-ac84952169
    OpenBSD 3.26433316
    PostgreSQL000


Przy tworzeniu automatu sprawdzającego trzeba wziąść pod uwagę aspekty, przyczyniające się do wielu nieprawidłowych podejrzeń:

Testowanie modelu aplikacji

Błędy w kodzie a praca zespołowa.

Systemy monitorujące