Cantata Logo - unit and integration testing tool for C/C++

Integrierte Statische Analyse


Automatisierte statische Analyse
mit Cantata synchronisiert

Die Hauptmerkmale der automatisierten statischen Analyse

 

Das bietet die automatisierte statische Analyse

 

Statische Analysetools können in Cantata integriert werden. Wenn Sie wissen möchten, ob auch Ihre spezifischen Tools unterstützt werden, wenden Sie sich bitte an QA Systems.

   Synchronisierte Analyse & Tests

            Beispiel: Integration mit Helix QA-C

Welche statischen Analysetools kann Cantata einbinden?

 

Jedes Tool kann in Cantata integriert werden, das über eine Kommandozeile oder eine API-Schnittstelle verfügt. Dazu erstellt Cantata Makefiles für die Tests, die vor oder nach dem Build laufen. 

 

Cantata ist mit den wichtigsten statischen Analysetools integrierbar. So können Tests und statische Analysen synchronisiert werden. Das sichert die Vorteile beider Verfahren – Analyse und Tests – und führt zu qualitativ besserem Code, auch wenn sich im Laufe der Entwicklung Build für Build der Code verändert. 

 

Das funktioniert auch mit Continuous Integration Systeme. Diese führen Tests automatisch durch, wenn veränderter oder neuer Code hochgeladen wird.

Ihr bevorzugtes statisches Analysetool ist noch nicht in Cantata integriert? Dann freuen wir uns über Ihre Nachricht, sodass wir gemeinsam mit Ihnen eine Integration herstellen können!

 

 

Codefehler und Sicherheitslücken

 

In der Programmiersprache C gibt es mehrere Konstrukte, die Sicherheitslücken verursachen können, sodass Anwendungen anfällig werden für Angriffe von außen. Statische Analysetools können Ihnen helfen, die folgenden Risiken zu vermeiden:

 

  • Gefährlicher Gebrauch von Funktionen für das dynamische Speichermanagement.
  • Probleme durch den inkorrekten Einsatz von Integers, zum Beispiel 'trunction errors', 'signed integer overflows' und 'unsigned integer wrapping'.
  • Format-String-Attacken
  • 'Buffer overruns' und 'stack smashing'.
  • Sicherheitslücken bei der Entwicklung von parallelem Code z. B. 'race conditions'.

 

 

Fehler vermeiden, Datenfluss analysieren

 

Deep-Flow-Datenflussanalyse: Diese Analyse kann kritische Fehler in Bezug auf Control Flow, Variable States und Library Benutzung finden. Datenflussanalyse-Engines können SMT-Solver-Engines (SMT = Satisfiability Modulo Theories) in Kombination mit C- und C++-Parsing verwenden. Dies kann zu einem genauen Datenfluss und einer semantischen Modellierung von C- und C++-Code führen.


Statische Analyse findet Softwarefehler im Source-Code in einem sehr frühen Stadium des Entwicklungsprozesses – und zwar genau dann, wenn sie noch mit geringem Aufwand und wenig Kosten behoben werden können!


In Cantata integrierte statische Analysetools können automatisch gefährliche Strukturen, Probleme mit der Zuverlässigkeit, Wartbarkeit und Portabilität erkennen.

                       Quelle: Perforce Tools (QA-C)

                         Vergleich der statischen Analysefunktionen

Zuverlässiger Code. Wartbar, portabel und testbar.

 

Die statische Analyse findet Probleme, die sowohl Entwickler als auch Compiler leicht übersehen. Automatisch finden – für Entwickler bedeutet das eine enorme Zeitersparnis. Es werden mehr echte Fehler und weniger 'false positives' identifiziert. Beides zusammen reduziert die Entwicklungszeit. Denn die Suche nach vermeintlichen Fehlern kostet Zeit und Geld.


Statische Analysetools können sowohl die Portabilität als auch die Konsistenz über verschiedene Plattformen hinweg gewährleisten, indem sie die in der Implementierung definierte Sprachfunktionen und Spracherweiterungen überwachen. So stellen sie sicher, dass der Code über verschiedene Plattformen und mit unterschiedlichen Compilern verlässlich funktioniert.

 

 

Einhaltung von Coding Standards

 

Wer seine Gerätesoftware nach internationalen Sicherheitsstandards zertifiziert haben möchte, muss nachweisen, dass sie auf Low-Level getestet worden ist. Mit statischen Analysetools funktioniert das ganz einfach. Denn sie gewährleisten, dass die Software ständig auf Einhaltung der Standards überprüft wird und Fehler im frühesten Stadium entdeckt und behoben werden können. Millionen von Codezeilen können automatisch analysiert werden. So stellt das Analysetool sicher, dass der gesamte Code – ob neu hinzugekommen oder schon länger bestehend – den Standards entspricht, die Ihre Kunden von Ihnen fordern.

 

Weitere Informationen über Coding Standards und ihre Anwendbarkeit finden Sie unter den folgenden Links:

CERT C/C++

Secure Coding Standard

MISRA C/C++

Guidelines for the use of the C/C++ languages in critical systems

AUTOSAR

Guidelines for the C++ language in safety-critical systems.

Start
Trial
QA-Systems