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.