Was ist statische Code Analyse?




Statische Code Analyse ist ein statisches Software-Testverfahren.
Im Gegensatz zu dynamischen Testverfahren muss die zu testende Software nicht ausgeführt werden. Es wird also nur der Quelltext benötigt. Daher lässt sich die statische Code Analyse dem White-Box-Test zuordnen.

Der Quelltext wird einer Reihe formaler Prüfungen unterzogen, bei denen bestimmte Sorten von Fehlern/Schwachstellen im Code entdeckt werden können. Das Ziel hierbei ist immer nur das Aufzeigen von Fehlern, es wird nichts aktiv am Code verändert/verbessert ("read-only").

Die Analyse wird üblicherweise mit Tools durchgeführt, kann aber auch manuell geschehen, was mit erheblichem Aufwand verbunden ist. Der "Klassiker" unter diesen Tools ist Lint. Lint war das erste Werkzeug zur statischen Code Analyse von Quelltexten von Computerprogrammen.

Im Gegensatz zu älteren Tools beschränken sich neuere Programme nicht auf funktionale Fehler, sondern erkennen auch qualitative Schwachstellen ("Bad Smells"), wie z.B. duplizierten Code.

Im Folgenden werden die drei Tools FindBugs, Checkstyle und CAP vorgestellt. Alle Beispiele beziehen sich dabei auf die entsprechenden Eclipse Plugins.