Analiza statyczna kodu

Analiza statyczna kodu – analiza struktury kodu źródłowego lub kodu skompilowanego bez jego uruchomienia.

Zastosowania:
– automatyczna ocena zmian w kodzie
– szybka, wstępna analiza otrzymanego projektu
– uzyskiwanie informacji o zgodności kodu z narzuconymi standardami
– wspieranie procesu code review
– wykrywanie słabych punktów projektów – miejsc wymagających refaktoryzacji.

Zalety:
– Szybkość działania – szybkie wykrywanie błędów, których naprawa jest prosta i mało kosztowna
– nie wymagają uruchamiania programu
– łatwe do zrównoleglenia
– Łatwość użycia – proste we wdrożeniu w cykl wytwarzania oprogramowania
– Automatyzacja – integracja z narzędziami continuous integrations
– Możliwości rozszerzania: własne reguły, wtyczki
– Dużo darmowych narzędzi
– Integracja z innymi narzędziami: serwery automatyzacji, IDE, kontrola wersji

Wady:
– Wymagany dostęp do źródeł
– Reguły wykrywają zazwyczaj proste błędy i nie są w stanie wyeliminować ręcznego sprawdzenia kodu
– Dużo szumu, zbyt czułe – duże prawdopodobieństwo zaklasyfikowanie poprawnego fragmentu jako błędu (false positive)
– Skomplikowane algorytmy i architektury bardzo ciężko jest analizować
– Każde narzędzie zazwyczaj pokrywa pewien zakres testów (do 14% błędów?!). Dlatego warto korzystać z kilku różnych skanerów kodu

Dlaczego analizować kod?
– zwiększenie wydajności i stabilności poprzez zasady oparte na dobrych praktykach,
– uniknięcie typowych błędów podczas programowania,
– dostarczenie struktury do zarządzania standardami kodu.
– wymuszenie zasad i standardów pisania kodu
– zwiększenie bezpieczeństwa poprzez kolejny etap testowania
– analizując sygnalizowane błędy można się sporo nauczyć na temat dobrych praktyk bezpiecznego programowania

Leave a Reply