Testschritte

Ein Testschritt ist eine einfache Operation, in der zumeist nur eine Anweisung ausgeführt wird. Ein Testschritt kann beispielsweise das Lesen oder Schreiben eines Wertes darstellen oder Berechnungen und Vergleiche ausführen. Alle Testschritte sind im Kapitel Aktionsfenster beschrieben.

Erwartung

In ecu.test kann für Ergebnisse von Lesen- und Berechnungs-Testschritten sowie von Job-Aufrufen eine Erwartung formuliert werden.

Dies kann durch das Setzen eines Hakens vor Erwartung erreicht werden. Daraufhin erscheinen zwei zusätzliche Tabs Erwartung und Optionen. Unter Erwartung kann die Erwartungshaltung angegeben werden, z. B. dass das Ergebnis 0 sein soll. Damit liefert der jeweilige Testschritt die Bewertungen SUCCESS oder FAILED, je nachdem ob die Erwartungshaltung erfüllt oder nicht erfüllt wurde.

Hierzu muss zunächst ausgewählt werden, um welchen Datentyp es sich handelt. Unterstützt werden z.B. Zeichenketten (String) oder Zahlen (Numeric). Daneben gibt es die beiden Spezialwerte „Wert überhaupt vorhanden“ (~Present~) und „Wert nicht vorhanden“ (~Not Present~).

Info

Diese beiden Spezialwerte werden nicht von allen Schnittstellen unterstützt.

Der Erwartungswert muss in das Textfeld eingegeben werden. Der Typ des Erwartungswerts muss zum eingestellten Datentyp passen.

Im darunterliegenden Auswahlfeld muss ein Vergleichsoperator ausgewählt werden, der die Art des Vergleiches zwischen gelesenem Wert und Erwartungswert festlegt.

Wird als Vergleichsoperator „==“ verwendet, kann zusätzlich eine Toleranz für den Erwartungswert festgelegt werden. Im Auswahlfeld unter Toleranzwert kann angegeben werden, ob der Toleranzwert prozentual oder absolut zu interpretieren ist bzw. auf wie viele Nachkommastellen Signalwert und Erwartungswert für den Vergleich gerundet werden sollen. Im Feld daneben wird dann der Toleranzwert ohne Einheit spezifiziert.

Stellt man die Auswahlbox von unterstützt auf manuell oder wählt man als Datentyp Unspecific, kann die Erwartungshaltung in einem Textfeld als Python-Ausdruck beschrieben werden. Der gelesene Wert wird dabei durch das Schlüsselwort value referenziert.

Im Folgenden sollen einige Beispiele zum Verständnis der manuellen Eingaben aufgezeigt werden:

Beispiel 1: Der gelesene Wert soll größer als 5 sein:

value > 5

Der gelesene Wert wird mit dem Erwartungswert verglichen.

Beispiel 2: Der gelesene Wert soll gleich 10 sein, zusätzlich wird eine absolute Toleranz von +/-1 angegeben:

10-1<=value<=10+1

In diesem Beispiel wird die Toleranz mit einbezogen. Der kleinstmögliche und der größtmögliche Wert werden berechnet. Der gelesene Wert muss größer oder gleich dem kleinstmöglichen und kleiner oder gleich dem größtmöglichen Wert sein.

Beispiel 3: Der gelesene Wert soll gleich 100 sein, zusätzlich wird eine Toleranz von 10% angegeben:

(1-10/100.0)*100<=value<=(1+10/100.0)*100

Hier werden ebenfalls der kleinstmögliche und der größtmögliche Wert für den Vergleich berechnet. Jedoch fließt in die Berechnung mit ein, dass die Toleranzangabe in Prozent erfolgte.

Beispiel 4: Der gelesene Wert (100.002345) soll gleich 100.002 sein, dabei werden aber nur 3 Nachkommastellen betrachtet:

round(value,3) == round(100.002,3)

Sowohl der gelesene als auch der Vergleichswert werden auf die angegebene Nachkommastelle gerundet und verglichen.

Zeitoptionen

Zeitoptionen ermöglichen es, die Testschritt-Erwartung an zeitliche Bedingungen zu knüpfen.

../../../_images/Zeitoptionen.png

Die Option Warte bis wahr bewirkt eine fortlaufende Neuberechnung der im Feld Ausdruck angegebenen Formel bis die Erwartungshaltung erfüllt (der Erwartungswert erreicht) ist. Im zugehörigen Texteingabefeld muss eine Zeitspanne angegeben werden, nach der die forlaufende Neuberechnung abbricht, wenn der Erwartungswert nicht erreicht wird. In diesem Fall wird der Testschritt mit „FAILED“ bewertet.

