SlideShare a Scribd company logo
1 of 27
Tobias Bosch,  Technical ArchitectMitglied SOA Competence Center OPITZ CONSULTING GmbH Vortrag im Rahmen der DOAG Special Interest Group SOA am 20.10.2010 SOA Testing
Agenda Einleitung Aktueller Tool-Status Neue Möglichkeiten
Leistungs-angebot ,[object Object]
SOA/BPM
ORACLE
BI/DWH
OuttaskingKunden ,[object Object]
Über 600 KundenTätigkeits-felder ,[object Object]
Beratung
Implementierung
Betrieb
TrainingFakten ,[object Object]
400 Mitarbeiter
8 Standorte in D/PL/CHIndustrie / Versorger / Telekommunikation 29% Handel / Logistik / Dienstleistungen29% 42%Öffentliche Auftraggeber / Banken & Versicherungen / Vereine & Verbände
Was ist SOA? Business-IT Alignment Flexibilität
Warum Testen in einer SOA? Softwaretest: Fehler finden Test-Stufen Unittests Integrationstests Systemtests SOA-Umgebungen Verteiltes System: Lokalisierung der Fehlerursache Flexibilität: Vermeidung von Nebenwirkungen einer Änderung Hohe Qualitätsanforderungen
Unittests in der Oracle SOA Suite (1) Transformationen: XQuery, XSLT JUnit-Test 1 Reader strm = new FileReader(xq);       2 PreparedXQuery xquery =  new XQueryContext(). prepareXQuery(strm);                   3 xquery.setNode( new QName("var1"), var1Node); 4 XMLSequence seq = xquery.executeQuery();  5 seq.next();  6 XMLNoderes = seq.getCurrentItem().getNode();
Unittests in der Oracle SOA Suite (2) Orchestrierung: BPMN, BPEL, OSB Flows Test Suitesfor Composite Applications Assert &  Reply Invoke Assert
End-to-End Abt.2 Abteilung 1 Systemtests in der SOA-Suite OSB1 Composite1 OSB2 Composite2 … Invoke Assert DB-Adapter BAM-Adapter
Aufruf beliebiger Services Abfangen beliebiger Serviceaufrufe Integrationstests in der SOA-Suite (1) OSB1 Composite1 OSB2 Composite2 Assert &  Reply Assert &  Reply Assert &  Reply Test Invoke DB Mock BAM Mock Abt2 Mock Assert
Testfallabhängige Mock-Services Inhalt Ort Integrationstests in der SOA-Suite (2) Composite1 Composite2 Assert &  Reply Assert &  Reply Assert &  Reply Test Invoke DB Mock BAM Mock Osb2 Mock Assert
Zwischenstand Unit-Tests: XQuery, XSLT: Via API und JUnit Composites: Test Suite for Composite Applications OSB:  Integrationstests: Systemtests / End-to-End Tests:  Dritthersteller Fehlt Fehlt
Aufruf beliebiger OSB Services Abfangen beliebiger OSB Serviceaufrufe Integrationstests mit dem OSB (1) OSB1 Composite1 OSB2 Composite2 Assert &  Reply Test Invoke Abt2 Mock Assert DB-Adapter BAM-Adapter
Konfiguration von Proxy-Services Aufruf beliebiger OSB Services (1) <xml-fragment>   <ser:coreEntryisProxy="true" isEnabled="true">     <ser:binding type="abstract XML"/>   </ser:coreEntry>   <ser:endpointConfig>     <tran:provider-id>file</tran:provider-id>     <tran:inbound>true</tran:inbound>     <tran:URI>       <env:value>file:///c:/temp/input</env:value>     </tran:URI>   </ser:endpointConfig>   <ser:router>     <con:flow>     ...     </con:flow>   </ser:router> </xml-fragment>
Konfiguration von Proxy-Services Aufruf beliebiger OSB Services (2) <xml-fragment>   <ser:coreEntryisProxy="true" isEnabled="true">     <ser:binding type="abstract XML"/>   </ser:coreEntry>   <ser:endpointConfig>     <tran:provider-id>http</tran:provider-id>     <tran:inbound>true</tran:inbound>     <tran:URI>       <env:value>/MyService/myUrl</env:value>     </tran:URI>   </ser:endpointConfig>   <ser:router>     <con:flow>     ...     </con:flow>   </ser:router> </xml-fragment>
Konfiguration von Business-Services Abfangen von OSB Serviceaufrufen (1) <xml-fragment>   <ser:coreEntryisProxy="false" isEnabled="true">     <ser:binding type="abstract XML"/>   </ser:coreEntry>   <ser:endpointConfig>     <tran:provider-id>file</tran:provider-id>     <tran:inbound>false</tran:inbound>     <tran:URI>       <env:value>file:///c:/temp/input</env:value>     </tran:URI>   </ser:endpointConfig> </xml-fragment>
Konfiguration von Business-Services Abfangen von OSB Serviceaufrufen (2) <xml-fragment>   <ser:coreEntryisProxy="false" isEnabled="true">     <ser:binding type="abstract XML"/>   </ser:coreEntry>   <ser:endpointConfig>     <tran:provider-id>http</tran:provider-id>     <tran:inbound>false</tran:inbound>     <tran:URI>       <env:value>/MyService/myUrl</env:value>     </tran:URI>   </ser:endpointConfig> </xml-fragment>

