Globales Mapping¶
Mappingkonzept¶
In ecu.test existiert eine Mappingschicht, die es erlaubt, Testgrößen innerhalb von Testfällen auszutauschen, ohne dass der Testfall modifiziert werden muss. Dabei wird ein allgemeiner Bezeichner (Synonyme: Mappingname, Referenz) auf eine konkrete Größe abgebildet (Mappingziel).
Verschiedene Wege um das Mappingziel festzulegen (nach Priorität):
Parametriertes Mapping (Packagereferenzen-Mapping)
Wenn eine Testgröße oder eine Packagereferenz zum Testfall hinzugefügt werden, wird automatisch ein Element im Lokales Mapping erzeugt. Darüber kann der Zugriff aller Testschritte auf dieses Mapping für das Package zentral bearbeitet werden.
Info
Jedes Package verfügt über ein eigenes lokales Mapping. Das lokale Mapping hat auch keinen Einfluss auf die Inhalte referenzierter Packages.
Mögliche Einstellungen im Mapping:
Mappingname
Pfad zur Zielgröße
Aufnahmeraster
Meta-Daten: Beschreibung und Kategorie
Um den Zugriff auf Mappingziele Package-übergreifend zu verwalten, existiert das globale Mapping. Hier können dieselben Einstellungen wie im lokalen Mapping getroffen werden. Diese wirken sich dann auf die Testschritte aller Packages aus, die den selben Mappingnamen referenzieren. Alle betroffenen Testschritte werden mit einem M am Icon markiert.
Es können beliebig viele globale Mappings geladen werden. Die Reihenfolge definiert ihre Priorität und damit, welcher Mapping-Eintrag bei gleichem Mappingnamen verwendet wird.
Soll eine Referenz während der Ausführung eines Testfalls verändert werden, besteht zudem die Möglichkeit, einem Package beim Aufruf die zu verwendenden Mappingziele mitzugeben.
Nachfolgendes Beispiel verdeutlicht den Zusammenhang und die Einordnung des Mappings in ecu.test.
Beispiel¶
Im Testfall wird auf eine Testgröße z.B. lesend zugegriffen. Im Testschritt selbst ist nur der Mappingname für die Testgröße hinterlegt (hier „Drehzahl“).
Die Mapping-Ebene verknüpft diesen Mappingnamen mit einer konkreten Testgröße (hier das Bus-Signal „A-CAN/PT_DATEN/ENG_RPM“).
Der Zugriff auf den „A-CAN“ erfolgt über die Einstellungen der Testkonfiguration, wo weitere Informationen zur Testgröße aus referenzierten Beschreibungsdateien (hier: Busdatenbank) vorhanden sind.
Der Zugriff auf den Prüfstand findet letztendlich über den in der Testkonfiguration zugeordneten Port aus der Testbenchkonfiguration statt.
Aufgrund dieser Verknüpfung über das Mapping können Testgrößen in einem Testfall ausgetauscht werden ohne den Testfall selbst zu modifizieren. Wenn sich beispielsweise die Benennung der Drehzahl von „ENG_RPM“ zu „ENG_SPEED“ ändern sollte, muss nicht der Testfall angepasst, sondern nur das Mappingziel neu zugeordnet werden.
Parametriertes Mapping in Packages¶
(Siehe auch Packagereferenzen)
Das parametrierte Mapping kann nur verwendet werden, wenn ein Package aus einem anderen Package aufgerufen wird (Packagereferenzen). Im Parametrierungsdialog der Packagereferenz können dabei Mapping-Items des aufgerufenen Packages per Drag-and-Drop überschrieben werden.
Dieses Konzept ist beispielsweise hilfreich, um Packagebibliotheken aufzubauen, bei denen die einzelnen Packages generische Operationen auf Testgrößen ausführen sollen. Dadurch kann das gleiche Package auf unterschiedliche Testgrößen zugreifen, je nachdem, wie es von einam anderen Package aufgerufen wurde.
Globales Mapping¶
(Siehe auch Globales Mapping)
Soll ein Mapping-Item ersetzt werden, das in mehreren Packages verwendet wird, dann bietet sich die Verwendung eines globalen Mappings an. Dieses befindet sich unter . Es kann auf unterschiedliche Art und Weise befüllt werden, zum Beispiel:
Per Drag-and-Drop von Testgrößen oder Packages aus den Aktionsfenstern,
Per Drag-and-Drop und Kontextmenü aus einem lokalen Mapping
Globale Mappings werden in .xam-Dateien gespeichert und können beim Starten einer Testkonfiguration automatisch geladen werden (siehe Tab Allgemein).
Parametrierung in Projekten¶
(Siehe auch Packagereferenz)
Auf Projektebene können Mappings oder Mappingdateien auf folgende Weise übergeben werden:
In Parameteresätzen einer Packagereferenz.
In der Standard-Parametrierung von Ordnern oder dem Projektwurzelknoten
Diese Parametrierungen bieten sich beispielsweise an, wenn Testfälle für mehrere vergleichbare Mappingziele ausgeführt werden sollen.
Lokales Mapping¶
(Siehe auch Lokales Mapping)
Für jede Testgröße, die in einem Package verwendet wird, existiert ein Eintrag im Mapping des Packages. Dieses wird automatisch angelegt, wenn man beispielsweise eine Modellgröße zum Lesen oder Schreiben in das Package einfügt. Es wird dabei ein Mappingname generiert, der dem Namen der verwendeten Testgröße ähnelt. Dieser kann durch Doppelklick auf den Eintrag im Tab Mapping verändert werden.
Priorisierung von Mappings¶
Wird ein Mappingname auf mehreren Mapping-Ebenen definiert, wird das Mapping mit der höchsten Priorität verwendet. Die folgenden Liste veranschaulicht die Prioritäten in absteigener Reihenfolge.
Packagereferenz in Package
Mapping-Referenz in Mapping-Zuordnung
Projekt
Parametersatz in Packagereferenz
Paramatrierung auf Projektordner
Parametrierung auf Projektwurzelknoten
Testkonfiguration
Globale Mapping-Dateien hoher Priorität (links beziehungsweise oben)
Globale Mapping-Dateien niedriger Priorität (rechts beziehungsweise unten)
Package
Lokales Mapping
Im Allgemeinen gilt: Je spezifischer der Kontext für ein Mapping in der Ausführung ist, umso höher ist seine Priorität.
Globales Mapping¶
Im globalen Mapping können Zugriffe auf Testgrößen und Packages zentral und außerhalb von konkreten Packages verwaltet werden. Dies verbessert oftmals die Wartbarkeit und Lesbarkeit von Testfällen:
Auf Änderungen von Namen oder Pfaden von Testgrößen kann flexibel reagiert werden.
Als Mappingnamen haben sich kurze, einprägsame Bezeichner für häufig verwendete Mappingziele bewährt.
Mit Hilfe des globalen Mappings können Testfälle unabhängig vom Simulationsmodell, dem Programmstand oder der Bussimulation erstellt werden. Soll beispielsweise das Modell gewechselt werden, muss nur noch der neue Pfad der Modellvariablen in die Mappingliste eingetragen werden.
Globale Mappings werden in gesonderten Dateien gespeichert (Dateierweiterung .xam). Sie können in der Testkonfiguration und in Projektparametrierungen angegeben oder zur Laufzeit geladen werden.
Gültigkeitsbereich¶
Ein Package referenziert primär das dem Mappingnamen zugeordnete lokale Mapping. Ist ein globales Mapping mit gleichem Namen vorhanden, so überschreibt dieses das lokale Mapping. Existiert der Mappingname in mehreren globalen Mappingdateien, so wird zur Ausführung das Mapping der ersten Datei (Tab am weitesten links) verwendet.
Info
Globale Mappings werden im Testreport im Unterpunkt Mapping farblich hervorgehoben.
Die Grundlagen zum Zusammenspiel von lokalem, globalem und parametriertem Mapping sind im Abschnitt Mappingkonzept zusammengefasst.
Mappingelement hinzufügen¶
Um ein globales Mapping hinzuzufügen, kann man entweder eine Größe aus einem Tab des Aktionsfensters in das globale Mappingfenster ziehen oder auf einen Eintrag im lokalen Mapping mit der rechten Maustaste klicken und Hinzufügen zu globalem Mapping wählen. Im Untermenü kann dann als Ziel das aktive globale Mapping, welches momentan angezeigt wird, oder eine bestimmte, derzeit geladene globale Mappingdatei gewählt werden.
Mapping prüfen¶
Über den Button Mapping prüfen kann ermittelt werden, ob die Einträge der ausgewählten Mapping-Datei gültig sind. Beim Aktivieren des Button erscheint ein Dialog ähnlich jenem beim Package prüfen in dem alle fehlerhaften Einträge mit Fehlertext aufgelistet werden. Ein Doppelklick auf ein Element selektiert es im globalen Mapping.
Mappingelemente bearbeiten¶
Mittels klicken und ziehen kann ein nicht vorhandenes Mapping durch eine vorhandene Variable ersetzt werden. Dazu wird einfach die neue Variable aus einer der Tabs im Aktionsfenster auf das defekte Mapping gezogen.
Info
Bei einigen Tools wird die physikalische Einheit vom Tool abgefragt. Da dies bei Mappings mit vielen Einträgen längere Zeit in Anspruch nehmen kann, wird zunächst die Einheit „?“ angezeigt. Um die Einheit einzelner Mappingelemente zu bestimmen, kann der Eigenschaftsdialog jener Mappingelemente geöffnet werden.
Ein Doppelklick auf ein Mappingelement öffnet den zugehörigen Eigenschaftsdialog.
Dieser Dialog enthält allgemeine Einstellungen zu Mappingelementen sowie spezifische Einstellungen, die von der Art des Ziels abhängig sind.
Allgemeine Einstellungen¶
Mapping-Name:
Bezeichner zur Zuordnung von Testschritten zu Testgrößen
Änderungen werden bei lokalen Mappings direkt in zugeordnete Testschritte übernommen
Anpassungen an (anderen) globalen Mappingdateien und Packages im Workspace können optional ausgelöst werden
Kategorie:
Name zur Gruppierung von Mappingelementen im lokalen und globalen Mapping sowie im Editor
Beschreibung :
Beschreibungstext der im lokalen und globalen Mapping sowie im Editor angezeigt wird
Automatisch verwaltet:
Legt fest, ob das Mappingelement automatisch entfernt werden soll, wenn es von keinem Testschritt mehr verwendet wird (nur im lokalen Mapping)
Raster¶
Bei Testgrößen die einem Raster unterliegen, kann man es hier festlegen. Die zur Auswahl gestellten Raster sind dabei die vom jeweiligen Tool unterstützten Raster und werden live aktualisiert. Sollte keine Verbindung zum Tool bestehen, dann kann das gewünschte Raster auch als Freitext eingetragen werden.
Wählt man das Raster „Port-Default“ aus, wird die Standardeinstellung des Applikationsports verwendet.
Bei einer Aufnahme über CANape oder einen XCP-Port von dem Add-on ecu.test calibration kann eine spezifische Abrufrate pro gemappter Größe angegeben werden. In der MEAS Sektion des Bearbeiten-Dialogs muss dazu als Raster beispielsweise polling#1234 angegeben werden, um das Polling auf eine gewünschte Rate von 1234 ms zu setzen. Für CANApe funktioniert dies zusätzlich für das Stichwort cyclic.
Durch die Option „Erlaube alternatives Raster“ kann entschieden werden, ob alle betroffenen Testschritte bei ungültigem oder vollem Messraster mit ERROR abgebrochen werden sollen. Alternativ wird vor der Testausführung automatisch ein alternatives Raster verwendet und im Report dokumentiert.
Enumeration¶
Mit Hilfe des Enumeration-Buttons kann, wenn aktiviert, die Enumeration der Variable angezeigt werden, die aus der Datenbasis ausgelesen worden ist. Für generische und Modellvariablen kann diese mit dem folgenden Dialog manuell festgelegt werden.
Dabei werden in der Spalte Wert die physikalischen und in der Spalte Text die textuellen Repräsentationen eingetragen. Diese Zuordnung dient dazu, generische Testfälle mit den textuellen Repräsentationen zu erstellen, die auf verschiedene Modelle anwendbar sind. Wenn in obigem Beispiel bei einem Modell beispielsweise „An“ nicht durch den Wert 1 sondern einen anderen repräsentiert wird, muss nicht der gesamte Testfall angepasst werden, sondern es reicht die Enumeration anzupassen. Ein alternativer Anwendungsfall ist das Ummappen von generischen und Modellvariablen. Dabei wird, wenn die neue Größe keine eigene Enumeration besitzt, diejenige der übermappten Variable übernommen und es kann somit ein generischer Testfall erstellt werden, ohne das konkrete Modell zu kennen bzw. ohne mit dem Modelltool verbunden zu sein. Wenn die Enumeration angelegt ist, dann werden deren Texte in der textuellen Repräsentation der Auswahl des Lesen/Schreibentestschritts vorgeschlagen.
Info
Die Festlegung der Enumeration ist bei Modellvariablen nur möglich, wenn sie nicht bereits durch die Modellbeschreibung festgelegt ist.
Manipulation¶
Bei Bussignalen kann über den Haken Lesen und Aufnahme über den Manipulationsport festgelegt werden, ob das Signal über den Port des Aktiven Knotens oder der Manipulation gelesen oder aufgenommen werden soll.
Die Umstellung auf den Port des Aktiven Knotens hat keine Auswirkung für das Schreiben einzelner Signale wie zum Beispiel über eine angebundene Restbussimulation oder wie es für ein Manipulationsgateway nötig ist. Beim Schreiben wird immer der Manipulationsport benutzt.
Siehe auch Tab Buszugriff in der Testkonfiguration.
Info
Bei aktiver Manipulation ist nicht mit allen unterstützten Tools der Lesezugriff möglich. Ist dies nicht der Fall, so muss ein weiteres Mappingelement mit demselben Zielpfad, aber ohne Manipulation erstellt und für den Lesezugriff verwendet werden.
Alternative Anzeigenamen¶
Zusätzlich zum Namen eines Packagemappings im Globalen Mapping kann ein alternativer Anzeigename angegeben werden, der Platzhalter beinhalten kann. Diese werden beim Einfügen des Mappings in einen Testfall automatisch aufgelöst.
Weitere Informationen zu alternativen Anzeigenamen sind unter Grundlagen des schlüsselwortbasierten Testens bzw. im dazugehörigen Tutorial zu finden.