Mastering Software Complexity

HIL Testfall Modellierung mit CaGe

Mit der Sprache CaGe werden Testfälle für Hardware in the Loop Testsysteme modelliert, generiert und ausgeführt. Dies ermöglicht die schnelle Entwicklung von Testfällen mit hoher Testabdeckung.

 

zurück zum miniHIL

miniHIL Testharness und CaGe

Ein Hardware in the Loop Test benötigt zuerst einen Testharness, welcher aus dem miniHIL Board und der miniHIL Simulationumgebung besteht. Dieser definiert die erforderliche Testumgebung wie z.B. Hardware, Treiberanbindung des Testsystems oder Testinterface und stellt sicher, dass der Testaufbau zuverlässig reproduzierbar ist.


CaGe (Case Generator) ist die Testsprache der miniHIL Lösung, mit welcher der eigentliche Testablauf definiert wird. Die Testbeschreibung erfolgt textuell in einem Editor. Darüber hinaus werden die Tests als Sequenzdiagramme visualisiert, welche Verständis und Kommunkiation der Testcases erleichtern und als Dokumentation dienen.
Die folgenden Abschnitte stellen die wichtigsten Elemente von CaGe vor.

CaGe Step

Ein CaGe Step beschreibt die Aktion und Reaktion für das System under Test (SUT). Das folgende Beispiel zeigt einen einfachen Test für eine Motor LED.
Der Test verfügt über zwei digitale Pins –  einen digitalen Ausgang ignition und einen digitalen Eingang  motorRunning. Zuerst schaltet der Test den Motor an. Dies geschieht mit der Aktion ignition.setOutputHigh. Als Folge sollte das SUT die Motor LED aktivieren. Die erwartete Reaktion ist motorRunning.inputHigh.

Monitore und Simulationen

Ein CaGe Test kann zusätzliche Monitoren und Simulationen einsetzen.
Das folgende Beispiel skizziert die Messung eines PWM Signals mit Hilfe eines Monitors namens pwmMeasureMonitor. Der Test fordert zuerst den aktuelle Duty Cycle des SUT an mit pwmMeasureMonitor.getDuty. Daraufhin wird der übermittelte Wert gegen einen Sollwert geprüft (duty in range[...]).
Hinweis: In dem Diagramm wird der Monitor dem SUT zugeordnet.

Monitore sind Teil der miniHIL Simulationsumgebung und werden nicht in der Testsprache definiert. pwmMeasureMonitor ist eine nebenläufiger Aktor im Testsystem, welcher fortlaufend das PWM Signal des SUT misst. In diesem Aktor ist sowohl die hardware-technische Anbindung als auch die Messlogik gekapselt.

Auf gleiche Weise können Simulationensbausteine in einem Test eingesetzt werden. Mit ihnen können sowohl spezifische Zustände der Testumgebung simuliert werden, wie z.B. spezielle Sensorsignale oder ein Kabelbruch, als auch komplette Umgebungssimulationen erstellt werden. Beispiele hierfür sind Simulationen von Motoren, Batterien und Restbussimulationen.

CaGe Sequenz

Eine CaGe Sequenz ruft andere CaGe Steps und Sequenzen auf. Auf diese Weise ist es möglich Testlogik wiederzuverwenden oder höherwertige Testabläufe zu erstellen.
Im folgenden Screenshot ist die Sequenz PwmMeasurement abgebildet, welche die Steps EnableIgnition und MeasurePwmDuty kombiniert.

Test Ausführung

Wenn das miniHIL Board mit dem PC verbunden ist, können die Tests bequem aus der Kommandozeile oder einer graphischen Oberfläche (GUI) gestartet werden. Im Folgenden ist ein Screenshot der GUI zu sehen. Auf der linken Seite befindet sich das Bedienfeld für die Testauswahl und -ausführung. Das textuelle Logging wird auf der rechten Seite angezeigt.

 

Test Logging

Ein CaGe Test wird zur Laufzeit aufgezeichnet. So wird der Testablauf inklusive Aktion und Reaktion des SUT zum PC übermittelt und als Sequenzdigramm visualisiert.
In der folgenden Grafik sind drei Diagramme zu sehen. Das Erste ist der erwartete Testablauf, der während der Testentwicklung verfügbar ist und bereits in den vorherigen Abschnitten gezeigt wurde.
Die beiden verbleibenden Diagramme zeigen jeweils einen tatsächlichen Testablauf, wie er zur Laufzeit aufgezeichnet wurde. Das mittlere Diagramm ist ein erfolgreicher, das rechte Diagramm ein fehlgeschlagener Testdurchlauf.

Die Diagrammen enthalten Links, welche auf die Testdefinition verweisen. So führt z.B. ein Klick auf „expect failed“ des fehlgeschlagenen Testdurchlaufs auf die Anweisung im Editor, welche für den Fehler verantwortlich war.

Test Parameter

CaGe Sequenzen können parameterisiert werden, sodass sie wiederverwendbar werden. Dies ermöglicht das Testen mit unterschiedlichen Parametersätzen.
Im folgenden Beispiel ist eine parameterisierte Sequenz dargestellt. Diese ruft 3 Steps nacheinander auf: EnableIginition, SetPWMDuty und MeasurePWMDuty.
Der Step SetPWMDuty besitzt einen Parameter, durch den der gewünschte Sollwert für das PWM Signal des SUT eingestellt werden kann. Der Step MeasurePWMDuty akzeptiert einen Min- und Maxwert zur Messung des erwarteten Signals.

Die ganze Sequenz oder die drei Steps für sich alleine können nun im Test aufgerufen werden. Es ist ebenfalls möglich sie in eine Bibliothek auszulagern, sodass sie für andere Testprojekte zur Verfügung stehen. So kann eine wiederverwendbare Testbibliothek geschaffen werden.

Kombinatorische Testfallgenerierung

Eine Besonderheit von CaGe ist die Erstellung von kombinatorischen Tests, aus denen Testfälle generiert werden (State Transition Testing). State Transition Testing ist eine Technik aus dem Bereich des Model Based Testing (MBT).

In den vorherigen Beispielen wurde der Testablauf durch Sequenzen realisiert. Als Alternative kann der Testablauf durch einen State Transition Graphen modelliert werden. Der Graph erlaubt es einen Ablauf zu definieren, welcher beliebig viele Wiederholungen oder unterschiedliche Kombinationen der Sequenzen bestehen kann. Der folgende Screenshot zeigt einen Graphen, welcher etliche Rücktransitionen und Zyklen enthält. Jeder Pfad durch den Graphen ist ein möglicher Testcase.

CaGe ist in der Lage aus den Pfaden des Graphen konkrete Testfälle zu generieren. Das Diagramm unten zeigt das Resultat einer Testfallgenerierung mit der sogenannten n-switch Methode, welche in diesem Fall n=1 beträgt und zu 21 Testfällen führt.

Mittels der Testfallgenerierung kann die Testabdeckung signifikant gesteigert werden. Außerdem lassen sich auf diese Weise Fehler aufdecken, die ansonsten schwer zu finden sind, wie z.B. Race Conditions oder Deadlocks.

Zu diesem Thema ist der Blogbeitrag Kombinatorische State Transition Tests für Embedded Systems verfügbar.

Welche Anforderung für HIL Tests haben Sie ?




Einwilligung



Es gilt die PROTOS Datenschutzvereinbarung

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


HIL Testfall Modellierung

Die Testfall Modellierung mit CaGe bietet:

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