Statische Codeanalyse
Veröffentlicht auf 7. Januar 2013
Statische Codeanalyse ist ein White Box Testverfahren, bei dem der Quelltext einer Reihe von Prüfungen unterzogen wird, die über die Möglichkeiten eines normalen Compilers hinaus gehen, ohne das eigentliche Programm auszuführen.
Es können Fehler wie
- Abweichungen von Coding Standard
- Probleme bei Typumwandlungen
- Nicht richtig initialisierte Variablen
- Überschreiten von Bereichsgrenzen
- Pointerprobleme
- Endlosschleifen, Rekursionsschleifen
- Probleme bei Serialisierung
- Problme bei Threads
- Undokumentierte API
und noch mehr erkannt werden.
Dabei werden aber nicht nur Fehler gefunden, auch sogenannte "Code Smells" werden gesucht. Darunter versteht man bestimmte Schwachstellen im Code, die einen Fehler erzeugen könnten.
- Duplizierter Code
- Auskommentierte Code
- Absolute Pfadangaben
- Nicht geprüfte Rückgabewerte
- Performanceprobleme mit Ressourcen
- Sicherheitsrisiken
- Nicht verwendete Variablen, Methoden
etc.
Des Weiteren können manchmal Schwellwerte für Metriken definiert und ermittelt und somit ggf. gegengesteuert werden.
- Vererbungstiefe
- Klassengröße
- Komplexität von Code
- Kommentardichte
usw.
Bekannte Software für statische Tests sind:
- Lint
- FindBugs
- Checkstyle
- PMD
- FxCop
- StyleCop
Eine Liste möglicher Software kann hier gefunden werden:
http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis