Slide 1

Dynamische Analyse der Codeabdeckung

Codeabdeckung: Objektive Messung des von Ihren Tests ausgeführten Codes

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 und warum ist sie wichtig?

Die Codeabdeckungsprüfung ist eine wichtige dynamische Analysetechnik, mit der gemessen wird, inwieweit Code durch Tests ausgeführt wurde. Einzelne Konstrukte, auch als Syntaxelemente bezeichnet, können verwendet werden, um die logische Struktur innerhalb des Codes zu identifizieren. Die Messung der Abdeckung dieser Konstrukte hilft dabei, die Wirksamkeit von Tests zu bestimmen und Lücken in anforderungs- und robustheitsorientierten Testansätzen zu identifizieren.

Um internationale Software-Sicherheitsstandards zu erfüllen, ist eine Abdeckungsanalyse erforderlich. Höhere Sicherheitsstufen erfordern strengere Abdeckungsmetriken. Durch den Einsatz von Tools zur strukturellen Codeabdeckung können Unternehmen sicherstellen, dass ihr Code den Sicherheitsstandards entspricht, und das Risiko von softwarebezogenen Vorfällen minimieren.

Ein Tool zur Codeabdeckung ist ein Softwareprogramm, das analysiert, inwieweit eine Codebasis während des Testens ausgeführt wurde. Es ermittelt den Prozentsatz der Codeanweisungen, Verzweigungen, Funktionen oder Zeilen, die von der Testsuite ausgeführt wurden. Codeabdeckungstools sind für die Messung der Qualität und Gründlichkeit von Softwaretests unerlässlich. Sie können dabei helfen, Bereiche des Codes zu identifizieren, die zusätzliche Tests erfordern, und Entwickler dabei unterstützen, sicherzustellen, dass ihre Codebasis gut getestet und frei von Fehlern ist.

Tools zur Codeabdeckung können in Entwicklungsumgebungen wie Eclipse und Visual Studio integriert werden. Der Einsatz eines Tools zur Codeabdeckung ist unerlässlich, um sicherzustellen, dass Software den Sicherheits- und Qualitätsstandards entspricht. In Branchen wie der Luft- und Raumfahrt, der Automobilindustrie und der Medizintechnik erfordert die Einhaltung von Sicherheitsstandards wie DO-178C, ISO 26262 und IEC 62304 eine Codeabdeckungsanalyse. Durch den Einsatz eines Codeabdeckungstools können Unternehmen sicherstellen, dass ihre Software den Sicherheitsstandards entspricht, das Risiko softwarebezogener Vorfälle minimieren und die Gesamtqualität und Zuverlässigkeit ihrer Softwareprodukte verbessern.

“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.