TTCN-3 - Spezifizierung und Implementierung von Tests

Veröffentlicht auf 27. März 2009

TTCN-3 steht für Testing and Test Control Notation und ist eine eigene Programmiersprache mit einfacher Syntax zur Spezifikation und Implementierung von Testfällen und deren Ausführungsreihenfolge. Sie ist als einheitlicher Standard vom European Telecommunications Standards Institute (ETSI) definiert und wird ständig weiterentwickelt.
Sie unterstützt verteilte Systeme, parallele Ausführung von Komponenten, dynamische Bindung zur Laufzeit, synchrone und asynchrone Kommunikation, messagebasiertes sowie prozedurbasiertes Blackbox-Testen über wohldefinierte Schnittstellen (Ports).
Für die Datenformate Abstract Syntax Notation One (ASN.1), Interface Description Language (IDL) und Extended Markup Language (XML) können gibt es ein vollautomatisches Mapping zur Konvertierung nach TTCN-3.

Testfälle können sowohl im Editor wie auch grafisch entwickelt werden. Des weiteren existiert auch eine tabellarische Variante, die jedoch in der Praxis kaum Anwendung findet.
Um die Kompatibilität zu verschiedenen Systemen unter Test (SUT), Entwicklungsumgebungen (IDE), Plattformen und Codecs sicherzustellen existieren Interfaces (Runtime Interface, Control Interface), die eine einfache Anpassung an bestehende und sich schnell verändernde Systeme oder Rahmenbedingungen ermöglichen.

Die Sprache selbst beinhaltet die üblichen Datentypen, "verdicts"-Typen zur Bestimmung des Testergebnisses, Timerfunktionen, Ports zur Kommunikation zwischen den Komponenten (Uni-/Multi-/Broadcast), Templates zum Versenden und Verifizieren der Ein- und Ausgabedaten, Testfall- und sonstige Funktionen.
Allgemein wir viel Wert auf hohe Wiederverwendbarkeit und Modularität gelegt. Einmal angelegte eigene Datentypen, Komponenten, Templates etc. werden nur noch modifiziert oder aus anderen Elementen importiert.

TTCN-3 kann für Modultests, Integrationstests, Funktionstests, Konformitätstests, Lasttests und Skalierungstests eingesetzt werden.

In der Benutzung sehe ich folgende Vorteile:
* Hohe Modularität und Wiederverwendung
* Leichte Anpassbarkeit an sich verändernde Bedingungen
* Grafische Erstellung von Tests (Spezifikation und Teil-Implementierung)
* Leichte Lesbarkeit
* Viele Schnittstellen zu anderen Programmiersprachen oder Datenformaten
* Einfache Simulation von anderen Komponenten, ideal für Integrationstests
* Vollautomatisierte Testsuits
* Breite Anwendungsmöglichkeiten (Funktional bis hin zu Performancetests)
* Werkzeugunterstützung
* Offener Standard
* Viele Komponenten/Adapter/Protokolle etc bereits verfügbar, z.T kostenlos
* Ideal für Test in komplexen HW/SW-Systemen mit sich schnell ändernden Rahmenbedingungen

Aber auch folgende Nachteile:
* Wenig Lösungswege ("There's only one way to do it.")
* Hohe Komplexität
* Testfälle können nur von Testingenieuren mit Programmiererfahrung implementiert werden
* Nicht alles ist standardisiert, da auch ein Standard nicht alle Aspekte erfassen kann
* Für Test mit einfachen Systemen und einfachen Rahmenbedingungen existiert zu viel Overhead im Vergleich mit anderen Tools
* Wenig integriert in Werkzeuge außerhalb von TTCN-3
* Leichte Performanzprobleme?

Weitere Informationen und Downloads gibt es unter:
http://www.ttcn-3.org


Buchtipp:

TTCN-3
Titel: An Introduction to TTCN-3
Autoren: Colin Willcock, Thomas Deiß, Stephan Tobies, Stephan Schulz, Stefan Keil, Federico Engler
Verlag: Wiley & Sons
Weiterführende Informationen für Fortgeschrittene und Nachschlagewerk

Geschrieben von Robert Bullinger

Veröffentlicht in #Testautomatisierung

Kommentiere diesen Post