Mastering Software Complexity

Hardware in the Loop for Everybody

Die meisten Embedded Systeme werden zu spät oder nur unzureichend getestet. Fakt ist: Je später Fehler entdeckt werden, desto teurer ist die Behebung – die Kosten steigen exponentiell mit Fortschreiten des Projekts an. Im Extremfall einer Rückrufaktion für bereits gelieferte Produkte kann das zu Kosten in Millionenhöhe führen. Es muss also Ziel sein, deutlich früher zu testen – im Idealfall bereits durch Hardware in the Loop Tests während der Implementierung. 

Hardware in the Loop Costs to fix a bug

https://www.iconfinder.com/icons/46781/bug_icon#size=256

Warum ist es schwierig Embedded Systeme zu testen?

Es gibt vielfältige Gründe warum Embedded Systeme so schwer zu testen sind: Im Gegensatz zu „normaler“ Desktop Software haben Embedded Systeme Schnittstellen zu physikalischen Systemen und nicht nur zu anderen Softwaresystemen. Die Software, welche diese Systeme kontrolliert, ist hochgradig nebenläufig und zustandsbehaftet. Mit den üblichen Testverfahren wie z.B. sequenziellen Unit Tests kann man solche Systeme meist nur schlecht testen.

Simulationsbasierte Software in the Loop- (SIL) oder Hardware in the Loop-Tests (HIL) sind grundsätzlich gut geeignet für solche Tests. Die gängigen Hardwareplattformen und Softwaretools sind aber häufig zu teuer, um sie bereits während der Entwicklung an jedem Arbeitsplatz einzusetzen. Außerdem ist für die Entwicklung der Tests anderes Methoden- und Toolwissen nötig als für die Entwicklung der Applikation. In den meisten Fällen werden diese Methoden daher erst sehr viel später in der Testabteilung angewendet.

Der Entwickler kann so kaum strukturiert testen sodass die entstehenden Embedded Systeme während der Entwicklung häufig nicht getestet sondern eher „ausprobiert“ werden.

Wie kann man während der Entwicklung bereits Hardware in the Loop testen?

Um dennoch entwicklungsbegleitend testen zu können sollten folgende Voraussetzungen erfüllt sein:

Hardware in the Loop eTrice testcase

Das Open Source-Modellierungswerkzeug Eclipse eTrice ermöglicht den Aufbau einer kostengünstigen und dennoch mächtigen Testplattform: Im Modell können Komponenten für Stimulation, Monitoring und Simulation entwickelt und generiert werden. Mit dem eTrice Add-on PROTOS-CaGe können Komponenten mit Testcases für das System beschrieben und vollständig generiert werden. Die kombinatorische Testcasegenerierung ermöglicht eine sehr schnelle Entwicklung von Testcases mit hoher Abdeckung.

Alle Komponenten zusammen bilden einen portablen, echtzeitfähigen „Test Harness“ für die Applikation. Diesen kann man als SIL-Test (z.B. auf dem Entwicklungsrechner) oder als HIL-Test auf kostengünstiger Hardware (z.B. Standard Evaluation Boards von Infineon oder ST-Microelectronics) ausführen.
Die vollautomatische Durchführung der Tests wird durch einen Jenkins Continuous Integration Server (ebenfalls Open Source) übernommen.

Test First für Embedded Systeme!

Durch die gewählte Kombination aus Standard-Hardware und größtenteils frei verfügbaren Open Source Tools kann man eine modellgetriebene Software in the Loop- oder Hardware in the Loop-Testlösung aufbauen. Diese ermöglicht es bereits während der Applikationsentwicklung Embedded Systeme mit hoher Abdeckung automatisiert zu testen.

Über den Autor

Thomas Schütz ist Geschäftsführer von PROTOS und berät Unternehmen beim Aufbau domänenspezifischer Werkzeugketten für Embedded Systeme. Zudem ist er gemeinsam mit Henrik Rentz-Reichert Projektleiter des Eclipse Projektes eTrice.

