Konzept und Support für das Testen von Services_Gomez_Lübke_erp_soa_gito_032008.pdfOrientierung für die Praxis
Konzept und Support für das
Testen von Services
Jorge Marx Gómez, Universität Oldenburg und Daniel Lübke,
Leibniz Universität Hannover
Jorge Marx Gómez Allgemein können Services sowohl Services können nicht einfach für
ist Professor für
Wirtschaftsinformatik an der von bestehenden Anwendungen ange- das Testen beeinflusst werden, es
Universität Oldenburg. boten werden, als auch von externen können manchmal keine Testdaten
Dienstleistern. So bieten z.B. Google verwendet werden und die Anbin-
und eBay viele ihrer Dienste als Web- dung ist langsamer als mit internen
services an. Services.
Das Haupteinsatzgebiet für SOA sind • Services sind evtl. kostenpflichtig,
Daniel Lübke ist geschäftliche Softwareanwendungen. d.h. jeder Serviceaufruf aus einem
wissenschaftlicher Diese Anwendungen sind oftmals Test muss bezahlt werden. Daher
Mitarbeiter im Fachgebiet
Software Engineering an der geschäftskritisch. Ausfälle oder Fehl- sind bei solchen Services die Anzahl
Universität Hannover. funktionen können dementsprechend der Aufrufe zu minimieren.
verheerende Folgen für das Unterneh- • SOA möchte flexibel sein, d.h. Soft-
men haben. Dies führt dazu, dass das ware wird oft geändert und muss
Testen von diesen Systemen wichtiger dementsprechend oft getestet wer-
Bestandteil des Entwicklungsprozesses den. Hierbei rentieren sich auto-
sein muss. Allerdings wird das Testen matisierte Testsuiten schneller, aber
Service-orientierte Architekturen von Anwendungen, die nach SOA-Prin- Verantwortliche müssen sich mehr
(SOA) sind ein aufstrebender Archi- zipien strukturiert sind, durch folgende Gedanken um die Ausführungsfre-
tekturstil für die Organisation von Faktoren komplizierter als das Testen quenz von nicht-automatisierbaren
Geschäftsanwendungen und gesamt- von „normalen“ Softwaresystemen: Tests machen.
en Anwendungslandschaften. Hierbei • Services sind verteilte Softwarekom- Diese Herausforderungen erzwingen
wird die Geschäftslogik als ein Satz ponenten, d.h. Tests müssen weitere die Übernahme und Anpassung von
von verteilten Softwarekomponenten, Fehlerfälle im Falle von nicht verfüg- klassischen Softwareteststrategien auf
den sogenannten Services, angeboten. baren Services und Netzwerkverbin- SOA-Anwendungen.
Solche Services können über standar- dungen beinhalten. Zudem sind ent-
disierte Schnittstellen angesprochen fernte Aufrufe deutlich langsamer Verwendung verschiedener
werden. Somit ist gewährleistet, dass als lokale Aufrufe, so dass gerade Teststufen
sie sich flexibel und aus anderen Soft- automatisierte Testsuiten länger für
wareanwendungen ansprechen lassen. die Ausführung benötigen. In Softwareprojekten wird ausgehend
Die am häufigsten verwendeten Stan- • Services können von Externen zur von den (Benutzer-)Anforderungen die
dards für die Bereitstellung und den Verfügung gestellt werden, d.h. Software entworfen, in Einheiten zer-
Aufruf von Services sind Webservices
[10]. Tabelle 1: Teststufen für verschiedene Entwicklungsprodukte
In diesem Beitrag lesen Sie: Servicekomposition Service (z. B. Java/.NET)
Unit-Test Komposition, in der alle Objekte, bei denen alle
• welche Bedeutung das Testen von Services durch Mocks ersetzt Abhängigkeiten durch Mocks
Softwareanwendungen hat, sind ersetzt sind
• welche Auswirkungen SOA-An- Integrationstest Komposition, in der Objekte, bei denen sukzessive
sukzessive die Services die Abhängigkeiten aktiviert
wendungen auf das Testen haben aktiviert werden werden
können, Systemtest Komposition mit allen Service, mit allen
• wie sinnvoll bei einer SOA eine Te- Services und vollständiger Produktivklassen und
stautomatisierung ist. Konfiguration/Deployment Konfiguration/Deployment
28 ERP Management 4 (2008) 1
J. Marx Gómez u.a.: Konzept und Support für das Testen von Services
teilt und implementiert. Analog dazu Je nach Umfeld können neue Aspekte nententests und letzteres erlaubt das
kann auf jeder dieser Ebenen gete- hinzukommen oder andere Aspekte ge- Testen der Fehlerbehandlungsroutinen
stet werden. Jede implementierte Ein- wählt werden. Wichtig ist hierbei, dass für Servicekompositionen.
heit kann einzeln in sogenannten Unit Zuständigkeiten festgelegt werden (wer Ein solches Werkzeug ist BPELUnit
Tests getestet werden. Hierbei werden testet was und wann?) und die Art der [2], welches das Erstellen und auto-
alle anderen Einheiten ausgeblendet Teststufe für den jeweiligen Test vorge- matisierte Ausführen von Tests für
und gegebenenfalls durch einfache Er- geben wird (z.B. Datentransferobjekte BPEL-Kompositionen aber auch für
satzimplementierungen (sogenannten werden in Komponententests getestet). einzelne Webservices erlaubt. Hierbei
Mocks) ersetzt. Unit Tests sollen Fehler erlaubt BPELUnit die Definition Einga-
in der Funktionsweise der einzelnen Toolsupport be- und Solldaten für Webservices. Für
Einheiten finden. BPEL-Kompositionen kann BPELUnit
Sind alle einzelnen Module getestet, Wenn die SOA-Landschaft oft um- zusätzlich das Deployment steuern
so kann man diese miteinander kom- gestaltet werden soll, z.B. um eine neue als auch benutzte Webservices durch
binieren und zusammen testen. Die- Version eines Services anzubieten oder Mocks ersetzen. Diese Mocks können
se Teststufe heißt Integrationstest. Sie um Geschäftsprozesse anzupassen, ist sowohl empfangene Daten überprüfen
dient dazu, Fehler in der Zusammen- es nötig das Testen zu optimieren um als auch Fehler in Form von SOAP-
arbeit verschiedener Softwareeinheiten möglichst schnell die neue Version der Faults an die Komposition senden.
zu finden [1]. Software in Betrieb nehmen zu kön- BPELUnit ist als Open-Source-Pro-
Wenn alle Einheiten zusammengestellt nen. Eine Option dazu ist die Automa- jekt unter http://bpelunit.org ver-
sind, liegt das ganze System vor und tisierung von Tests, was oftmals mit fügbar. Es besteht aus einem Core,
kann getestet werden. Diese Teststufe funktionalen Tests für einzelne Dienste der über verschiedene Runner ange-
heißt Systemtest und dient dazu Fehler aber auch für Servicekompositionen sprochen werden kann. Somit kann
bezüglich der Benutzeranforderungen im praktikabel möglich ist. Automatisierte BPELUnit in diverse Entwicklungsum-
endgültigen System zu finden. Tests können schnell immer wieder gebungen integriert werden. Mitge-
In SOA-Projekten gibt es verschiedene ausgeführt werden. Werden Tests oft liefert werden Runner für Eclipse [9]
Entwicklungsartefakte, die beim Testen wiederholt zahlt sich der zusätzliche (und darauf basierende Entwicklungs-
zu berücksichtigen sind. Hauptsächlich Aufwand für die Automatisierung aus. umgebungen wie ActiveBPEL Desi-
sind dies Servicekompositionen und Ser- Hierzu werden Werkzeuge benötigt, gner), ANT (für automatisierte Builds)
viceimplementierungen. Hierbei sind die die die eigene Teststrategie unter- und ein Kommandozeilen-Client.
verschiedenen Einheitstypen, wie in Ta- stützen und auf die Besonderheiten Mit solchen Tools ist es möglich
belle 1 dargestellt, zu beachten. von Service-orientierten Architekturen BPEL-Kompositionen in ihrer Gesamt-
Rücksicht nehmen. Dabei ist es vor heit als auch isoliert zu testen. Ein
Aufstellen einer Teststrategie allem wichtig, einzelne Services durch Beispiel in Anlehnung an [2] ist in Bild
Serviceimitationen auszutauschen, um 1 gezeigt: Es zeigt eine BPEL-Kom-
Die Kenntnis um die verschiedenen danach Fehlersituationen simulieren position, die verschiedene Informati-
Teststufen alleine ist aber nicht für zu können.
Lesen Sie weiter im PDF