More Related Content

More from OPITZ CONSULTING Deutschland

OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OPITZ CONSULTING Deutschland
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OPITZ CONSULTING Deutschland
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungOPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social DistanceOC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social DistanceOPITZ CONSULTING Deutschland
 
Oracle-Lizenzierung bei Virtualisierung und in der Cloud
Oracle-Lizenzierung bei Virtualisierung und in der CloudOracle-Lizenzierung bei Virtualisierung und in der Cloud
Oracle-Lizenzierung bei Virtualisierung und in der CloudOPITZ CONSULTING Deutschland
 
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...OPITZ CONSULTING Deutschland
 

More from OPITZ CONSULTING Deutschland (20)

OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
 
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-LizenzierungOC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-Lizenzierung
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
 
OC|Weekly Talk The Power of DevOps…
OC|Weekly Talk  The Power of DevOps…OC|Weekly Talk  The Power of DevOps…
OC|Weekly Talk The Power of DevOps…
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring
 
OC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remoteOC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remote
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud Nutzung
 
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social DistanceOC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
 
OC|Weekly Talk Remote Design Thinking
OC|Weekly Talk Remote Design ThinkingOC|Weekly Talk Remote Design Thinking
OC|Weekly Talk Remote Design Thinking
 
OC|Webcast Smart Innovation am 7. April 2020
OC|Webcast Smart Innovation am 7. April 2020OC|Webcast Smart Innovation am 7. April 2020
OC|Webcast Smart Innovation am 7. April 2020
 
2020 oracle lizenznews
2020 oracle lizenznews2020 oracle lizenznews
2020 oracle lizenznews
 
Oracle-Lizenzierung bei Virtualisierung und in der Cloud
Oracle-Lizenzierung bei Virtualisierung und in der CloudOracle-Lizenzierung bei Virtualisierung und in der Cloud
Oracle-Lizenzierung bei Virtualisierung und in der Cloud
 
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
Wie baue ich eine KI, die besser als jeder Mensch ein Problem und dessen Ursa...
 

