Sauberer Quellcode mit NDepend v6

Werkzeuge  –  0 Kommentare

NDepend ist ein Werkzeug zur statischen Codeanalyse. Trotz der recht niedrigen Versionsnummer v6 gilt es als Urgestein im .NET-Umfeld.

Unit-Tests und ihr positiver Einfluss auf die Softwarequalität sind in Entwicklerkreisen bekannt. Ihre Wirkung können sie allerdings nur dann entfalten, wenn sich die Tester nicht nur dem sogenannten Happy Path – einem Standardfall ohne Abweichung von der Erwartung – widmen, sondern reale Szenarien verwenden, die zusätzliche Arbeit bedeuten. Dabei gilt es zunächst die Arten der Tests zu differenzieren.

Von schwarzen und weißen Kisten

Unit-Tests gehören zu den dynamischen Verfahren und erfordern ein laufendes Programm. Die Tester führen Fälle aktiv auf einem Prüfling aus, die eine vorhandene Spezifikation möglichst vollständig abdecken. Anhand des erwarteten und tatsächlichen Resultats können sie prüfen, ob mit der Software alles in Ordnung ist. Daher gehört diese Art des Testens zu den sogenannten Black-Box- oder spezifikationsorientierten Verfahren. Dabei sollten Prüfer nur in die Spezifikation schauen, denn ein Blick in den Code birgt die Gefahr, dass sie nur diese Implementierung untersuchen. Fehler außerhalb der erwarteten Szenarien aufzuspüren ist dann praktisch unmöglich.

Auch wenn Unit-Tests erfolgreich sind, bedeuten sie die Verschwendung von Potenzial, wenn nur die laufende Anwendung als Testobjekt dient. Die statischen Codeanalysen gehören zu den sogenannten White-Box-Testverfahren, die den Quelltext analysieren. Sie kommen zur Übersetzungszeit zum Einsatz und bedeuten in der Regel eine Reihe formaler Prüfungen des Quelltexts. Manuelle Inspektionen sind zwar möglich, in der Regel aber zu umfangreich und zeitaufwendig.

Da beide Verfahren Vor- und Nachteile haben, sollten sie sich ergänzen. Weder Unit-Tests oder allgemein dynamische Verfahren noch statische Analysen finden für sich genommen zuverlässig alle Fehler. Der Artikel widmet sich im weiteren Verlauf dem zweiten Teilbereich, genauer der statischen Codeanalyse mit NDepend.

Wähle dein Werkzeug!

NDepend ist nur eines von zahlreichen Werkzeugen für die statische Codeanalyse. Der Wikipedia-Artikel zum Thema listet eine beachtliche Menge von Werkzeugen – aufgeteilt auf zwölf Sprachen. In der Regel sind Tools für die statische Codeanalyse in die Entwicklungsumgebung integriert. Dadurch ist der Einsatz einfacher als mit eigenständigen Anwendungen. Diese gibt es meist dennoch zusätzlich, beispielsweise zum Einsatz auf einem Buildserver, auf dem sich typischerweise keine Entwicklungsumgebung befindet.