Code Coverage
Develop. Test. Cover!
Für C und C++
Testwell CTC++ ist ursprünglich für Quellcode in der Sprache C entwickelt worden. Seit über 30 Jahren unterstützt es C++ und hält kontinuierlich Schritt mit dessen höchst lebendigen Sprachstandards.
Für die Coveragemessung weist die C-Sprachfamilie einige Besonderheiten auf:
- Quellcode in Headerdateien - dieser wird für all seine Kopien von Testwell CTC++ zusammengeführt.
- Verwendung von Makros - Testwell CTC++ instrumentiert den bereits präprozessierten Code und erhält so Zugriff auf den kompletten Makroinhalt.
- Variantenbildung durch die Präprozessierung: In der sicherheitskritischen Softwareentwicklung müssen Varianten separat getestet werden. Testwell CTC++ erkennt Varianten und weist sie separat aus.
Für die Sprache Java steht ein Add-On zur Verfügung.
Sicherheitskritische Softwareentwicklung
Wenn Menschenleben gefährdet sind, schreiben verschiedene Sicherheitsnormen wie die ISO 26262 im Automobilbereich oder die DO-178C in der Luftfahrt die Messung von Code Coverage vor.
Einige hundert Unternehmen weltweit setzen Testwell CTC++ in diesem Entwicklungsumfeld ein, um bis zum höchsten geforderten Maß MC/DC alle Coverage-Anforderungen ihrer Norm abzudecken.
Testwell CTC++ ist vom TÜV Süd für Functional Safety gemäß IEC 61508, ISO26262, EN 50128 und IEC 62304 zertifiziert. Mit unserem Safety Package unterstützen wir Sie bei Ihrer Toolqualifizierung.
Embedded Software
Die Coverage-Messung für Software auf Embedded Targets bietet einige spezifische Herausforderungen:
Geringer Speicher | Der zusätzliche Speicherbedarf ist von vorneherein gering und lässt sich mit verschiedenen Maßnahmen weiter reduzieren. Im Extremfall wird die Coverage über einzelne Bits gemessen und das Auslesen des Coverage-Arrays erfolgt über den Debugger. |
---|---|
Coveragedaten | Jede Kommunikationsschnittstelle zwischen Target und Host kann für das Herausschreiben verwendet werden. Die Laufzeitbibliothek zum Herausschreiben der Coverage-Daten wird als C-Code geliefert, der an die Möglichkeiten des Targets anpassbar ist. |
Cross-Compiler | Testwell CTC++ arbeitet Compiler-unabhängig und kann für jeden C / C++ Compiler konfiguriert werden. Wir liefern unseren Anwendern zahlreiche Compiler-Konfigurationen und unterstützen bei der Anpassung an neue Compiler. |
Application Software
Die Coverage-Messung für Windows-, Linux- und macOS-Anwendungen gelingt mit Testwell CTC++ sehr einfach und komfortabel durch
- lediglich geringe Erhöhung der Buildlaufzeit,
- mitgelieferte Bibliotheken für das Herausschreiben von Coveragedaten,
- performante und skalierbare Berichterstellung.
Anwendungen im Kernel-Mode der Betriebssysteme werden mit Testwell CTC++ wie Embedded Targets behandelt, mit anpassbarer Laufzeitbibliothek.
Integration
Testwell CTC++ lässt sich in nahezu jede Entwicklungs- und Testumgebung integrieren. Als Sammlung von Kommandozeilen-Tools arbeitet es in beliebigem Grad automatisiert
- auf Buildservern und CI-Lösungen,
- auf Entwicklerrechnern,
- zentralisiert oder verteilt nach den Prozessschritten Instrumentierung - Test - Berichterstellung.
Um die Quellcodeinstrumentierung in den Buildvorgang einzubinden, ist sehr häufig keine zusätzliche Buildkonfiguration notwendig.
Testwell CTC++ bietet Intergrationen in IDEs wie Visual Studio und die IAR Embedded Workbench. In vielen weiteren IDEs können die Arbeitsschritte per Konfiguration integriert werden.
Das sagen unsere Anwender
Lesen Sie weitere Anwenderstimmen und vollständige Testimonials...
Unterstützung unserer Anwender
Das Supportteam von Verifysoft bietet unseren Kunden umfassende Unterstützung bei der Installation, Konfiguration und Verwendung von Testwell CTC++.
Als Dokumentation stellen wir eine umfassende Hilfe, die Testwell CTC++ Help, im Rahmen der Installation und als Online-Version zur Verfügung.
Über den normalen Support hinaus unterstützen wir Sie gerne beratend oder auch durchführend, damit Sie die Coverage für Ihr Projekt möglichst schnell und effizient messen können!
Flexibles Reporting
Unser HTML-Bericht bietet Übersichtsansichten und zeigt die Details der Coverage-Messung im Quellcode. Seine Berichtsebenen lassen sich passend zum Projekt konfigurieren.
Testwell CTC++ erstellt alle Coverage-Berichte auf Basis von Vorlagen und unterstützt damit alle textbasierten Formate wie z.B. XML, CSV oder JSON. Drittsysteme wie Dashboards können so einfach mit den nötigen Daten bedient werden.
Fehlende Coverage wird über Justifications erklärt und dokumentiert. Testwell CTC++ zeigt die Auswirkung von Justifications auf alle Coveragemaße - so ist klar und transparent sichtbar, ob 100% des Codes getestet oder zumindest erklärt wurden.
Das Testen
Alle Arten von Tests, ob Unit Tests, Integrationstests oder komplette Systemtests, können wie gewohnt ausgeführt werden. Das Testen kann vollautomatisiert, teilautomatisiert oder manuell durchgeführt werden.
Das instrumentierte Programm oder Test Executable schreibt die Daten während des Testens in eine Datei. Bei Testausführung auf einem Target ist dieses Herausschreiben vollständig anpassbar, die Daten können z.B. direkt zum Host übertragen werden.
Mit Testwell CTC++ können alle Testläufe eines Projekts zu einem Bericht kombiniert werden. Es arbeitet mit allen gängigen Unittest-Tools, Testplattformen und Frameworks zusammen.
Coverage Maße
Testwell CTC++ bietet alle Coveragemaße, die von verschiedenen Sicherheitsnormen gefordert werden:
- Function Coverage
- Statement Coverage
- Decision / Branch Coverage
- Condition Coverage
- MC/DC: Modified Condition / Decision Coverage
- Multicondition Coverage
Ausgeführte, nichtausgeführte und nur teilweise ausgeführte Code-Zeilen werden visuell hervorgehoben (Line Coverage).
Eine genaue Erklärung zu den einzelnen Maßen finden Sie in unserer Hilfe.