SOA Testing - DOAG Special Interest Group SOA 10-2010 - Tobias Bosch

  • 1. Tobias Bosch, Technical ArchitectMitglied SOA Competence Center OPITZ CONSULTING GmbH Vortrag im Rahmen der DOAG Special Interest Group SOA am 20.10.2010 SOA Testing
  • 2. Agenda Einleitung Aktueller Tool-Status Neue Möglichkeiten
  • 3.
  • 7.
  • 8.
  • 12.
  • 14. 8 Standorte in D/PL/CHIndustrie / Versorger / Telekommunikation 29% Handel / Logistik / Dienstleistungen29% 42%Öffentliche Auftraggeber / Banken & Versicherungen / Vereine & Verbände
  • 15. Was ist SOA? Business-IT Alignment Flexibilität
  • 16. Warum Testen in einer SOA? Softwaretest: Fehler finden Test-Stufen Unittests Integrationstests Systemtests SOA-Umgebungen Verteiltes System: Lokalisierung der Fehlerursache Flexibilität: Vermeidung von Nebenwirkungen einer Änderung Hohe Qualitätsanforderungen
  • 17. Unittests in der Oracle SOA Suite (1) Transformationen: XQuery, XSLT JUnit-Test 1 Reader strm = new FileReader(xq);       2 PreparedXQuery xquery =  new XQueryContext(). prepareXQuery(strm);                   3 xquery.setNode( new QName("var1"), var1Node); 4 XMLSequence seq = xquery.executeQuery();  5 seq.next();  6 XMLNoderes = seq.getCurrentItem().getNode();
  • 18. Unittests in der Oracle SOA Suite (2) Orchestrierung: BPMN, BPEL, OSB Flows Test Suitesfor Composite Applications Assert & Reply Invoke Assert
  • 19. End-to-End Abt.2 Abteilung 1 Systemtests in der SOA-Suite OSB1 Composite1 OSB2 Composite2 … Invoke Assert DB-Adapter BAM-Adapter
  • 20. Aufruf beliebiger Services Abfangen beliebiger Serviceaufrufe Integrationstests in der SOA-Suite (1) OSB1 Composite1 OSB2 Composite2 Assert & Reply Assert & Reply Assert & Reply Test Invoke DB Mock BAM Mock Abt2 Mock Assert
  • 21. Testfallabhängige Mock-Services Inhalt Ort Integrationstests in der SOA-Suite (2) Composite1 Composite2 Assert & Reply Assert & Reply Assert & Reply Test Invoke DB Mock BAM Mock Osb2 Mock Assert
  • 22. Zwischenstand Unit-Tests: XQuery, XSLT: Via API und JUnit Composites: Test Suite for Composite Applications OSB: Integrationstests: Systemtests / End-to-End Tests: Dritthersteller Fehlt Fehlt
  • 23. Aufruf beliebiger OSB Services Abfangen beliebiger OSB Serviceaufrufe Integrationstests mit dem OSB (1) OSB1 Composite1 OSB2 Composite2 Assert & Reply Test Invoke Abt2 Mock Assert DB-Adapter BAM-Adapter
  • 24. Konfiguration von Proxy-Services Aufruf beliebiger OSB Services (1) <xml-fragment> <ser:coreEntryisProxy="true" isEnabled="true"> <ser:binding type="abstract XML"/> </ser:coreEntry> <ser:endpointConfig> <tran:provider-id>file</tran:provider-id> <tran:inbound>true</tran:inbound> <tran:URI> <env:value>file:///c:/temp/input</env:value> </tran:URI> </ser:endpointConfig> <ser:router> <con:flow> ... </con:flow> </ser:router> </xml-fragment>
  • 25. Konfiguration von Proxy-Services Aufruf beliebiger OSB Services (2) <xml-fragment> <ser:coreEntryisProxy="true" isEnabled="true"> <ser:binding type="abstract XML"/> </ser:coreEntry> <ser:endpointConfig> <tran:provider-id>http</tran:provider-id> <tran:inbound>true</tran:inbound> <tran:URI> <env:value>/MyService/myUrl</env:value> </tran:URI> </ser:endpointConfig> <ser:router> <con:flow> ... </con:flow> </ser:router> </xml-fragment>
  • 26. Konfiguration von Business-Services Abfangen von OSB Serviceaufrufen (1) <xml-fragment> <ser:coreEntryisProxy="false" isEnabled="true"> <ser:binding type="abstract XML"/> </ser:coreEntry> <ser:endpointConfig> <tran:provider-id>file</tran:provider-id> <tran:inbound>false</tran:inbound> <tran:URI> <env:value>file:///c:/temp/input</env:value> </tran:URI> </ser:endpointConfig> </xml-fragment>
  • 27. Konfiguration von Business-Services Abfangen von OSB Serviceaufrufen (2) <xml-fragment> <ser:coreEntryisProxy="false" isEnabled="true"> <ser:binding type="abstract XML"/> </ser:coreEntry> <ser:endpointConfig> <tran:provider-id>http</tran:provider-id> <tran:inbound>false</tran:inbound> <tran:URI> <env:value>/MyService/myUrl</env:value> </tran:URI> </ser:endpointConfig> </xml-fragment>
  • 28. Integrationstests mit dem OSB (2) 1 @Test 2 public void testService1() { 3 mockOsbBizService("Osb2/Abt2Service", new Delegate() { 4 public String serviceCallReceived( 5 String serviceName, String req) throws Exception { 6 recvReq = req; 7 return "<testresp>hallo</testresp>"; 8 } 9 }); 10 String recvResp = invokeOsbProxyService( 11 “Osb1/Abt1Service1",null, 12 "<testreq>hallo</testrq>"); 13 assertEquals("<testreq>hallo</testreq>",recvReq); 14 assertEquals("<testresp>hallo</testresp>",recvResp); 15 }
  • 29. Aufruf beliebiger Composite-Services Abfangen beliebiger Composite-Serviceaufrufe Integrationstests für Composites (1) Composite1 Composite2 Assert & Reply Assert & Reply Assert & Reply Test Invoke DB Mock BAM Mock Osb2 Mock Assert
  • 30. Konfiguration von Exposed Services Aufruf beliebiger Composite-Services (1) <compositename="Project1" revision="1.0"> <servicename="Service2"> <interface.wsdlinterface="..."/> <binding.jca .../> </service> <componentname="BPEL1">...</component> <referencename="Service1"> <interface.wsdlinterface="..."/> <binding.jca .../> </reference> <wire>...</wire> ... </composite>
  • 31. Konfiguration von Exposed Services Aufruf beliebiger Composite-Services (2) <compositename="Project1" revision="1.0"> <servicename="Service2"> <interface.wsdlinterface="..."/> <binding.ws port="..." location="..."/> </service> <componentname="BPEL1">...</component> <referencename="Service1"> <interface.wsdlinterface="..."/> <binding.jca .../> </reference> <wire>...</wire> ... </composite>
  • 32. Konfiguration von Exposed Services Abfangen von Composite-Serviceaufrufen (1) <compositename="Project1" revision="1.0"> <servicename="Service2"> <interface.wsdlinterface="..."/> <binding.ws port="..." location="..."/> </service> <componentname="BPEL1">...</component> <referencename="Service1"> <interface.wsdlinterface="..."/> <binding.ws port="..." location="..."/> </reference> <wire>...</wire> ... </composite>
  • 33. Integrationstests für Composites (2) 1 @Test 2 public void testService1() { mockCompositeReference("Composite1","1.0","MyRef1", new Delegate() { 5 public String serviceCallReceived( 6 String serviceName, String req) throws Exception { 7 recvReq = req; 8 return "<r:resp>hallo</r:resp>"; 9 } 10 }); 11 String recvResp = invokeCompositeService("Composite1", 12 "1.0","Service1“,"<r:req>hallo</r:req>"); 13 assertEquals("<r:req>hallo</r:req>"), recvReq); 14 assertEquals("<r:resp>hallo</r:resp>", recvResp); 15 }
  • 34. Aufruf beliebiger Services Abfangen beliebiger Serviceaufrufe Integrationstests in der SOA-Suite OSB1 Composite1 OSB2 Composite2 Assert & Reply Assert & Reply Assert & Reply Test Invoke DB Mock BAM Mock Abt2 Mock Assert
  • 35. Take Aways Softwaretests sind Pflicht in einer SOA Unit-Tests: XQuery, XSLT: Via API und JUnit Composites: Test Suite for Composite Applications OSB: Integrationstests: Systemtests / End-to-End Tests: Dritthersteller NEU (OC) NEU (OC) NEU (OC)
  • 37. BesuchenSieauch die anderenVorträge von OPITZ CONSULTING und den Stand auf Ebene 2
  • 38. Ansprechpartner Tobias BoschOPITZ CONSULTING Technical ArchitectMitglied SOA Competence Center E-Mail: tobias.bosch@opitz-consulting.com Phone: +49 89 680096-1456