Code-Coverage-Tests für embedded Systeme

PRODUKT NEWS EMBEDDED SYSTEMS



Der iSYSTEM Werkzeugbaukasten zur Embedded Softwareentwicklung enthält In-Circuit und On-Chip Emulationshardware für mehr als 50 Mikrocontrollerfamilien und deren Derivate, eine Entwicklungsumgebung sowie offene Schnittstellen zur Integration und Anwendung der iSYSTEM Lösungen im Gesamtentwicklungsprozess. In-Circuit Emulatoren (ICEs) und On-Chip Debugger stellen neben der Schnittstel¬lenfunktionalität zur Zielhardware schon lange Funktionen zur professionellen Fehlersuche und damit zum Testen einer Software zur Verfügung. Zu den Echtzeitanalysefähigkeiten eines ICEs zählen Bus-Trace, Execution-Profiler, Data-Profiler, Execution-Coverage und Data-Access-Coverage.

 

Zusätzlich hinzu kommt jetzt die sogenannte Codeabdeckungsanalyse (Code Coverage Analyse) ohne Instrumentierung der Software, also auf Objektcodeebene. Es handelt sich dabei um eine Analysemethode zur Überprüfung der Güte durchgeführter Testfälle und dient zudem dem Aufdecken von „totem“, also nicht getestetem Code. Werkzeuge, die auf Sourcecodeebene arbeiten, instrumentieren den Code, um dann während der Laufzeit Codeabdeckung zu messen. Für embedded Systeme kommt eine Instrumentierung aber nur bedingt in Frage, da die Ressourcen auf dem Zielsystem begrenzt sind und instrumentierter Code das Echtzeitverhalten einer Anwendung beeinflusst.

 

Auf Objektcodeebene wird die Analyse direkt auf dem realen, im Zielsystem geladenen Code durchgeführt ohne Beeinflussung des Laufzeitverhaltens. Analysen auf Objektcodeebene können mit demselben Tool durchgeführt werden, mit dem auch entwickelt wird. Um diese Art Coverage umzusetzen, muss der einzu¬setzende Mikroprozessor eine Trace-Schnittstelle bieten. Mittels Codeabdeckungsanalyse werden neue Testfälle abgeleitet, über¬¬flüssige Testfälle eliminiert und ineffiziente Testfälle verändert bzw. ersetzt. Diese Vorgehensweise führt die Maßzahl der Codeabdeckungsanalyse schrittweise an Standards heran, die durch firmeninterne Qualitäts¬kriterien oder nationale/ internationale Standards festgelegt sind. Die Codeabdeckungsanalyse ist also eine Methode, über die Qualität des Testens innerhalb einer Produktentwicklung eine Aussage zu treffen und damit auch indirekt die Qualität eines Produktes zu verbessern.

 

Werkzeuge nach Maß

Entwicklungswerkzeuge im klassischen Sinne müssen heute vielseitiger einsetzbar sein denn je. Ein gutes Beispiel hierfür sind In-Circuit Emulatoren (ICE) und On-Chip Debugger (OCD). Früher ausschließlich von Mikrocontroller Experten als ein hardwarenahes Entwicklungswerkzeug eingesetzt, findet man diese Werkzeuge zunehmend in den unterschiedlichsten Situationen einer Software-Entwicklung wieder. Dabei ist der ICE bzw. OCD nach wie vor die Verbindung zur eigentlichen Zielhardware mit dem Zweck, Embedded Software so nah wie möglich auf der eigentlichen Hardware zu simulieren, zu implementieren und zu testen.

Fachartikel