Statische Analysefunktionen sind häufig in dynamische Testwerkzeuge integriert, zum Teil aber auch einzeln verfügbar. Dabei lassen sich die folgenden Werkzeugkategorien unterscheiden [ Lig02 ]:
Messwerkzeuge Messwerkzeuge dienen zur Gewinnung und Darstellung von Informationen über ein Software-Produkt durch Mittel der statischen Analyse. Dazu wird eine Analyse des Quellcodes durchgeführt, bei der bestimmte Merkmale im Code registriert und in aufbereiteter Form angezeigt werden. Die Messwerkzeuge sind daher in aller Regel programmiersprachenspezifisch. Verbreitete Maße der statischen Analyse sind die zyklomatische Zahl, die Halstead-Maße, Maße zur Datenkomplexität und einfache Maße wie Lines of Code.
Stilanalysatoren Stilanalysatoren analysieren ähnlich wie statische Messwerkzeuge den Quellcode. Sie bestimmen allerdings keine Messwerte, sondern suchen nach vordefinierten oder einstellbaren Verletzungen von Programmierregeln. Diese Regeln können Einschränkungen für die zu verwendenden programmiersprachlichen Konstrukte aber auch zusätzliche Forderungen definieren, die bei der Programmierung zu beachten sind. Für einzelne Programmiersprachen wird die Verwendung von Stilanalysatoren in bestimmten Anwendungsgebieten explizit gefordert.
Werkzeuge zur Erzeugung von Grafiken und Tabellen Werkzeuge zur Erstellung von Tabellen und Grafiken sind weit verbreitet. Im Allgemeinen treten derartige Werkzeuge nicht allein, sondern als Bestandteil von Werkzeugumgebungen oder integriert in dynamische Testwerkzeuge auf. Verbreitet ist die Erzeugung von Kontrollfluss- und Aufrufgraphen sowie von Variablen-Cross-Reference-Tabellen als Bestandteil der Funktionalität dynamischer Testwerkzeuge.
Slicing-Werkzeuge Slicing-Werkzeuge dienen bei der Prüfung von Software hauptsächlich zur Unterstützung der Fehlersuche nach Erkennung eines Fehlverhaltens (Debugging). Ein Slice ist ein reduzierter Ausschnitt aus dem Quellcode eines Programms, der bestimmt, gerade nicht interessante Abhängigkeiten zwischen Anweisungen oder Programmzeilen ausblendet.
Datenflussanomalieanalyse-Werkzeuge Die Datenflussanomalieanalyse ist oft in Compiler integriert. Darüber hinaus gibt es zahlreiche Werkzeuge, die solche Analysen explizit anbieten. Eine Erkennung von Datenflussanomalien auf statischem Weg ist mit relativ wenig Aufwand möglich, automatisierbar und bietet sichere und verlässliche Ergebnisse.