Ablaufsteuerung

In dieser Kategorie finden sich alle Testschritte, mit denen der Ablauf des Tests beeinflusst werden kann. Dazu gehören unter anderem Schleifen, Bedingungen oder Warteschritte.

Break

Der Testschritt Break dient zum Beenden des umgebenden React-On-Testschritts bzw. zum vorzeitigen Verlassen der umgebenden Schleife in Loop oder Repeat-Until-SUCCESS. Außerhalb dieser Testschritte darf der Testschritt Break nicht verwendet werden und führt dort zu einer entsprechenden Fehlermeldung. Die Ausführung des Break erhält (mit Ausnahme des genannten Fehlerfalles) keine Bewertung. Break besitzt keine Parameter und damit auch keinen Einstellungsdialog.

Continue

Bei der Verwendung dieses Testschritts werden die noch verbleibendende Testschritte einer Schleife übersprungen, um direkt mit der nächsten Iteration fortzufahren. Zuvor wird dabei die Iterationsbedingung geprüft. Der Testschritt darf nur innerhalb einer Schleife in Loop oder Repeat-Until-SUCCESS verwendet werden. Der Testschritt erhält keine Bewertung.

Exit

Der Testschritt Exit bewirkt, dass der Test an dieser Stelle beendet wird. Befindet sich der Testschritt bei der Testausführung beispielsweise in einem referenzierten Package, so wird trotzdem das Package auf der obersten Ebene verlassen. Damit ist es möglich, in Abhängigkeit von einer bestimmten Bedingung (Kombination mit If-Then-Else) den Testdurchlauf vorzeitig zu beenden. Die Bewertung der Testdurchführung ist frei konfigurierbar. Wird der Test bereits in der Precondition beendet, wird eine eventuell konfigurierte Synchronsiation und Traceanalyse nicht ausgeführt (siehe auch Übersicht unter Schnittstelle zur Traceanalyse). Davon abgesehen hat das Beenden des Testfalls keine Auswirkung auf die Ausführung von Synchronisation und Traceanalyse.

Außer dem Beenden des Tests ist auch ein Abbruch möglich. In diesem Fall ist die Bewertung zwingend ERROR, eine eventuell konfigurierte Synchronisation und Traceanalyse wird nicht ausgeführt, und falls in der Testkonfiguration oder im Projekt ein bei Abbruch auszuführendes Package konfiguriert wurde, wird dieses ausgeführt.

Das Kommentar-Feld „Abbruch-Code“ bietet in beiden Fällen eine Liste von zusätzlichen Bewertungen an. Diese Liste ist in der Datei verdictmappings.xml im Workspace hinterlegt und kann bei eingerichtetem Testmanagement-System auch unter Testmanagement-Einstellunge konfiguriert werden.

If-Then-Else

Wählt man den Testschritt If-Then-Else aus, öffnet sich das zugehörige Dialogfenster. Mit dieser Funktion kann die Ausführung bestimmter Elemente im Testfall von einer Bedingung abhängig gemacht werden. Unter If wird die Bedingung angegeben. Zur komfortablen Erstellung der Bedingung können z.B. Variablen über die Autovervollständigung ausgewählt werden.

Nach der Bestätigung mit Einfügen wird der Testschritt in den Testfall eingefügt und weitere Testschritte können unter Then (Bedingung ist wahr) und Else (Bedingung nicht wahr) eingefügt werden. Sind beim Einfügen eines If-Then-Else mehrere aufeinanderfolgende Testschritte markiert, so werden diese in den Then-Zweig des neu eingefügten If-Then-Else verschoben.

IfDef

Mit diesem Testschritt kann direkt auf die globalen Konstanten der Konfiguration zugegriffen werden. Somit ist es möglich Testschritte nur auszuführen, wenn eine bestimmte globale Konstante auf einen bestimmten Wert gesetzt wurde oder überhaupt vorhanden/nicht vorhanden ist.

Die IfDef-Anweisung wird vor der Packageausführung geprüft. Wird die globale Konstante für die IfDef-Bedingung im aktuellen Package verändert, hat dies keinen Einfluss mehr auf die IfDef-Anweisung.

Sind beim Einfügen eines IfDef-Schritts mehrere aufeinanderfolgende Testschritte markiert, so werden diesen in den IfDef-Schritt hinein verschoben.

Loop

../../../_images/Utility_Schleife.png

Wählt man den Testschritt Loop aus, öffnet sich das zugehörige Dialogfenster.

