Die Cantata Codeabdeckung kann sowohl zusammen mit Cantata Tests eingesetzt werden, als auch mit jedem anderen externen Testtreiber.

Das Tool ermittelt objektiv, wie komplett der Test ausgeführt wurde. Und ergänzt damit beides, Robustheitstests und Tests auf Basis der Anforderungen.

Was bedeutet Codeabdeckung?

Codeabdeckung ist eine dynamische Analysetechnik, die ermittelt, welche Teile des Codes während des Tests ausgeführt wurden. Die logische Struktur innerhalb des Codes kann durch individuelle Konstrukte (Syntaxelemente) identifiziert werden. Mit Hilfe von Codeabdeckungsmetriken wird die Messung dieser Konstrukte aufgezeichnet.

Die Analyse der Codeabdeckung dient dazu, herauszufinden, ob es Lücken gibt, die beim Testen übergangen worden sind. Das kann sowohl die Anforderungen, als auch die Stabilitätskriterien betreffen.

Die Analyse der Codeabdeckung ist deshalb so wichtig, weil ohne sie die internationalen Sicherheitsstandards für Software nicht erfüllt werden können.

“Using coverage helped us to really think about whether certain functions and blocks were needed. We confirmed great confidence in our software as everything had been tested to 100% decision coverage."

Rolf Keller, Software Engineer

“Cantata automatically generates test reports that prove what has been tested and how extensive the test coverage was for each test case.”

Johnny Johansson, Global Validation & Verification Tools Manager, SAAB

Wobei hilft mir die Cantata Codeabdeckung?

DIE ABDECKUNG MESSEN

Beim Messen der Codeabdeckung werden die folgenden Metriken eingesetzt. Dazu dienen standardspezifische Regel-Sets, die die notwendigen Codeabdeckungslevel integriert überprüfen:

  • Function Entry Points
  • Function Call-Returns
  • Basic Blocks
  • Statements
  • Decisions (branches)
  • Loops
  • Relational Operators
  • Boolean Operators
  • Conditions
  • MC/DC (Unique-cause and Masking variants)

DIAGNOSE UND ERGEBNISSE

Cantata Diagnostics ermittelt die Abdeckung kompletter Code Trees. Das betrifft jede einzelne Codezeile individueller Konstrukte, so dass Lücken in der Codeabdeckung exakt lokalisiert werden können.

Die Abdeckung der Testfälle erfolgt automatisch. Die Auswahl der Testfallvektoren wird so erleichtert, das reduziert den Aufwand für Regressionstests.

BUILD VARIANT COVERAGE

Mit der Build Variant Coverage wird der Quellcode erkannt, der über mehr als eine Build-Variante ausgeführt wird. Cantata verwendet vorkompilierte Definitionen (#defines), um die verschiedenen Build-Varianten separat zu identifizieren. Der Cantata Coverage Viewer zeigt aggregierte Daten für mehrere Build-Varianten desselben Quellcodes an.

ERGEBNISSE FILTERN

Cantata verfügt über einen einzigartigen Filter für die Ergebnisse der Codeabdeckung. Dabei stehen zur Wahl:

  • Abdeckungsmetriken
  • Projekte
  • Testfälle
  • Vererbungskontext
  • benutzerdefinierter Kontext
  • Coverage Dateien

Cantata ist auch in der Lage, die Codeabdeckung über individuelle Testfälle nachzuverfolgen.

REPORTS GENERIEREN

Cantata erstellt flexible, frei konfigurierbare Reports in XML, HTML und (für die spätere Zertifizierung) in ASCII- und HTML-Text. Das gibt es zusätzlich zu den Ergebnissen der Codeabdeckung innerhalb der Eclipse-GUI.

In die Reports und Zertifizierungsnachweise sind die Prüfungen eingebunden, inwieweit die vorab definierten Ziele der Codeabdeckung erreicht worden sind.

Wie arbeitet die Cantata Codeabdeckung?

Die Cantata Codeabdeckung arbeitet (via GUI oder CLI) an einer Kopie des Quellcodes. Die Abdeckungsdaten werden sowohl für die grafische Diagnose, als auch für den Nachweis der Zertifizierung aufgezeichnet.

Die Abdeckungsanalyse kann nicht nur als integraler Bestandteil der Cantata Tests verwendet werden. Ebenso ist es möglich, die Ergebnisse anderer Tests zu analysieren – selbst unterschiedliche Tests lassen sich ganz einfach miteinander kombinieren.

Die Cantata Codeabdeckung bietet kundenspezifische Regel-Sets für die Codeabdeckung. Das macht die Analyse so einfach. Denn alles, was die wichtigsten Sicherheitsstandards fordern, wird hochautomatisiert zur Verfügung gestellt: die komplette Codeinstrumentierung, das Daten-Reporting und die Codeabdeckungschecks.