Elektroniknet Logo

Entwicklung sicherer Software

10 Kriterien zur Auswahl eines Code-Coverage-Tools

Klaus Lambertz, Geschäftsführer der Verifysoft Technology
Klaus Lambertz, Geschäftsführer der Verifysoft Technology: »Bei der Auswahl eines Code Coverage Analysers muss darauf geachtet werden, dass das Werkzeug den gestellten Anforderungen entspricht«.
© Verifysoft Technology

Wer sichere Software entwickelt, muss beim Testen der Software die Testabdeckung messen. Entwicklern werden dafür viele Tools angeboten. Doch wie lässt sich das optimale Code-Coverage-Tool ermitteln?

Um sichere und zuverlässige Software zu entwickeln, ist das Testen ein unverzichtbarer Bestandteil der Qualitätssicherung. Denn ohne ausreichende und dokumentierte Tests kann nicht festgestellt werden, ob eine Software sicher und funktional korrekt ist. Einen besonderen Stellenwert hat dabei die Messung der Testabdeckung (Code Coverage). Denn dadurch kann festgestellt werden, wie umfassend eine Software bereits getestet wurde. Die Testabdeckung gibt das Verhältnis von getestetem Code zum Gesamtcode an. Vereinfacht lässt sich beispielsweise sagen, dass die Testabdeckung 75 % beträgt, wenn beim Test drei von vier möglichen Optionen durchlaufen werden.

Speziell in der Entwicklung sicherheitskritischer Software schreiben Branchennormen genaue Anforderungen für die Testabdeckung vor, so dass Produkte hier ohne den Nachweis einer ausreichenden Testabdeckung nicht zertifiziert werden können. Aber auch bei anderen Entwicklungsprojekten legen Unternehmen zunehmend großen Wert auf Software-Qualität und messen die Testabdeckung.

Zur Messung der Testabdeckung sind am Markt unterschiedliche Code-Coverage-Analyser verfügbar. Sie unterscheiden sich in der Handhabung und in der Qualität teils deutlich. Die Experten von Verifysoft Technology, Anbieter von Tools, Dienstleistungen und Schulungen zur Steigerung der Softwarequalität, haben zehn Kriterien für die Auswahl eines Code-Coverage-Tools zusammengestellt.

Relevante Anbieter

Zehn Kriterien für die Auswahl eines Code-Coverage-Tools

1. 1.	Unabhängigkeit vom eingesetzten Compiler
© Verifysoft Technology
2. Benutzerfreundlichkeit
© Verifysoft Technology
3. Nachvollziehbarkeit der Coverage-Berichte
© Verifysoft Technology

Alle Bilder anzeigen (10)

Code Coverage ist aus gutem Grund für die sicherheitskritische Softwareentwicklung vorgeschrieben. Aber auch für alle, die ihre Softwarequalität generell verbessern wollen, handelt es sich um eine gute Methode, um die Abdeckung und Aussagekraft der dynamischen Tests zu messen und zu erhöhen. Bei der Auswahl eines Code Coverage Analysers muss darauf geachtet werden, dass das Werkzeug den gestellten Anforderungen entspricht. Zudem spielen Faktoren wie einfache Benutzung und professionelle Unterstützung bei Rückfragen und im Supportfall eine wichtige Rolle. Richtig eingesetzt, hilft ein gutes Testabdeckungstool dabei, die Qualität deutlich zu verbessern, die Motivation von Entwicklern und Testern zu erhöhen und Tests kostensparend durchzuführen.

Code Coverage im Überblick: Unterschiedliche Stufen der Testabdeckung

Directory Summary, Files Summary und Functions Summary des Code Coverage Analyser Testwell CTC++.
Bild 1. Der Code Coverage Analyser Testwell CTC++ bietet aussagekräftige Berichte zur Testabdeckung. Über das Directory Summary, Files Summary und Functions Summary werden alle Details der Code Coverage sichtbar.
© Verifysoft Technology

Function Coverage

Die Function Coverage (Aufrufüberdeckung) misst, ob alle Funktionen des Programms aufgerufen wurden. Die Function Coverage ist die »schwächste« der üblichen Testabdeckungsstufen.

Statement Coverage

Bei der Statement Coverage (Anweisungsüberdeckung) wird gemessen, wie hoch der Anteil der getesteten Anweisungen im Vergleich zu allen Anweisungen ist.

Decision Coverage / Branch Coverage

Bei dieser Coverage-Stufe muss jede Entscheidung mindestens einmal als »wahr« und als »falsch« getestet werden. Bei normalen »if-Statements« entspricht dies der Branch Coverage, bei der jeder Zweig ausgeführt worden sein muss (Zweigabdeckung).

Condition Coverage

Bei der Condition Coverage (Bedingungsüberdeckung) werden zusammengesetzte Entscheidungen im Detail betrachtet. Bei Entscheidungen, die aus mehreren, über Boolesche Operatoren zusammengesetzten atomaren Bedingungen bestehen, muss jede dieser Bedingungen einzeln als »wahr« und als »falsch« getestet werden.

Code Coverage Anlayser Testwell CTC++ von Verifysoft Technology.
Bild 2. Mit dem Code Coverage Anlayser Testwell CTC++ von Verifysoft Technology lässt sich direkt im eigenen Quellcode ablesen, welche Codeteile getestet worden sind. Hierbei werden auch anspruchsvolle Coverage-Stufen wie MC/DC angezeigt.
© Verifysoft Technology

Multicondition Coverage und Modified Condition/Decision Coverage (MC/DC)

Bei der Multicondition Coverage (Mehrfachbedingungsüberdeckung) müssen bei zusammengesetzten Entscheidungen alle möglichen Wahr-Falsch-Kombinationen überprüft werden. Bei mehreren Bedingungen innerhalb einer Entscheidung erfordert dies eine zumeist unpraktikabel hohe Anzahl von Testfällen. In der Praxis und in den Normen ist daher die Modified Condition/Decision Coverage (MC/DC) relevant, bei der die Anzahl der Testfälle reduziert wird und die Aussagekraft der Testabdeckung ausreichend hoch bleibt.


Verwandte Artikel

Verifysoft Technology