In dem Feld Schleifenanzahl wird festgelegt, wie oft dieser Teil des Testfalls ausgeführt werden soll (= maximale Anzahl der Durchläufe). Hierfür können auch Variablen und arithmetische Verknüpfungen verwendet werden. Es ist nicht möglich, eine Endlosschleife durch Weglassen der Schleifenanzahl einzufügen. Die Schleifenanzahl muss immer angegeben werden.

Unter Erweiterte Optionen kann zusätlich ein Startwert sowie eine Schrittweite angegeben werden. Falls diese beiden Werte nicht gesetzt sind, werden diese mit einer 1 befüllt. Auch für diese Parameter kann eine Variable oder arithmetische Verknüpfungen verwendet werden.

Des Weiteren kann das Schleifenkonstrukt entweder von einer Eingangsbedingung abhängig gemacht oder durch eine Abbruchbedingung beendet werden. Die Bedingungen werden als boolesche Ausdrücke formuliert.

Unter Zähler speichern in lässt sich die aktuelle Anzahl von Durchläufen in eine lokale Variable speichern. Die Variable wird vor jedem Schleifendurchlauf aktualisiert.

Nach der Bestätigung mit Einfügen wird der Testschritt in den Testfall eingefügt.

Sind beim Einfügen eines Loop-Schritts mehrere aufeinanderfolgende Testschritte markiert, so werden diesen in den Schleifenrumpf verschoben.

React-On

Bedingtes Ausführen nach Fallunterscheidung.

Eine Ausführliche Beschreibung des React-On-Testschritts befindet sich im Kapitel zu parallelen Teststrängen.

Repeat-Until-SUCCESS

Der Testschritt ermöglicht eine Wiederholung von Testschritten bis deren Gesamtbewertung SUCCESS entspricht. Um Endlosschleifen zu vermeiden muss zudem eine maximale Anzahl an Versuchen angegeben werden.

Im Gegensatz zu einer Loop wirkt sich bei Repeat-Until nur der letzte Durchlauf auf die Gesamtbewertung aus.

Return

Der Testschritt bewirkt, dass das aktuelle Package an dieser Stelle beendet wird. Befindet sich der Testschritt beispielsweise bei der Testausführung in einem referenzierten Package, so wird nur das referenzierte Package verlassen, das aufrufende Package läuft normal weiter. Die Bewertung für den Testschritt Return kann beim Einfügen frei gewählt werden.

Eine eventuell konfigurierte Synchronisation und Traceanalyse wird nicht ausgeführt, wenn das Package bereits in der Precondition durch ein Return verlassen wird (siehe auch Übersicht unter Schnittstelle zur Traceanalyse). Davon abgesehen hat dieser Testschritt keinen Einfluss auf die Ausführung von Synchronisation und Traceanalyse.

Switch-Case

Der Testschritt Switch-Case stellt das gleichnamige, aus vielen Programmiersprachen bekannte, Konstrukt zur Verfügung. In Abhängigkeit des Wertes einer Variablen, können bestimmte Schritte ausgeführt werden.

../../../_images/Utility_Switch_Case_Dlg.png

Bei Ausdruck wird die Variable angegeben, die ausgewertet werden soll. Die Verzweigungen (mögliche Werte) können mit Hilfe der beiden Buttons an der rechten Seite ergänzt oder gelöscht werden. Die spezielle Verzweigung Default existiert immer und kann nicht gelöscht werden. Sie kommt zur Ausführung, wenn keine andere Verzweigung zutrifft. Durch einen Doppelklick kann der Wert aller anderen Verzweigungen bearbeitet werden.

Das Wort hinter der jeweiligen Verzweigung gibt an, ob diese Verzweigung weitere Schritte enthält (genutzt) oder derzeit leer ist (ungenutzt). Steht neu da, wurde sie gerade erst erstellt und der Dialog seitdem noch nicht wieder geschlossen.

../../../_images/Utility_Switch_Case.png

Sind beim Einfügen eines Switch-Case-Schritts mehrere aufeinanderfolgende Testschritte markiert, so werden diesen in den Default-Zweig des Switch-Case-Schritts verschoben.

SwitchDef-Case

Der Testschritt SwitchDef-Case ist eine Kombination aus den Testschritten IfDef und Switch-Case. Genau wie bei IfDef werden die Case Bedingungen gegen eine globale Konstante vor der Packageausführung getestet.

