Fehler im Quellcode automatisch erkennen

Debugging gehört zu den zähesten Aufgaben der Software-Entwicklung. Die amerikanische Firma Coverity hat ein Werkzeug entwickelt, das Fehler im Quell-code automatisch entdeckt und dabei insbesondere in größeren Projekten erheblich mehr Fehler findet als die Mechanismen im Build-System.

Das neue Software-Entwicklungswerkzeug Prevent SQS (Software Quality System) von Coverity ermittelt und beseitigt automatisch kritische Defekte in C-, C++- und Java-Quellcode. Die technische Basis für Prevent SQS bildet „Software DNA Mapping“ – ein zum Patent angemeldetes Verfahren, das die schnelle und präzise Defektprüfung in allen Pfaden eines beliebigen Code-Teils ermöglicht. Laut Herstellerangaben steigen die in Java-, C- und C++-Softwareprojekten entdeckten Defekte dadurch um 30 Prozent.

Coverity Prevent SQS ist das Ergebnis der Analyse von einer Milliarde Zeilen Quellcode und der Zusammenarbeit mit mehr als 200 Software-Entwicklungsfirmen. Während der Entwicklung von Prevent SQS arbeitete Coverity mit Software-Teams zusammen, die auch bei komplexen Projekten, an denen mehrere Gruppen an verschiedenen Standorten auf der Welt arbeiteten, die Qualität des Codes gewährleisten mussten. In nahezu allen Fällen waren die Herausforderungen bei der automatischen Erkennung von Defekten und deren effizienter Beseitigung dieselben: Build-Systeme erzeugen heterogene Momentaufnahmen.

Von größter Bedeutung ist es, automatisch zu erkennen, wie aus Quelldateien eine lauffähige Software wird. Die Betrachtung einer Quellcodedatei isoliert von den anderen Quelldateien im ausgeführten Programm ist wenig sinnvoll, und Defekte im Quellcode reparieren sich nicht einfach von selbst.

Coverity Prevent SQS enthält hierfür drei Module:

- Software DNA Map: eine Technik, die für das automatische Anlegen einer vollständigen und präzisen Darstellung des Quellcodes auf ein vorhandenes Build-System zurückgreift.

- Mehrere Analyse-Engines zur Erfassung der vielen verschiedenen Aspekte des Codes. Dazu wird eine Darstellung des Quellcodes analysiert, die dem ablauffähigen Programm ähnelt.

- Ein Lösungssystem, das einen bestehenden Software-Qualitätssicherungsprozess in den Vorgang der automatischen Defektbeseitigung einbindet.

Coverity Prevent SQS ist ab sofort erhältlich. Es unterstützt ANSI-C- und C++-Code einschließlich C89, C99 und ISO/IEC-C++. Es compiliert Java-Quellcode und scannt Java-Byte-Code. Es arbeitet mit ANSI-kompatiblen Compilern zusammen sowie mit ARM, GCC, Green Hills, HP, IAR Systems, Intel, Marvell, Microsoft, PICC, QNX, Renesas, Texas Instruments, Wind River und anderen. Die Preise richten sich nach der Anzahl der Zeilen des zu analysierenden Codes.

Web-Scan für Open-Source-Software

Auch Open-Source-Projekte können die Quellcode-Analyse von Prevent SQS nutzen. Die Projekte müssen auf der Seite scan.coverity.com registriert werden. Erst Anfang Mai 2007 hat Coverity in zusätzliche Infrastruktur für diese Seite investiert, um weitere Projekte aufnehmen zu können. Damit steigt die Anzahl der von Coverity analysierten Open-Source-Projekte auf 250. Dazu gehören so prominente Anwendungen wie das Grafik-Programm GIMP (GNU Image Manipulation Program), Inkscape, ein Vektorgrafik-
Programm oder der 3D-Modellierer „Suite“, mit dem die Computeranimationen in den Filmen Spiderman 2 und Titanic.

Coverity
www.coverity.com