Testorganisation State of the Art

14:30 - 16:00 Uhr

Automatisierte Integrationstests mit Citrus 2.0

Christoph Deppisch, ConSol* Software GmbH

 

Citrus ist ein Open Source Integration Testframework, welches sich auf automatisierte Schnittstellentests von Enterprise Anwendungen spezialisiert hat. Nahezu jede Enterprise Anwendung besitzt Nachrichten-basierte Schnittstellen zu anderen Anwendungen wie zum Beispiel SOAP Web Services, JMS, FTP oder Mail Schnittstellen. In einem Integrationstest müssen diese Schnittstellenpartner entsprechend simuliert werden, was in der Testautomatisierung häufig zu hohen Test- und Entwicklungsaufwänden führt, weil mehrere Schnittstellenpartner durch selbst erstellte Mocks und Simulatoren ersetzt werden müssen. Oftmals werden dann aus Zeitmangel manuelle Tests durchgeführt, um die Funktionalität der Schnittstellen zu überprüfen, was bekanntlich sehr fehleranfällig und lückenhaft sein kann.
Citrus ist in der Lage client- und serverseitig unterschiedlichste Nachrichtenschnittstellen (synchron und asynchron) zu simulieren, ohne jeglichen Entwicklungsaufwand. Das Framework stellt fertige Komponenten zur Verfügung, welche der Tester lediglich konfiguriert und in einer Testfallbeschreibung einsetzt, um völlig automatisierte Schnittstellentests zu erstellen. Dabei unterstützt Citrus gängige Nachrichtenformate wie XML, JSON und CSV, um eingehende Nachrichten auf Syntax und Semantik zu überprüfen.
In einem typischen Testszenario wird die zu testende Anwendung in einer Testumgebung installiert und anschließend mit Citrus automatisiert getestet. Im Zusammenspiel mit Continuous Build Tools wie Jenkins kann man auf diese Art und Weise einen voll automatisierten Integrationstest aller externen Schnittstellen einer Enterprise Anwendung erreichen. Die Citrus Testfälle werden entweder als XML Testdefinitionen oder über eine Java Domain Specific Language beschrieben. Als Ausführungseinheit dient z.B. JUnit oder TestNG, so dass die Integration der Citrus Testfälle in den bestehenden Buildprozess (Maven oder ANT) mit entsprechender Generierung der Testreports sehr leicht fällt.
Der Workshop gibt eine Einführung in das Citrus Framework und die Grundprinzipien der Testautomatisierung für den Integrationstest diverser Enterprise Schnittstellen. Anhand von mehreren Beispielen werde ich aufzeigen, wie man einfach und schnell einen automatisierten, wiederholbaren Schnittstellentest einer Enterprise Anwendung erreichen kann. Der Workshop richtet sich an Softwareentwickler und -tester, die bereits Java Grundkenntnisse und erste Erfahrungen im Umgang mit XML (WSDL, XSD) mitbringen sollten.

Die vorgestellten Übungen und Live Demos kann der Teilnehmer selbstständig auf einem Laptop mit folgender vorinstallierter Software begleiten:


Agenda:
1)    Einführung in Citrus
1.1) Konzept
1.2) Konfiguration
1.2) Testfallerstellung
1.3) Beispiele (SOAP WebServices oder JMS)

2)    Einbindung in den Buildprozess
2.1) Ausführen der Citrus Tests (Kommandozeile, Entwicklungsumgebung z.B. Eclipse)
2.2) Continuous Build Integration mit Jenkins
2.3) Testreports

3)    Erfahrungsberichte aus der Praxis

Christoph Deppisch, ConSol* Software GmbH

Dipl. Inf. (FH) Christoph Deppisch arbeitet als Senior Software Consultant bei der ConSol* Software GmbH in München.

Als Softwareentwickler und technischer Projektleiter liegt sein Schwerpunkt in der Umsetzung von Java Enterprise und Middleware Integration Projekten. 2009 gründete er das Open Source Testframework Citrus und entwickelt das Tool bis zum heutigen Tag stetig weiter. Christoph vertritt das Thema Testautomatisierung mit tiefer Überzeugung und ist immer auf der Suche nach neuen und interessanten Technologien, die er in seiner täglichen Arbeit einsetzen kann.