Tobias Bosch, <br />Technical ArchitectMitglied SOA Competence Center<br />OPITZ CONSULTING GmbH<br />Vortrag im Rahmen de...
Agenda<br />Einleitung<br />Aktueller Tool-Status<br />Neue Möglichkeiten<br />
Leistungs-angebot<br /><ul><li>Java
SOA/BPM
ORACLE
BI/DWH
Outtasking</li></ul>Kunden<br /><ul><li>Branchen-übergreifend
Über 600 Kunden</li></ul>Tätigkeits-felder<br /><ul><li>IT-Strategie
Beratung
Implementierung
Betrieb
Training</li></ul>Fakten<br /><ul><li>Gründung 1990
400 Mitarbeiter
8 Standorte in D/PL/CH</li></ul>Industrie / Versorger / Telekommunikation 29%<br />Handel / Logistik / Dienstleistungen29%...
Was ist SOA?<br />Business-IT Alignment<br />Flexibilität<br />
Warum Testen in einer SOA?<br />Softwaretest: Fehler finden<br />Test-Stufen<br />Unittests<br />Integrationstests<br />Sy...
Unittests in der Oracle SOA Suite (1)<br />Transformationen: XQuery, XSLT<br />JUnit-Test<br />1 Reader strm = new FileRea...
Unittests in der Oracle SOA Suite (2)<br />Orchestrierung: BPMN, BPEL, OSB Flows<br />Test Suitesfor Composite Application...
End-to-End<br />Abt.2<br />Abteilung 1<br />Systemtests in der SOA-Suite<br />OSB1<br />Composite1<br />OSB2<br />Composit...
Aufruf beliebiger Services<br />Abfangen beliebiger Serviceaufrufe<br />Integrationstests in der SOA-Suite (1)<br />OSB1<b...
Testfallabhängige Mock-Services<br />Inhalt<br />Ort<br />Integrationstests in der SOA-Suite (2)<br />Composite1<br />Comp...
Zwischenstand<br />Unit-Tests:<br />XQuery, XSLT: Via API und JUnit<br />Composites: Test Suite for Composite Applications...
Aufruf beliebiger OSB Services<br />Abfangen beliebiger OSB Serviceaufrufe<br />Integrationstests mit dem OSB (1)<br />OSB...
Konfiguration von Proxy-Services<br />Aufruf beliebiger OSB Services (1)<br /><xml-fragment><br />  <ser:coreEntryisProxy=...
Konfiguration von Proxy-Services<br />Aufruf beliebiger OSB Services (2)<br /><xml-fragment><br />  <ser:coreEntryisProxy=...
Konfiguration von Business-Services<br />Abfangen von OSB Serviceaufrufen (1)<br /><xml-fragment><br />  <ser:coreEntryisP...
Konfiguration von Business-Services<br />Abfangen von OSB Serviceaufrufen (2)<br /><xml-fragment><br />  <ser:coreEntryisP...
Upcoming SlideShare
Loading in...5
×

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

640

Published on

http://www.opitz-consulting.com/go/3-5-889

SOA-Anwendungen sind verteilte Systeme und verwenden viele Schnittstellen, um zu kommunizieren: HTTP, JMS, FTP, E-Mail usw. SOA-Tests sind daher im Gegensatz zu klassischen Softwaretests ungleich komplexer. Sie müssen Anfragen an beliebige Stellen des Verbindungsnetzes abschicken und diese an anderen Stellen wieder abfangen können. Dabei definiert der Testfall, an welchen Stellen beides geschehen soll.

Der Vortrag stellt einen neuen Ansatz für SOA-Tests in der Oracle SOA-Suite unter Verwendung des Oracle Service Bus vor.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
640
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

×