Hercules

Jeder embedded Entwickler muss allgemeine Softwaretests automatisieren und durchführen können.

Wir haben unsere Vision von Hercules durch eine Vielzahl perfekt aufeinander abgestimmter Designentscheidungen Realität werden lassen.

Diese Vision hat dramatische Auswirkungen auf die Effizienz des gesamten embedded Software-Entwicklungsprozess. Dies trifft insbesondere auf agile Methoden, wie z.B. Continuous Integration/Deployment zu, ist aber keineswegs darauf beschränkt. Dadurch, dass es sich um einen vollständigen Software-in-the-Loop-Ansatz (SIL) handelt, der den Prüfling samt seiner Umgebung und Testapparatur simuliert, lassen sich alle Anforderungen, die jemals durch einen implementierten Testfall abgedeckt wurden, jederzeit automatisiert verifizieren.

Fünf wesentliche Schlüsselelemente zur massiven Effizienzsteigerung:

  1. Da es sich dabei um black-box Tests handelt, also unabhängige Tests, die insbes. keine Annahmen über die interne Struktur der Prüfling-Software machen, lassen sie sich jederzeit unverändert ausführen, auch nach radikalen Redesign- oder Refactoring-Maßnahmen (bei Modultests ist das ja leider nicht möglich). Dadurch lassen sich sogar schwer wartbare Systeme schrittweise wieder in den Griff bekommen.
  2. Die Tests können klassisch manuell von jedem Entwickler gestartet werden oder auch werkzeuggestützt, etwa im Zuge eines Gated Commits in einer Continuous Integration-Umgebung. In jedem Fall ist durch diesen Entwicklungsprozess sichergestellt, dass möglichst viele Fehler so früh wie möglich gefunden und behoben werden, bevor sie für andere sichtbar werden.
  3. Durch die Ausführung am PC ergeben sich weitere ungeahnte Möglichkeiten, etwa eine ganzheitliche Codeabdeckungsstrategie (Gros über Simulation, Rest über Modultest), vollautomatisch erstellte/ausgeführte Software-Integrationstests (Schnittstellentests) sowie eine vollautomatische Aufspürung von potentiellen Datenraces ohne false positives. Die zuletzt genannten Datenraces sind insbes. in der Praxis/Serie üblicherweise mit immensem Analysezeitaufwand und Kosten verbunden bzw. während einer klassischen Entwicklung nur mit aufwändig zu betreuenden spezialisierten Werkzeugen.
  4. Durch ein abgestimmtes Gesamtdesign gelingt die Umstellung eines bestehenden embedded-Projektes mit einer beliebig gearteten Hardware-Abstraktionsschicht (z.B. Autosar oder proprietär) in kurzer Zeit – es lassen sich nahtlos sogar mehrere, vernetzte Steuergeräte im Verbund simulieren.
    Die Laufzeit dieser Simulationen bewegt sich auf einem normalen PC nachweislich in einer ähnlichen Größenordnung als die des realen Prüflings und ist dank des SIL-Ansatzes sowie der naturgemäßen Unabhängigkeit der Testfälle/Szenarien nahezu beliebig parallelisierbar.
  5. Trotz der realitätsnahen inhärenten Simulationsmöglichkeiten wie etwa Unterspannungs- oder Watchdogresets, partieller Ram-Erhalt nach Reset, Jitter oder ADC-Rauschen gehören aufgrund der deterministischen, ganzheitlichen Simulation zeitraubende Fehlerreproduktionsversuche komplett der Vergangenheit an: Tritt ein Fehler auf, läßt er sich 100% reproduzieren. Läuft das System auf einen Breakpoint auf, steht die ganze Welt still – Controller, Tester und Umgebung. Ein Traum für Entwickler!

Holistic ErCU Logic and Environment Simulation -> Hercules!