SOA Testing Herausforderungen
Nach einem kurzen allgemeinen Überblick über die Thematik „SOA Testing Grundlagen“ im ersten Teil folgt nun die konkrete Beschreibung einiger Herausforderungen, die mit SOA Testing verbunden sind. Diese Herausforderungen gelten eingeschränkt auch für funktionale Tests.
Herausforderung 1: Funktionsweise
Die meisten Applikationen arbeiten nach einem einfachen Client/Server Prinzip. Die Rollen sind klar verteilt, der Client generiert, üblicherweise ausgestattet mit einer GUI (z.B. Webbrowser), eine Anfrage und der Server schickt synchron eine Antwort.
Je nach SOA Implementierung ergeben sich hierzu einige Unterschiede:
- Es existiert kein universeller SOA Client bzw. eine GUI dafür. Clients kommen meist in Form einer API abhängig von der verwendeten Technologie (z.B. Message Queueing).
- SOA Request Generierung erfolgt nicht notwendigerweise beim Enduser, sondern häufig auf einem Applikationsserver der dann z.B. via Web eine GUI zur Verfügung stellt.
- Für asynchrone Webservices (Callback Webservices) sind beide Seiten technisch gesehen gleichermaßen Client und Server. Man verwendet deswegen hier die Bezeichnung Provider (liefert Daten) und Consumer (fordert Daten an).
Herausforderung 2: Toolunterstützung
Üblicherweise werden Capture & Replay Mechanismen verwendet, um die Testimplementierung zu vereinfachen. Angesichts der beschriebenen Funktionsweisen ist das im SOA Testing meist nicht möglich.
Ein Out-of-the-Box Support aller SOA Varianten unterstützt derzeit kein Testtool, dies trifft besonders auf asynchrone und proprietäre Implementierungen zu. Eine Realisierung erfordert meist einen beträchtlichen zusätzlichen Entwicklungsaufwand (Einbindung API in das Testtool, Antwortzeiterfassung bei asynchronen Services usw.) und detailliertes technisches KnowHow.
Herausforderung 3: Technische Komplexität
Ohne Kapselung durch das Testtool wird die technische Komplexität an den Tester weitergereicht. Dies kann auch sehr spezielle Kenntnisse im weiteren IT Umfeld wie zum Beispiel der Kryptographie erfordern. Ein umfassendes Verständnis der Protokolle, Datenformate und technischen Abläufe ist Voraussetzung für einen erfolgreichen SOA Test.