Fragen, Anregungen oder Kritik zu dem Artikel? Schreiben Sie Thomas Schütz persönlich. Ihre Nachricht wird nicht veröffentlicht!




Einwilligung



Es gilt die PROTOS Datenschutzvereinbarung

Bitte stimmen Sie der Kontaktaufnahme zu, bevor Sie das Formular absenden können.

Kunde

Pari GmbH

Schlagworte: Produktion in der Medizintechnik, Traceability, Modellbasierte Automatisierung und Produktionssteuerung, Fertigungsoptimierung, SAP-Anbindung

Technologien: ROOM, Trice, eTrice, UML2, Rhapsody, Linux, Interbus-S, Sercos-III, Modbus, EtherCAT, Codegenerierung für C++ und Java, Eclipse EMF und RCP

Partner

Embedded for You

Embedded for You ist ein Verein von deutschen Anbietern für Software- und Hardwarelösungen im Bereich der Embedded Systeme. Mit unseren Partnern erstellen wir kundenspezifische Gesamtlösungen für alle Arten von Embedded Systemen.

Partner

Eclipseina

Die Eclipseina GmbH ist ein Beratungs- und Dienstleistungsunternehmen, das sich auf embedded Softwareentwicklung spezialisiert hat. Dabei bedient sie alle Disziplinen, die für eine erfolgreiche Softwareentwicklung sowohl in technischer als auch in organisatorischer Hinsicht notwendig sind.

Partner

oose.

oose bietet Ihnen exzellente Seminare, Workshops, Beratung und Projektunterstützung für Software & Systems Engineering, neue Arbeitswelten und Innovation.

Kunde

Visteon

Schlagworte: Entwicklung von domänenspezifischen Sprachen für Infotainmentsysteme, DSL-Entwicklung auf der Basis von Xtext, Middleware in C++ für verschiedene Architekturen, Tooling für Entwickler, GUI-Entwicklung für Eclipse-basierte Tools, Integration der eTrice Statemachine Editoren und Code Generatoren

Technologien:  Xtext, Xtend, Eclipse, C++, Java, eTrice, Statemachines

Kunde

Siemens

Schlagworte: Maschinensteuerungen, Barcode, Netzwerkapplikationen, Traceability in der Produktion, Datenbank Integration

Technologien: C++, XML

Kunde

SCHAEFFLER

Schlagworte: Entwicklung einer modellgetriebenen Toolchain für Mechatronik und Elektro-Mobilität auf Basis von Eclipse eTrice, Aufbau des technischen Entwicklungsprozesses mit hohem Automatisierungsgrad

Technologien: ROOM, Eclipse eTrice, Codegenerierung und Transformationen für verschiedene Sprachen und Formate (Eclipse Xtend, EMF), Entwicklung domänenspezifischer Sprachen (Eclipse Xtext), Continuous Integration (Hudson), C, Python, A2L, CAN

Kunde

HARMAN

Harman Automotive ist weltweit führender Hersteller von In-Car Premium Audio- und Infotainmentsystemen.

Schlagworte: Automatiserte Auswertung von Tracedaten aus Tests, Systemstabilität, Performance

Technologien: QNX, Perl, C++

Kunde

ept

Schlagworte: Automatisierungstechnik, Modellbasierte Steuerungslösungen für Serienanlagen, Harte Echtzeitsysteme, numerische Optimierung

Technologien: ROOM, Trice, Codegenerierung für C++ und C, CAN

Kunde

Infineon

Schlagworte: Modellbasierte Konfiguration für Microcontroller Varianten

Technologien: Eclipse-EMF, Xtext, JET, Codegenerierung für C, Java

Kunde

BMW Group

Schlagworte: Software Architektur für Bordnetze, Spezifikationen für elektronische Fahrzeugfunktionen, Modellbasiertes Rapid Prototyping für Steuergeräte, Modellbasierte Entwicklung, Automatisierte Steuergerätetests, Model und Hardware in the Loop

Technologien: ROOM, Trice, Codegenerierung, Java, C++, C, CAN, MOST, Flexray, Eclipse-EMF