Softwaretest- & Analysetools Für Produktivität Und Qualität
Total Page:16
File Type:pdf, Size:1020Kb
Softwaretest- & Analysetools für Produktivität und Qualität Statische Codeanalyse Dynamische Codeanalyse Software-Komplexitätsmessung Code Coverage www.verifysoft.com GrammaTech CodeSonar® GrammaTech CodeSonar® – Wenn Softwarequalität zum Prinzip erhoben wird Statische Analyse von Quell- und Binärcode Da die statische Analyse eine Ausführung der zu analysierenden (Teil-) Applikation nicht erfordert, kann CodeSonar bereits früh im Entwicklungsprozess kritische Softwarefehler aufdecken. Risiken, hervorgerufen durch z.B. gefährliche Sicherheitslücken, nichtdetermistische Nebenläufigkeitsfehler und Speicherlecks können so minimiert und hohe Wartungskosten, verursacht durch schwer lesbaren Code, vermieden werden. void gyroDisp(const char *sdf){ char* sBuffer; sBuffer = (char*) malloc(strlen(sdf)) + 1; if (!sBuffer){ exit(EXIT_FAILURE); } strcpy(sBuffer, sdf); /* Format string for LCD */ createLCD453Format(sBuffer); free(sBuffer); } f Kritische Fehler aufdecken f Nebenläufigkeitsprobleme erkennen f Sicherheitsschwachstellen eliminieren f Reports zur Zertifizierung nach ISO 26262 / DO-178C f Codierrichtlinien überprüfen generieren 4 | www.verifysoft.com GrammaTech CodeSonar® Statische Quellcodeanalyse HINTERGRUNDWISSEN Als führendes Werkzeug zur statischen Quellcodeanalyse Unterstützte Programmiersprachen f C/C++ f Java f C# weist CodeSonar im Vergleich zu vielen anderen stati- schen Analyse-Tools nicht nur eine bessere Fehlererken- Unterstützte Betriebssysteme nung auf, es zeichnet sich zudem durch eine vergleichs- f Windows f OS X weise geringe Rate an Fehlwarnungen (False Positives) aus f Linux f NetBSD f Solaris (SPARC) f FreeBSD . Unterstützte Compiler Statische Binäranalyse CodeSonar arbeitet mit nahezu allen aktuellen Com- pilern problemlos zusammen. Zur Verwendung mit Vielfach werden in Applikationen von Drittanbietern werksseitig nicht unterstützten Typen und Derivaten gelieferte Komponenten (Bibliotheken) eingebunden. ist eine Konfigurationsanpassung meist schnell und Da diese oft nur als Binärdateien vorliegen, lassen sich unkompliziert möglich. Zweifel an deren Qualität nur schwer ausräumen und die Stabilität und Sicherheit der Gesamtapplikation steht in f ARM RealView f Keil Frage. CodeSonar for Binaries geht mit seiner Analyse f Intel C/C++ f Renesas über den Quellcode hinaus und detektiert kritische Feh- f CodeWarrior f Green Hills ler auch in Binärdateien. f MacOS f Sun C/C++ f Free BSD f HI-TECH f Microsoft Visual f Texas Intruments Studio CodeComposer Hohe Anzahl von Prüfungen f GCC f IAR f G++ f Wind River CodeSonars große Anzahl von Checkern ermöglicht das … und viele mehr Auffinden einer Vielzahl von kritischen Fehlern. void gyroDisp(const char *sdf){ char* sBuffer; Sicherheitsprüfungen Sicherheit von Applikationen spielt durch zunehmende sBuffer = (char*) malloc(strlen(sdf)) + 1; Vernetzung eine immer wichtigere Rolle. CodeSonar führt umfangreiche Überprüfungen Ihrer Software im Gut dokumentierte if (!sBuffer){ Hinblick auf Sicherheitsschwachstellen durch und hilft exit(EXIT_FAILURE); damit Angriffe abzuwehren. Ergebnisse } strcpy(sBuffer, sdf); CodeSonar gibt seine Ergebnisse als Warnungen aus, die Nebenläufigkeitsprüfungen durch eine gute Dokumentation leicht verständlich sind. /* Format string for LCD */ Nebenläufigkeitsprobleme wie Race Conditions und Syn- createLCD453Format(sBuffer); chronisationsfehler wie Deadlocks deckt CodeSonar durch Verwendung interner Laufzeitmodelle zuverlässig auf. free(sBuffer); } Floating Point Warnungsklassen CodeSonars Analyse arbeitet auf Basis von Fließkom- maarithmetik. Es ist damit Werkzeugen, die innerhalb einer Integer-Domäne arbeiten, in vielen Bereichen überlegen. www.verifysoft.com | 5 GrammaTech CodeSonar® INTEGRATION Performance Eclipse Integration Ein mitgeliefertes Plug-in ermöglicht den Entwicklern CodeSonars Checker sind im Hinblick auf hohe Perfor- sich die Analyseergebnisse direkt in Eclipse anzeigen mance optimiert. CodeSonar skaliert gut auf Multicore- zu lassen. Änderungen können so leicht an der ausge- und Mehrprozessormaschinen und erlaubt zudem die wiesenen Stelle im Code vorgenommen werden. Verteilung von Analysen auf mehrere Maschinen. So können schnelle Analyseergebnisse auch großer Projekte von mehreren Millionen Codezeilen ermöglicht werden. Microsoft Visual Studio Integration Eine Integration in Microsoft Visual Studio erlaubt CodeSonar aus dem Visual Studio heraus zu starten und die Analyseergebnisse direkt im Visual Studio auszuwerten. Inkrementelle Analyse CodeSonars Fähigkeit bei Projektaktualisierungen Continuous Integration CodeSonar arbeitet problemlos mit Hudson und lediglich die Änderungen unter Berücksichtigung bereits Jenkins zusammen. Zur komfortablen Anbindung an bestehenden Analysedaten zu bearbeiten, ermöglicht Jenkins ist zudem ein Plug-in verfügbar die Analysezeiten deutlich zu reduzieren. Anbindung an Bug-Tracking Tools Mittels sogenannter „Warning Processors” können diverse Bug-Tracking Tools problemlos angebun- Überprüfung auf Einhaltung den werden. Ein Python Beispiel-Script zur Bugzilla von Coding Standards Integration wird mitgeliefert. Es kann leicht an andere Systeme angepasst werden. Für JIRA ist ein Plug-in CodeSonar überprüft Applikationen auf die Einhaltung erhältlich. von Coding Standards. Folgende Regelwerke werden unterstützt: f MISRA C 2012 f JPL f MISRA C++ 2008 f SEI CERT f Power Of Ten Integration von JULIA Die Implementierung eigener Regeln ist möglich. Mit der optionalen Integration des JULIA Static Analyzers sind weitreichende Analysen von Java und .NET Applika- tionen möglich. Architekturvisualisierung CodeSonars Fähigkeit auch komplexen Quellcode SARIF Importer Plug-in hoher Verschachtelungstiefe grafisch als Diagramm aufbereitet darzustellen, erleichtert das Verständnis von SARIF (Static Analysis Results Interchange Format) ist Applikationen. ein neuer offener Standard der OASIS (Organization for the Advancement of Structured Information Standards). CodeSonars SARIF Importer Plug-in ermöglicht den Import von SARIF-Dateien. 6 | www.verifysoft.com GrammaTech CodeSonar® Taint Data Tracking CodeSonars Taint Data Tracking Analysefunktion iden- tifiziert Sicherheitsschwachstellen, die eine eventuelle Einspeisung von Schadcode in die Applikation ermögli- chen und weist die davon direkt oder indirekt betroffe- nen Abschnitte sowohl farblich markiert im Quellcode als auch in einer graphischen Repräsentation im Diagramm aus. Präventivmaßnahmen sind so einfach zu treffen. Erhebung von Metriken Plug-in API Zur Beurteilung der Wartungsfreundlichkeit von Quell- Zur Implementierung eigener Checker stehen gut doku- code berechnet CodeSonar eine Vielzahl verschiedener mentierte APIs der Sprachen C, C++, Python, Scheme, C# Metriken wie z.B. und Java zur Verfügung f Modifizierte zyklomatische Komplexität f Zyklomatische Komplexität f Halstead Metriken HINTERGRUNDWISSEN f Watson und McCabe ...und viele mehr. Zertifizierung CodeSonar wurde von der SGS TÜV Saar GmbH Auch die Erhebung eigener, zusätzlicher Metriken lässt zertifiziert als ein geeignetes Werkzeug zur Erlangung sich Implementieren bzw. durch Aggregation bestehen- von Zertifizierungen nach: der Metriken mittels Konfiguration realisieren. f ISO 26262 f IEC 62304 f DO 178-C f EN 50128 f IEC 61508 Qualifizierung Im Hinblick auf eine Zertifizierung Ihrer Applikationen ist, abhängig vom Ergebnis der Klassifizierung, in den meisten Fällen eine Qualifizierung von CodeSonar als Teil der eingesetzten Toolchain nötig. Hierfür ist ein Qualification Kit verfügbar, das die erfor- derlichen Reports generiert. Das CodeSonar Qualifica- tion Kit unterstützt Sie bei Qualifizierungen nach: f ISO 26262 f DO 178-C f IEC 61508 Für sicherheitskritische Anwendungen ist eine tiefgehende statische Analyse unverzichtbar. www.verifysoft.com | 7 Imagix 4D Imagix 4D – Das Werkzeug für alle Fälle Werkzeug zur Visualisierung und Überprüfung von C, C++ und Java Projekten Imagix 4D ist ein Werkzeug, um komplexen, in C, C++ und Java geschriebenen Third-Party- und Le- gacy Source Code zu verstehen, zu dokumentieren und zu verbessern. Imagix 4D automatisiert die Analyse des Kontrollflusses und der Abhängigkeiten. Das Werkzeug deckt Probleme in der Daten- nutzung und bei Task-Interaktionen auf. Mit Imagix 4D steigern Sie Ihre Produktivität und Qualität und reduzieren Risiken. Finden Sie Brennpunkte und verbessern Sie die Qualität f Automatische Checker finden Anomalien im Quellcode f Die Erhebung diverser Metriken (z.B. zyklomatische Komplexität, Decision Density u.v.m.) lässt Sie kriti- sche Komponenten schnell identifizieren f Teilautomatisierte Reviews ermöglichen eine effizi- ente Durchführung qualitativer Analysen nach CWE oder nach eigenen Vorgaben Behalten Sie die Kontrolle auch bei umfangreichen Projekten f Aussagekräftige Diagramme ermöglichen Sichten von einer globalen Perspektive bis zu den granula- ren Eigenschaften einzelner Datentypen f Δ-Analysen erlauben eine detaillierte Nachverfol- gung von Änderungen zwischen Revisionen f Anhand von Architekturdiagrammen ist eine effiziente Prüfung der bestehenden Architektur auf strukturelle Anforderungen problemlos möglich 8 | www.verifysoft.com Imagix 4D Wie ein Schweizer Taschenmesser Imagix 4D beinhaltet eine Fülle von nützlichen Werk- zeugen zur Beurteilung von Quellcode: Architektur- diagramme, Berichte, Δ-Analyse, Profiler-Integration, Testabdeckungsintegration für Testwell CTC++, Function Call-Diagramme, Include-Hierarchie-Diagramme, Fehler- suche, Vererbungsdiagramme, Klassen-Aufrufs-Graphen, Datentyp-Hierarchie-Graphen, UML-Task-Diagramme,