Software-Test Den wahren Code testen

Gründlich getestete Software, die auch noch die Abdeckungsanalyse besteht, kann trotzdem auf dem Target ein unerwartetes Verhalten zeigen. Ein Grund kann sein, dass der geprüfte Objektcode mit dem Code auf der Zielhardware nicht identisch ist. Wie kommt das, und wie lässt sich das verhindern?

Von Niroshan Rajadurai, Director EMEA bei Vector Software.

Für Entwickler von Sicherheits- oder missionskritischen Systemen gibt es zwei wichtige Kriterien im Softwaretest: die Gründlichkeit des Tests und die Übereinstimmung zwischen der Testumgebung und der endgültigen Zielumgebung. Üblicherweise belegt man die Gründlichkeit des Tests durch Einsatz einer Code-Abdeckungsanalyse; das Ziel dabei ist, über alle Prüfaktivitäten hundert Prozent Abdeckung nachzuweisen.

Ein Aspekt wird allerdings oft unterschätzt: Die in der Entwicklung verwendete Testumgebung muss so genau wie möglich mit der Zielumgebung übereinstimmen, in der die Applikation endgültig eingesetzt wird. Dabei muss man insbesondere sicherstellen, dass der geprüfte Objektcode mit dem Objektcode, der im Feld zum Einsatz kommt, identisch ist.

Beim Konzipieren einer Testumgebung sollten Entwickler auf eine perfekte Übereinstimmung mit der Zielumgebung in Bezug auf folgende Kriterien achten:

  • Target: Die Testhardware sollte der Zielhardware entsprechen.
  • Compiler: Die Testumgebung sollte mit den gleichen Versionen der gleichen Werkzeuge übersetzt werden.
  • Objektcode: Compiler- und Linker-Einstellungen sowie gelinkte Bibliotheken sollten mit denen der Produktion übereinstimmen.