TTCN-3 embedded für Echtzeitsysteme
Im Unterschied zum rein funktionalen Black-Box Test, der i.d.R. nur das logisch korrekte Verhalten einer Applikation überprüft, wird beim Testen von Echtzeitanforderungen und zeitabhängigem Verhalten zusätzlich auch das Timing der Nachrichten berücksichtigt. Das heißt, Prüfgegenstand ist nicht nur die Korrektheit und Reihenfolge der Nachrichten, sondern auch der Zeitpunkte des Versendens bzw. des Empfangens einer Nachricht. Das geforderte Zeitverhalten wird dabei häufig durch die Angabe maximal zulässiger Antwortzeiten definiert. Abbildung 1 zeigt ein Testszenario, das neben dem Nachrichteninhalt(Pattern Check) und der Systemreaktion (IN_MSG) auch die Einhaltung einer definierten maximalen Antwortzeit (tMAX) überprüft (Time Check).

Abbildung 1: Black Box Test mit Überprüfung der maximalen Antwortzeit
Im klassischen TTCN-3 erfolgt die Prüfung und Steuerung zeitabhängiger Abläufe durch Timer. Ein Timer kann mit einem Wert initialisiert und gestartet werden. Einmal gestartet, läuft er rückwärts und kann zu seinem aktuellen Wert befragt werden. Ist er abgelaufen, so kann auf den entsprechenden timeout reagiert werden.
Code Beispiel 1:
timer t;
p_out.send(OUT_MSG);
t.start(t_max);
alt{
[]p_in.receive(IN_MSG_TMPL){setverdict(pass)};
[]t.timeout(){setverdict(fail)}
}
Die Realisierung des Testfalls aus Abbildung 1 ist somit zwar durch Rückgriff auf die existierenden Sprachmitteln des klassischen TTCN-3 möglich (siehe Code Beispiel 1) aber umständlich und vor allem nicht exakt. Insbesondere wird nicht die eigentliche Ankunftszeit der Nachricht vermessen, sondern nur der Zeitpunkt ihrer Überprüfung durch das Testsystem mittels der „receive“- Anweisung.
In TTCN-3 embedded kann auf die relevanten Zeitpunkte der Interaktion direkt zugegriffen werden. Das TTCN-3 embedded Testsystem ist dafür verantwortlich, die Sende- und Empfangszeitpunkte der Nachrichten zu speichern. Bei Bedarf lassen sich diese Zeitinformationen durch das Testprogramm mit Hilfe spezieller Operatoren abfragen und auswerten. Code Beispiel 2 zeigt die Realisierung einer Empfangsoperation mit den neu definierten Sprachmitteln von TTCN-3 embedded.
Code Beispiel 2:
p_out.send(OUT_MSG);
maxtime:= now + t_max;
p_in.receive(IN_MSG_TMPL) -> timestamp stamp{
if(stamp > maxtime) {setverdict(fail)}
}
setverdict(pass);
Mit Hilfe des timestamp-Operators (-> timestamp) lässt sich der exakte Empfangszeitpunkt der Nachricht OUT_MSG in die Variable stamp geschrieben. Dieser Wert wird dann in der Prüfbedingung (stamp > maxtime) mit der maximal erlaubten Ankunftszeit der Nachricht verglichen. Stimmt die Ankunftszeit nicht mit der Spezifikation überein, wird das Testurteil auf fail gesetzt, andernfalls das Testprogramm einfach fortgesetzt.
Grundsätzlich lassen sich die oben beschriebenen Operatoren auf alle Kommunikationsanweisungen in TTCN-3 anwenden. Entsprechend unterstützt TTCN-3 embedded Zeitmessung und Prüfung nicht nur für nachrichtenbasierte Kommunikation, sondern auch für prozedurorientierte Kommunikation (Client-Server, RPC). Weiterhin spiegelt das obige Beispiel nur eine Ausschnitt unser Arbeiten wieder. Eine vollständige Spezifikation der TTCN-3 embedded Konzepte wird durch die Projektpartner zur Standardisierung gebracht und anschließend öffentlich zur Verfügung gestellt. Sollten Sie Interesse an weiteren Informationen haben, wenden Sie sich bitte direkt an uns (Kontakt: Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann. ).



