Was ist statische Codeanalyse?

Die statische Codeanalyse besteht aus einer Reihe von automatisierten Prüfungen, denen der Quellcode unterzogen wird.

Ein statisches Analysetool scannt den Code auf bekannte, häufig vorkommende Fehler und Schwachstellen wie Speicherlecks oder Pufferüberläufe. Die Analyse kann auch die Durchsetzung von Programmierstandards unterstützen.

Wenn die Sicherheit einen hohen Stellenwert hat, können spezielle Testtools für statische Anwendungssicherheit (static application security testing, SAST) den Code auf bekannte Sicherheitslücken prüfen. Da die statische Analyse am Quellcode durchgeführt wird, ohne das Programm auszuführen, kann sie entweder ganz am Anfang der CI/CD-Pipeline oder direkt in Ihrer IDE stattfinden, noch bevor Sie Ihre Änderungen per Commit festschreiben.

Wie bei allen automatisierten Testformen wird bei der statischen Codeanalyse sichergestellt, dass die Tests stets identisch durchgeführt werden und Sie schnell Feedback zu Ihren Änderungen erhalten. Statische Analysetools, die in Ihre IDE integriert sind, bieten sofortiges und zielgerichtetes Feedback, damit Sie Probleme sofort beheben können.

Die statische Analyse kann jedoch nur Fälle identifizieren, in denen definierte Regeln verletzt wurden – sie kann nicht allein durch das Lesen des Quellcodes alle Fehler finden. Es besteht auch die Gefahr von falsch-positiven Ergebnissen, weshalb die Ergebnisse einer Interpretation bedürfen.

In diesem Sinne ist die statische Codeanalyse eine wertvolle Ergänzung zu Code-Reviews, da sie bekannte Probleme aufzeigt und Ihnen Zeit für interessantere Aufgaben verschafft – zum Beispiel die Überprüfung des Gesamtkonzepts und des Aufbaus.

Die statische Codeanalyse gehört zum Arsenal der automatisierten Prüfungen, die Sie zur Sicherung der Codequalität einsetzen können. Sie sollte in Verbindung mit anderen Formen der dynamischen Analyse (die Ihren Code durch Ausführen auf bekannte Probleme prüft) und mit automatisierten Tests verwendet werden.