(openPR) Coverity auf der Embedded World: Halle 11, Stand 426
Coverity demonstriert Leistungsfähigkeit von Coverity Prevent und neue Boolean Satisfiability SAT-Engine live am Stand
Coverity, Inc., US-amerikanischer Spezialist für Quellcode-Analyse und Qualitätssicherung von Software, wird auf der Embedded World die Leistungsfähigkeit seiner statischen Analyselösung und die im Herbst angekündigte SAT-Engine live demonstrieren. Coverity Prevent prüft die Pfade und Werte in C/C++ und Java zu 100 Prozent und erzielt die industrieweit niedrigste Rate von False Positive Results. Die höchst skalierbare Technologie kann innerhalb von wenigen Stunden Millionen an Codezeilen analysieren, dabei lässt sie sich problemlos in die bestehende Umgebung integrieren, ohne dass dazu der Code, die Entwicklungsumgebung oder der Entwicklungsprozess unterbrochen werden muss.
Neue hochentwickelte Fähigkeiten ermöglichen die statische Erkennung von Concurrency Defekten wie Deadlocks und Race Conditions, einen der am schwersten auffindbaren Fehler in Multithreaded Anwendungen. Die aktuellste Version von Prevent beinhaltet ein neues hochentwickeltes Interface, mit dem die Entwickler die komplexen Überlappungen ihrer Multi-Threaded Anwendungen einfacher nachvollziehen können. Mit diesen Analysefähigkeiten ermöglicht Coverity Prevent SQS die automatische 100prozentige Analyse dieser Überlappungen – sie liefern bisher unerreichte Einsicht in komplexe Codegrundlagen. Nicht nur Software Qualitätsdefekte wie Fehler bei Speicher, Logik und/oder Pointer lassen sich damit schon früh im Entwicklungszyklus aufdecken, sondern auch Sicherheitsschwachstellen, z.B. Buffer Overflows und ungenaue Input Validations.
Coverity wird auch die Leistungsfähigkeit der neuen False Path Pruning Solver aufzeigen, als Teil seiner neuen SAT-Engine, die auf Boolescher Satisfiability (SAT) basiert. Diese neue Form der Quellcodeanalyse nutzt eine zum Patent angemeldete Technologie von Coverity: Sie erstellt eine bit-genaue Repräsentation eines Software-Systems erstellt, die jeden möglichen Software-Ausführungspfad in boolesche Werte (wahr und falsch) und boolesche Operatoren (wie z.B. und, nicht, oder) übersetzt und prüft. Diese bit-genaue Software-Abbildung ermöglicht die Analyse von Quellcode mit Hilfe von auf SAT-Technologie basierten Solvern erstmals im Bereich kommerzieller Computer-Programmierung. In einem Testprojekt über 2 Millionen Codezeilen aus mehreren Anwendungen von Open Source Software von Coverity’s Scan Projekt konnte der False Path Pruning Solver die falsch positiven Ergebnisse um durchschnittlich 30 Prozent reduzieren. Coverity plant für 2008 zwei weitere SAT-Solver, sie sollen Code-Behauptungen statisch überprüfen, kritische Fehlerkategorien erkennen und eine noch größere Anzahl an Buffer Overflows aufdecken.
Bei seiner umfangreichen Untersuchung von C/C++ und Java Code nutzt Coverity Prevent mehrere Analyse-Engines:
- Die Path Flow Engine versteht den Steuerfluss für jede Funktion im Quellcode, indem ein Diagramm erzeugt wird, das alle Pfade bis zu dieser Funktion darstellt. So kann Prevent SQS 100 Prozent der Pfade durch den Code analysieren.
- Die Statistical Engine verdeutlicht Verhaltensmerkmale der Codebasis als Ganzes und schafft damit die Grundlage, dass Prevent SQS Eigenschaften aus dem Code ableiten und auf Konsistenz prüfen kann.
- Mit der Interprocedural Summary Engine kann Prevent SQS eine ganze Pogrammanalyse durchführen, die komplexe Aufrufketten in jeder Tiefe in verschiedenen Dateien und Modulen untersucht. Indem sich damit die Software in einer Form analysieren lässt, die dem resultierenden Binary möglichst ähnlich ist, liefert Prevent SQS der Wirklichkeit entsprechende Resultate.
Zu den mit Coverity Prevent aufgefundenen kritischen Fehlern zählen u.a. Concurrency Issues, Memory Corruption und Missmanagement, zum Crash führende Pointer Fehler, Java bzw. C/C++ spezifische Fehler (z.B. falsche Anwendung von STL Iteratoren), Window/COM spezifische Fehler (z.B. inkorrekte Speicherzuweisung) sowie Sicherheitsschwachstellen (z.B. Buffer Overflows, SQL Injection), Leistungsverlust, unerwartetes Laufzeitverhalten.