Entsprechen mehrere Case-Bedingungen der globalen Konstanten so wird genau wie bei Switch-Case nur die erste ausgeführt (implizites break). Dies ist auch im Bild ersichtlich, wobei die globale Konstante test den Wert 1 hat. Trifft keine der Case-Bedingungen zu, werden die Testschritte unter Default ausgeführt. Als Sicherheitsmaßnahme, um unerwartete Konstantenbelegungen leichter zu erkennen, kann optional eingestellt werden, dass in diesem Fall der Default-Knoten mit ERROR bewertet wird. Existiert die globale Konstante nicht, führt dies immer zu einem ERROR und weder die Default-Testschritte noch die Testschritte unter einer der Case-Bedingungen werden ausgeführt.

../../../_images/Utility_SwitchDef_Case.png ../../../_images/Utility_SwitchDef_Case_Dlg.png

Die Case-Bedingungen bzw. das Default können nicht manuell deaktiviert werden.

Wait

Wählt man den Testschritt Wait aus, öffnet sich das zugehörige Dialogfenster.

Hier kann eine Zeit oder eine Variable (bzw. eine Berechnung mit Variablen) angegeben werden, um die Ausführung der nachfolgenden Elemente im Testfall zu verzögern. Die zu verzögernde Zeit kann in Millisekunden (ms) oder Sekunden (s) angegeben werden, standardmäßig sind Millisekunden ausgewählt. Zur komfortablen Auswahl der Variablen kann das Kontextmenü durch Drücken von F8 genutzt werden.

Abschnitt Erweitert

Aktiviert man die Option Bereich kann ein zufälliger Wert aus einem definierten Wertebereich parametriert werden. Zur Ausführung wird der Wert anhand einer diskreten Gleichverteilung ermittelt. Der ermittelte Wert kann in einer Packagevariable gespeichert werden.

Nach der Bestätigung mit OK wird der Testschritt in den Testfall eingefügt.

Info

Bei der Verwendung von Simulationswerkzeugen wie MATLAB/Simulink hat der Testschritt Wait keine verzögernde Wirkung. Dieser Testschritt führt stattdessen eine Simulation für den angegebenen Zeitraum aus. Bitte verwenden Sie aus Kompatibilitätsgründen für diesen Anwendungsfall den Testschritt Simulate.

Wait for User

Info

Dieser Testschritt erfordert eine Benutzerinteraktion und kann daher nicht verwendet werden, wenn die Testausführung mit dem ecu.test Runner erfolgt, da dieser keine Möglichkeiten zur Benutzerinteraktion bietet.

In diesem Fall wird der Testschritt im Report mit ERROR bewertet.

../../../_images/Utility_WarteAufNutzer.png

Wählt man den Testschritt Wait for User aus, öffnet sich das dargestellte Dialogfenster.

Damit besteht die Möglichkeit den Testlauf zu unterbrechen, um beispielsweise nicht automatisierbare Testschritte manuell durchführen oder während des Testlaufs notwendige Veränderungen an der Testumgebung vornehmen zu können.

Dazu wird die Beschreibung der Aktion angegeben und an entsprechender Stelle im Test als Popup-Fenster angezeigt. Um mit mehrzelligen Beschreibungen arbeiten zu können, müssen diese in 3-fachen Anführungszeichen eingegeben werden. Es können auch Verknüpfungen mit Variablen vorgenommen werden.

Wenn die Variable „TextVar“ den Wert "Hallo" enthält, ergibt der Ausdruck TextVar + " Welt" während der Ausführung: "Hallo Welt"…

Es kann optional ein Time-out angegeben werden, nach dessen Ablauf der Testlauf automatisch fortgesetzt wird. Wird Bewertung vornehmen aktiviert, so liefert der Testschritt SUCCESS, wenn das Popup-Fenster vom Tester mit SUCCESS bestätigt wird und das evtl. angegebene Time-out nicht überschritten wurde, anderenfalls FAILED. Wird Nutzereingabe speichern in ausgewählt und ein Variablenname angegeben, wird der im Popup-Fenster eingetragene Kommentar des Testers in die angegebene Variable geschrieben.

Nach der Bestätigung mit OK wird der Testschritt in den Testfall eingefügt.

../../../_images/Utility_WarteAufNutzer_1.png

Im Popup-Fenster, das während des Testablaufs für den Testschritt Wait for User eingeblendet wird, kann ein Kommentar eingetragen werden, welcher im Testreport dokumentiert und ggf. in eine Variable gespeichert wird, wenn dies im Dialog des Testschritts ausgewählt wurde.

Wurde ausgewählt, dass keine Bewertung erfolgen soll, kann nur OK gewählt werden - eine Bewertung entfällt.