Integrationstests für Embedded Software
Wenn einzeln geprüfte Software-Units zu größeren Komponenten und Teilsystemen zusammengefügt werden, entstehen neue Fehlerklassen. Schnittstelleninkongruenzen, falsche Annahmen bezüglich gemeinsam genutzter Daten und unbeabsichtigte Kopplungen zwischen Modulen werden in dieser Phase sichtbar. Im Rahmen der Integrationstests werden diese Probleme aufgedeckt und behoben, bevor die Tests auf Systemebene beginnen.
Was Integrationstests abdecken
Integrationstests konzentrieren sich auf die Grenzen zwischen Software-Units und Komponenten. Zu den wichtigsten Verifikationszielen gehören:
- Korrekte Implementierung von Schnittstellen zwischen Modulen
- Korrektes Verhalten, wenn mehrere Einheiten unter kombinierten Bedingungen zusammenwirken
- Datenkopplung (Data Coupling): Reihenfolge und Korrektheit von Lese- und Schreibzugriffen auf gemeinsam genutzte Daten
- Steuerungskopplung (Control Coupling): Sicherstellung, dass zwischen Komponenten übertragene Steuer-Signale wie spezifiziert verhalten
Gemäß DO-178C und verwandten Standards müssen Daten- und Steuerungskopplungen explizit identifiziert, getestet und hinsichtlich ihrer Vollständigigkeit nachgewiesen werden. Dies schließt den Nachweis ein, dass keine unbeabsichtigten Kopplungen zwischen Komponenten bestehen.
Abdeckung auf Integrationsebene
Die Code-Coverage-Messung wird auf Integrationsebene fortgesetzt, wobei häufig andere Instrumentierungsansätze zum Einsatz kommen als auf der Unit-Ebene. VectorCAST/QA instrumentiert den Quellcode unabhängig vom Compiler, sodass er in verschiedenen Build-Konfigurationen und in Umgebungen verwendet werden kann, in denen eine Änderung des Testaufbaus nicht praktikabel ist.
Die instrumentierte ausführbare Datei läuft in bestehenden Testumgebungen, wobei die Coverage-Daten während der Ausführung erfasst werden. Auf diese Weise wird die White-Box-Abdeckungsmessung auf Black-Box-Integrations- und Systemtests ausgeweitet, ohne dass der Testaufbau geändert werden muss.
Daten- und Steuerungskopplung
Die Berichte zur Komponenten- und Kopplungsabdeckung von VectorCAST liefern den Nachweis für die gemäß DO-178C und ähnlichen Standards geforderte Daten- und Steuerungskopplung (data and control coupling). VectorCAST/Coupling erkennt Lese- und Schreibzugriffe bei der Datenkopplung und erfasst Aufrufe bei den Steuerelementen und erstellt die von Auditoren geforderten Berichte zur Kopplungsüberdeckung.
Von der Integration zum System
VectorCAST unterstützt Tests auf Unit-, Integrations- und Systemebene, indem es dieselbe Testinfrastruktur, die gleiche Abdeckungsmessung, Rückverfolgbarkeitsprotokolle und Berichterstellung für alle drei Ebenen verwendet. Eine auf Unit-Ebene erstellte Testsuite muss nicht neu erstellt werden, wenn der Scope auf Integrations- oder Systemtests ausgeweitet wird.