Sprechende Packageaufrufe

Motivation

Als Tester möchte ich eine Bibliothek generischer Testabläufe erstellen, die ich flexibel in meinen Testfällen wiederverwenden kann. Außerdem möchte ich, dass die Testschritte von der Formulierung her möglichst nah an meiner Spezifikation liegen.

Generisches Referenzpackage erstellen

Zunächst erstelle ich mein Bibliothekspackage StartStopEngine.pkg, welches meinen Motor startet bzw. stoppt und den Erfolg anhand eines von mir gewählten Signals prüft. Ich möchte dabei flexibel angeben können, ob ich starten oder stoppen will und mithilfe von welchem Signal ich den Erfolg überprüfe. Dazu lege ich im Package einen Parameter EngineRequest vom Typ Enum mit den Werten ‚Start‘ und ‚Stop‘ an:

../../_images/StartStopEngine_EngineRequest.png

Für das Lesen eines beliebigen Signals füge ich einen generischen Lesen-Testschritt mit dem Mapping-Namen QuantityToCheck ein. Als Bewertung gebe ich an, dass der Messwert entweder größer 0 (beim Starten) oder gleich 0 (beim Stoppen) sein soll:

../../_images/StartStopEngine_QuantityToCheck.png
Referenzpackage mit sprechendem Namen verwenden

Anschließend möchte ich mein Referenzpackage StartStopEngine.pkg in einem Testfall Testpackage.pkg verwenden. Beim ersten Aufruf soll der Motor gestartet und der erfolgreiche Start anhand des Signals VehicleSpeed geprüft werden. Beim zweiten Aufruf soll der Motor gestoppt und der Erfolg mithilfe von EngineSpeed überprüft werden. Außerdem möchte ich beide Packageaufrufe besser voneinander unterscheiden zu können und bereits anhand des Anzeigenamens erkennen, wie mein Bibliothekspackage parametriert ist.

Um das zu erreichen, benötige ich einen Mapping-Eintrag für mein Bibliothekspackage StartStopEngine.pkg. Das ist sowohl im Globalen Mapping als auch im Lokalen Mapping des aufrufenden Packages (hier: Testpackage.pkg) möglich.

Für dieses Tutorial erstelle ich einen Eintrag im globalen Mapping. Im Bearbeitungsdialog des Mappings kann ich einen Alternativen Anzeigenamen vergeben. In diesem alternativen Anzeigenamen kann auf Werte der Parameter und Mappings des referenzierten Packages zugegriffen werden. Die benötigte Notation dafür ist ${Parameter.Mein_Parameter} für Parameter und ${Mapping.Mein_Mapping_Eintrag} für Mappings:

../../_images/EditMappingItem_AltCallRepr.png

Im Mapping-Eintrag für StartStopEngine.pkg referenziere ich EngineRequest mit ${Parameter.EngineRequest} und QuantityToCheck mit ${Mapping.QuantityToCheck}. Deren Werte werden ersetzt, sobald ich den Mapping-Eintrag in Testpackage.pkg gezogen und den Package-Aufruf parametriert habe.

Als nächstes ziehe ich den Mapping-Eintrag also zweimal in Testpackage.pkg und parametriere die Aufrufe wie gewünscht:

../../_images/TestPackage.png

Der Anzeigetext meines Referenzpackages StartStopEngine.pkg in Testpackage.pkg enthält nun auch den alternativen Text mit den parametrierten Werten und ich kann auf einen Blick sehen, was meine Package-Aufrufe tun werden.