Die Option Wahr für mindestens bewirkt ebenfalls eine fortlaufende Neubrechnung der Formel. Im Gegensatz zu den beiden anderen Zeitoptionen wird geprüft, dass der berechnete Wert während einer definierten Zeitspanne stets mit dem Erwartungswert übereinstimmt. Differieren berechneter Wert und Erwartungswert, wird die Überprüfung abgebrochen und der Testschritt mit „FAILED“ bewertet. Die Zeitspanne kann im zugehörigen Textfeld angegeben werden. Zu beachten ist, dass die angegebene Zeitspanne grundsätzlich beim Start des Testschritts beginnt.

Die Option Wahr für mindestens … innerhalb von … ist eine Kombination der beiden anderen Zeitoptionen. Sie bewirkt die Prüfung, ob der berechnete Messwert irgendwann innerhalb der zweiten Zeitspanne (Time-out) für die Dauer der ersten Zeitspanne (Mindestdauer) mit dem Erwartungswert übereinstimmt. Dabei ist es unerheblich, wann innerhalb des Time-outs die Übereinstimmung beginnt, und ob vorher kürzere Übereinstimmungen auftreten. Vor jedem Vergleich wird die Formel neu berechnet. Die Prüfung wird abgebrochen und der Testschritt mit „SUCCESS“ bewertet, sobald der berechnete Wert die Erwartungshaltung für die Mindestdauer erfüllt hat. Die Prüfung wird ebenfalls abgebrochen, aber der Testschritt mit „FAILED“ bewertet, wenn der berechnete Wert nicht mit dem Erwartungswert übereinstimmt und die bis zum Time-out verbleibende Zeit kleiner als die Mindestdauer ist.

Die Option Nur Synchronisation (kein SUCCESS/FAILED) verhält sich analog zu Warte bis wahr, bewertet den Testschritt jedoch nicht. Unter Verwendung dieser Option kann zeitoptimal das Eintreten einer Erwartung geprüft werden die im Anschluss zur Entscheidung über die Ausführung weiterer Testschritte verwendet werden kann.

Die Option Ausführung alle n Iterationen steht nur für Lese- und Berechnungs-Testschritte zur Verfügung und kann nur dann aktiviert werden, wenn sich der Testschritt innerhalb eines Multi-Check-Testschritts befindet. In welchen Intervallen des Multi-Checks das Ergebnis überprüft wird, kann über das Eingabefeld mit der Überschrift n festgelegt werden. Wird hier bspw. 2 eingetragen, heißt das „überprüfe das Ergebnis dieses Testschritts in jeder zweiten Iteration des Multi-Checks“.

Info

Die Option Ausführung alle n Iterationen wird nicht ausgewertet, wenn der Testfall in Echtzeit ausgeführt wird. Bei der Ausführung in Echtzeit wird jeder Testschritt des Multi-Checks in jedem Modell-Schritt ausgewertet.

Die Ausführung der Zeitoptionen Warte bis wahr, Wahr für mindestens, Wahr für mindestens … innerhalb von … und Nur Synchronisation lässt sich mit der Einstellung Polling-Zyklus beeinflussen. Bei Aktivierung dieser Option bestimmt die angegebene Zeitspanne, in welchen Abständen der Ausdruck ausgewertet und das Ergebnis mit dem Erwartungswert verglichen wird. Dauert die Berechnung länger als die angegebene Zykluszeit oder ist kein Polling-Zyklus angegeben, so wird die Auswertung so schnell wie möglich wiederholt. Ein Standardwert für den Polling-Zyklus kann in der Testkonfiguration im Tab Ausführung im Abschnitt Zugriff auf Testgrößen als Wartezeit nach jedem I/O-Testschritt hinterlegt werden.

Interne API

Aus allen Testschritten heraus, in denen Variablen verwendet werden können, kann auch auf bestimmte interne ecu.test-Funktionen zugegriffen werden. Somit kann man beispielsweise abfragen, ob der vorhergehende Testschritt mit SUCCESS oder FAILED bewertet wurde oder wie der aktuelle Testreportordner lautet. Die interne API wird im Testschritt mit dem Schlüsselwort api angesprochen. Sobald dieses eingegeben wurde, gefolgt von einem Punkt, erscheint ein Dialog, der die weiteren Möglichkeiten anbietet. Im nachfolgenden Beispiel soll eine IF-THEN-ELSE-Bedingung die Bewertung des vorangegangenen Testschritts auswerten:

../../../_images/Packageeditor_Package_1.png

Info

Eine Übersicht der gesamten API befindet sich im Installationsverzeichnis von ecu.test unter Help/api/INTERNAL-API/index.html

Benutzerdefinierte Pythonfunktionen

Für bestimmte Testfälle kann es notwendig sein, eigene Pythonskripte zu verwenden. Um diese komfortabel einbinden und verwalten zu können, ist in ecu.test eine entsprechende Schnittstelle integriert. Siehe Abschnitt Benutzer-Python-Bibliothek im Kapitel Erweiterungen.