Host / Target Test mit der LDRA Werkzeugreihe

Was ist Host/Target Test?

Das Prinzip hinter dem Host/Target Test besteht darin, daß der Anwendungsquellcode, der getestet werden soll, auf seiner Zielumgebung ausgeführt wird und die Testergebnisse, die erzeugt werden auf die Hostplattform zurückgeladen und dort bewertet und analysiert werden. Dies erleichtert den Test eingebetteter Systeme, die auf einer Hostplattform entwickelt werden, dort "cross"-kompiliert werden und anschließend auf einem spezifischen Zielprozessor heruntergeladen und zur Ausfuhrung gebracht werden.

Innerhalb einer solchen Umgebung kann das LDRA Testbed zuerst dazu verwendet werden die statische Analyse und die Instrumentierung der Anwendung auf der Hostplattform durchzuführen. Daran anschliesend nach der Ausfuhrung der instrumentierten Anwendung in der Zielumgebung wird das LDRA Testbed dazu benutzt die resultierenden Kontrollflußdaten zu analysieren und die Überdeckungsanalyseresultate zu erzeugen.

Ein bekanntes Beispiel fur diesen Prozeß ist die Ausfuhrung der Analyse des LDRA Testbeds auf einer Arbeitsstation und die Ausführung der Anwendung auf einem Mikroprozessor, der spezifische Hardwarefunktionen steuert. Es ist jedoch nicht unublich auch das gegenteilige Beispiel zu finden, nämlich die Analyse auf einem Personalcomputer durchzuführen und die Ausfuhrung der Anwendung auf einem Großrechner. In diesem Falle kann der instrumentierte Code mit komplexen Datenbankanwendungen und anderen Systemen agieren.

Nutzen des Host/Ziel-Tests

  • Möglichkeit die Analyse auf dem Hostrechner auszuführen und reale Ausführung auf dem Zielrechner (oder Großrechner)
  • Der instrumentierte Code wird in der beabsichtigten Zielumgebung ausgeführt.
  • Die Analyseaufgabe wird auf einem leistungsfähigeren und leichter zugänglichen Hostrechner verlagert.

Anforderungen für den Host/Target-Test

Eine Grundvoraussetzung für den Host/Target-Test ist das Vorhandensein einer Kommunikationsmoglichkeit zwischen dem Ziel- und dem Hostrechner. Beim Host/Host-Test ist die LDRA Testbed Instrumentierung in der Weise konfiguriert, daß zur Laufzeit auf das Hostdateisystem geschrieben wird, da es das am bequemsten erreichbare Massenspeichergerät ist. Im Falle eines separaten Zielmikroprozessors ist es möglich, dass aufgrund von Umgebungs- oder Platzgrunden kein Dateisystem vorhanden ist. Wenn dem so ist, dann muß eine Alternative gefunden und benutzt werden.

Manchmal existiert in einem Zielsystem ein freier (nicht benutzter) Kommunikationskanal zum Host. Vielleicht wurde er auch bereits benutzt um Zielbilder, die von einem Crosscompiler erzeugt wurden, auf die Zielumgebung zu laden. Dies stellt die eleganteste Speicherlösung dar, da dieser Kommunkationskanal für den Transfer der erzeugten Daten zurück zum Host während der Laufzeit benutzt werden kann.

Ein Kommunikationstreiber muß auf dem Host installiert werden, der die Daten empfängt und dafur sorgt, daß sie in einer geeigneten Datei gespeichert werden. Wenn diese Technik verwendet wird, dann können die "execution history" Daten, die vom instrumentierten Zielbild erzeugt werden zum Hostrechner zurückgefuhrt werden und nach dem Ablauf der Applikation für die dynamische Analyse verwendet werden. Netzwerkverbindungen, z. B. Ethernet, können als Alternative zu einem Standardkommunikationskanal verwendet werden.

Wenn kein anderer Kommunikationskanal vorhanden ist, dann kann es nutzlich sein die "execution history" Daten in einem RAM Bereich des Zielprozessors abzulegen. Diese Lösung erfordert freilich das Vorhandensein eines anderweitig nicht genutzten RAM Bereichs, der auch genügend groß sein muß um die erzeugten Daten aufzunehmen. Wenn dies möglich ist, dann können diese Daten nach Ablauf der Applikation zum Hostrechner hochgeladen werden. Dies geschieht beispielsweise durch einen Debugger. Danach können die Daten für die dynamische Analyse verwendet werden.

LDRA Testbed in verschiedenen Host/Host & Host/Target Umgebungen

Der Host/Target Instrumentierungsprozeß

Der Instrumentierungsprozeß, der vom LDRA Testbed verwendet wird ist hochgradig anpaßbar und kann leicht in der Weise zugeschnitten werden, daß eine hohe Bandbreite von verschiedenen Host/Targetumgebungen abgedeckt wird. Das LDRA Testbed fügt automatisch Instrumentierungsanweisungen in eine Kopie des ursprünglichen Quellcodes ein. Diese Anweisungen schreiben auf einen "execution history" Kanal. Der Quellcode für diese Anweisungen wird mitgeliefert und kann vom Anwender so zugeschnitten werden, daß er die Funktionen eines bestimmten Zielprozessors abdeckt.

Host/Ziel Umgebungen

Das LDRA Testbed wurde erfolgreich in den verschiedensten Host/Target Umgebungen eingesetzt mit vielen verschiedenen Kommunikationskanälen, darunter serielle und parallele E/A, In-Circuit Emulatoren, Ethernet, DMA, Softwaresimulatoren, lokaler Festplattentransfer, dualen "boot"-Dateisystemen, Telefon etc. Dieser hohe Grad an Flexibilität zeigt, dass das LDRA Testbed ideal für den Test von Echtzeitsystemen geeignet ist.