Evaluierung der Rückgabewerte von Bibliothekspackages

Motivation

Als Tester möchte ich eine Bibliothek generischer Testabläufe erstellen, die ich flexibel in meinen Testfällen wiederverwenden kann. Ein Teil der Bibliothekspackages generiert dabei intern Rückgabewerte. Diese möchte ich direkt im Packageaufruf bewerten.

Referenzpackage mit Rückgabewerten erstellen

Ich nutze das Package StartStopEngine.pkg aus dem Tutorial zu den Sprechenden Packageaufrufen als Vorlage. Dieses Package startet bzw. stoppt ein Motoren-Modell und prüft den Erfolg des Starts/Stops mithilfe eines von mir gewählten Signals. Statt das Ergebnis des Lesens meiner generischen Größe jedoch direkt in meinem Package zu bewerten, speichere ich es als Rückgabewert QuantityToCheckResult:

../../_images/StartStopEngineWithReturnValue.png
Bewertung des Rückgabewertes

Anschließend erstelle ich ein neues Package TestPackageWithReturnValueEvaluation.pkg, in welchem ich StartStopEngineWithReturnValue.pkg aufrufe. Ich parametriere den Aufruf so, dass mein Motoren-Modell gestartet und anhand der Größe EngineSpeed geprüft wird, ob das Starten erfolgreich war. Da ich einen Rückgabeparameter angegeben habe, wird mir dieser im Tab Parametrierung des Package-Parametrierung-Dialogs angezeigt. Dort kann ich auch meine Erwartung angeben und setze sie auf „>0“:

../../_images/DefineReturnValueExpectation.png

Wenn ich TestPackageWithReturnValueEvaluation.pkg ausführe, erhält der Aufruf von StartStopEngineWithReturnValue.pkg eine Bewertung entsprechend meiner definierten Erwartung und ich kann alle nötigen Informationen auf einen Blick einsehen:

../../_images/ReturnValueEvaluation_TestReport.png
Verwendung von Zeitoptionen zur Bewertung des Rückgabewertes

Die Bewertung des Rückgabewertes kann auch an zeitliche Bedingungen geknüpft werden. Dazu klappe ich nach dem Setzen des Erwartungswerts das Panel Zeitoptionen aus. Mit der Option Warte bis wahr lege ich fest, dass das erwartete Ergebnis innerhalb einer gewissen Zeit eingetreten sein muss. Ich setze die Zeitüberschreitung auf 10 Sekunden und den Polling-Zyklus auf 500ms, wodurch das Package alle 500ms ausgeführt wird, bis entweder alle Erwartungen erfüllt wurden (Erfolgsfall) oder nicht alle Erwartungen erfüllt sind und die maximale Ausführungszeit von 10 Sekunden erreicht wurde (Fehlerfall).

../../_images/DefineReturnValueExpectationWithTimeOptions.png

Durch das Setzen der Zeitoptionen erhalte ich zusätzliche Informationen zur verwendeten Zeitoption und der Anzahl der Durchläufe in den Details der Testergebnisse.

../../_images/ReturnValueEvaluationWithTimeOptions_TestReport.png

Eine detaillierte Beschreibung aller Zeitoptionen findet sich im Kapitel Zeitoptionen.