Service-enable Agile PLM with Oracle SOA Suite BPEL Process ...
Improve your Cloud Test-driven Development...Oracle SOA Cloud Service (SOA CS) ¢Full suite of...
Transcript of Improve your Cloud Test-driven Development...Oracle SOA Cloud Service (SOA CS) ¢Full suite of...
© OPITZ CONSULTING 2017
¢¢¢ überraschend mehr Möglichkeiten!
© OPITZ CONSULTING 2017
Sven Bernhardt, Danilo Schmiedel
Improve your Cloud Integrations with Test-driven Development
© OPITZ CONSULTING 2017
möglich
API Management and why it matters Seite 2
OPITZ CONSULTING - A success story since 1990¢ Mission: Help organizations leverage the possibilities of digitalization to be
different, better and faster than their competitors
¢ Owner-Managed company with¢ 400+ consultants at 11 locations in DE and PL¢ Revenue 2016: 47 Mill. €
Danilo Schmiedel
¢
¢ Managing Consultant
¢ Lead for Competence Center Cloud
About usSven Bernhardt
¢ Solution Architect
¢ Technical Lead for API Management
© OPITZ CONSULTING 2017 Seite 3
überzählige blaue Zahlenboxen löschen!
Agenda
1
2
3
4
5
Why test-driven development?
Oracle SOA CS and Oracle Developer CS
Testing in (cloud) integration projects
OC Testframework
Benefits & Wrap up
Improve your Cloud Integrations
© OPITZ CONSULTING 2017 Seite 4
Why test-driven development? 1
Improve your Cloud Integrations
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 5
Case Study - Simplified Solution Architecture
Webshop
ERP
Warehouses Carriers Suppliers
Integration Platform (SOA Suite)
Customer Service
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 6
Case Study - Problem Cloud
Transparency
Technical Monitoring
Schema Validation
Handling of technical faults
Handling of business faultsHuman Intervention
Versioning
Re-usability
System Integration
Adapter
Different Protocols
ScalabilityContinuity
Standardization
Time-to-Market
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 7
Case Study – Team Structure
ERP Team MW Team QA Team
5 People 9 People 6 People
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 8
2015 2016Jan Mrz Mai Jul Sep Nov 2016 Mrz Mai
GoLive:FoundationComponents1Feb15,2015
GoLive:FoundationComponents2Mrz22,2015
GoLive:Release1Apr12,2015
GoLive:Release2Mai24,2015
GoLive:Release3Jul19,2015
GoLive:Release4Dez7,2015
GoLive:Release5Jan20,2016
GoLive:Release6Apr19,2016
GoLive:Release7Mai3,2016
ProjectKickoff(incl.Specification)Jan5,2015
DevelopmentofallReleasescompletedSep18,2015
40days QAofRelease1
30days QAofRelease2
40days QAofRelease3
100days QAofRelease4
32days QAofRelease5
63days QAofRelease6
9days QAofRelease7
~8month
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 9
Waterfall development: Where we didn’t want to be!¢ Static and cumbersome
¢ Insufficient test automation and no budget for DevOps
¢ Releases became too complex
Source: http://blog.procademysoftware.com/agile-project-management/
Source: http://www.commonplaces.com/blog/agile-vs-waterfall-how-to-approach-your-web-development-project/
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 10
Agile development: Where we wanted to be!¢ Target approach was agile
¢ Small, incremental deliverables
¢ In-time business value generation
Source: http://blog.procademysoftware.com/agile-project-management/
Source: http://www.commonplaces.com/blog/agile-vs-waterfall-how-to-approach-your-web-development-project/
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 11
Test maturity¢ Analysis of the status quo: Where we are and where we want to be?
Minimum Target Reality
No tests
Source: https://developer.ibm.com/urbancode/docs/continuous-delivery-maturity-model/
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 12
Continuous integration / delivery
Source: https://guidelines.axonivy.com/projects/guides/wiki/Continuous_integration_delivery
Source: http://softwareengineeringdaily.com/tag/continuous-delivery/
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 13
Lessons Learned
„Never start a (cloud) integration projectwithout an appropriate DevOps approach.“
But how to establish it efficiently?
© OPITZ CONSULTING 2017 Seite 14
Oracle SOA CS and ODCS 2
Improve your Cloud Integrations
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations
Oracle Cloud Services
Source: https://cloud.oracle.com/developer/services
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations
Oracle SOA Cloud Service (SOA CS)¢ Full suite of developer tools including
OSB (Virtualization), BPEL (Orchestration), B2B, Managed File Transfer, Adapters for Connectivity, API Management
¢ Oracle manages the infrastructure
¢ Fully automated provisioning
¢ Provides complete access, so that administrators can tune, configure, and monitor the SOA environment as with on-prem
© OPITZ CONSULTING 2017 Seite 17
Demo – SOA CS
Improve your Cloud Integrations
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 18
Oracle Developer CS (ODCS)¢ Complete development platform provided as a service to enable an agile
development process and to automate DevOps & delivery
¢ Dev CS supports: Continuous Integration, Continuous Delivery and Collaboration
¢ Is included as a free entitlement with trial and paid orders of ¢ Java Cloud Service, ¢ Java Cloud Service-SaaS Extension, ¢ Messaging Cloud Service, ¢ Mobile Cloud Service, ¢ SOA Cloud Service and ¢ Application Container Cloud
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 19
Developer CS – What‘s inside? ¢ Version Management - Git
¢ Build Automation
¢ Continuous Integration - Hudson
¢ Issue Tracking
¢ Code review
¢ Deployment automation
¢ Agile process management
¢ Wiki
¢ Activity Stream
© OPITZ CONSULTING 2017 Seite 20
Demo – Developer CS
Improve your Cloud Integrations
© OPITZ CONSULTING 2017 Seite 21
Testing in (cloud) integration projects 3
Improve your Cloud Integrations
Source: http://softwareengineeringdaily.com/tag/continuous-delivery/
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 22
Challenges in integration projects¢ Complexity
¢ Distribution of systems / services
¢ Wide range of different technologies & skills
¢ Multiple data sources
¢ Test automation
¢ Deployment automation
¢ Consistent monitoring (E2E)
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 23
Testing assets in integration projects¢ Transformations
¢ XQuery¢ XSLT¢ NXSD
¢ Java¢ Java callouts¢ Custom XPath functions¢ JAX-WS / JAX-RS Web Services
¢ Services / Processes¢ Service Bus Services¢ SOA Composites
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 24
Testing areas
CRM ERP
ProcessLayer
Service Layer
(Facades)
System Layer
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 25
Elementary (Unit) tests
CRM ERP
ProcessLayer
Service Layer
(Facades)
System Layer
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 26
Service/Process component tests
CRM ERP
ProcessLayer
Service Layer
(Facades)
System Layer
ElementaryTests
ElementaryTests
ElementaryTests
Mock MockMock
MockMockMock
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 27
Service component tests
CRM ERP
ProcessLayer
Service Layer
(Facades)
System Layer
ProcessTests
ComponentTests
MockMockMock
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 28
Test layers in detail¢ Elementary Unit Tests
¢ What – Tests the atomic functionality of the implemented code¢ Goal – Provide quality feedback for the developer in short and fast cycles¢ Where – NAV and MW developer using mocks on Development environment
¢ Component Tests¢ What – Tests the integrative functionality of the implemented code¢ Goal – Provide possibility to skip blocker and continue with next component¢ Where – QA using SOAP UI tests on Test environment
¢ End-to-End Test¢ What – Tests the complete functionality of a process¢ Goal – Assure that the process is running as defined by the requirements¢ Where – QA using real applications for tests on Integration environment
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 29
Overview types of tests
Load/Performance/Stability tests
E2E tests
Process component tests
Service component tests
Transformation tests (XQuery, XSLT)
Custom Java functionalities
Pre-deployTests
Post-deployTests
Cove
rage
Exec
utio
n tim
e
Com
plex
ity
© OPITZ CONSULTING 2017 Seite 30
OC Testframework 4
Improve your Cloud Integrations
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 31
Oracle SOA OOTB testing capabilities¢ Design-time tests for transformations (XQuery, XSLT)
¢ Design-time tests for Business rules
¢ Test suites for SOA composites¢ Mocking of services/inbound messsages (Process initiation) at composite level¢ Mocking of references/outbound messages (Emulations) at composite level¢ Definition of XML assertions (Strict and similar)¢ Define tests for BPEL components on BPEL activity level
¢ Variable and fault assertions¢ Bypass blocking activities like waits¢ Assert activity executions
¢ No testing capability for Mediator, Human Task, BPMN
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 32
OC SOA Testing Framework¢ Java-based framework
¢ Developed and enhanced in several projects
¢ Uses provided Oracle APIs
¢ Supports SB Service testing
¢ Supports integration testing for SB and SOA composites
¢ Consistent integration in CI environment
¢ Earns further maturity through usage in international projects
¢ Supports SOA Suite 11g, 12c and SOA CS
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 33
Features¢ Offline testing for XQuery, XSL and NXSD
¢ Validate XML requests and responses¢ Definition of Xpath assertions¢ Definition of XML Equals assertions
¢ Call SOA composite and SB services
¢ Manage SOA composite and SB services
¢ Intercept service calls
¢ Mock services (WS, all kind of JCA adapters, Human tasks)
¢ Manipulate runtime artifacts (DVMs, SB pipeline configurations/properties)
¢ Specific functionality for BPMN process testing
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 34
Comparison Oracle OOTB Testing and OC SOA TestingOOTB OC SOA Testing
Test-driven approach - ✔
Test automation Composites only ✔
Mocking ✔ ✔
Support for test types
• UnitXSLT / XQuery design-time only
Composites ✔
Service Bus –
✔
• Isolation Composites only ✔
• Integration Manual ✔
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 35
Benefits¢ Test-Driven Development (TDD)
¢ Common approach in Java/JEE development¢ Ensures that intended behavior is tested properly
¢ Consistent testing approach
¢ Flexibility
¢ Extensibility
Anti-Pattern
© OPITZ CONSULTING 2017 Seite 36
Demo – OC Testframework
Improve your Cloud Integrations
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 37
Framework architecture¢ Build upon Oracle SOA libraries
¢ Base class for test implementations com.opitzconsulting.soa.testing.AbstractSoaTest
¢ Uses further Java libraries to simplify test development¢ XMLUnit (Validation of XML)¢ Apache HTTP Client (Invocation of services)
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 38
OC SOA Testing – SCA ServicesTest Client SOA Server
SAR
SAR (original)
SAR (manipulated)
SAR (manipulated)
Download Composite
Execute test
Upload Composite SAR (original)
SAR (original)
Mock services
Check
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 39
OC SOA Testing – SB ServicesTest Client SB Server
SBAR
Create Session
Execute test SBAR (manipulated)
Manipulate Service
Commit Session
Rollback Changes SBAR
Mock services
Check
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 40
Setup OC SOA Testing framework ¢ Create new project in DevCS (Initial repository)
¢ Adjust local Maven settings to use DevCS Maven repository
¢ Populate Maven repository¢ mvn deploy:deploy-file -DpomFile=oracle-maven-sync-12.1.3.pom -Dfile=oracle-maven-
sync-12.1.3.jar -Durl=https://developer.us2.oraclecloud.com/profile/ developer88301-deoracleem99369/s/developer88301-deoracleem99369_soa-cloud-testing_10988/maven/ -DrepositoryId=odcs
¢ mvn com.oracle.maven:oracle-maven-sync:push -Doracle-maven-sync.oracleHome=$MW_HOME -Doracle-maven-sync.serverId=odcs -P odcs
¢ Add additional libraries needed by the OC SOA Testingframework
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 41
Setup OC SOA Testing framework ¢ Commit & push your code to DevCS Git repository
¢ Deploy your artifacts to SOA CS
¢ Define the Hudson build jobs that executes tests¢ Pre-deploy test (XQuery, Xsl, Nxsd)¢ Post-deploy test (SOA composite tests, SB services)
¢ Find a detailed description with the basic steps:https://community.oracle.com/community/cloud_computing/platform-as-a-service-paas/oracle-developer-cloud-service/blog/2015/11/05/soa-cloud-service-developer-cloud-service-integration
© OPITZ CONSULTING 2017 Seite 42
Benefits & Wrap up 5
Improve your Cloud Integrations
© OPITZ CONSULTING 2017
möglich
Improve your Cloud Integrations Seite 43
Benefits¢ Consistent, straight-forward testing approach
¢ Enables DevOps for SOA CS¢ Uses the same technologies for all implementation assests¢ Supports the automation of the software development lifecycle
¢ Considers all assets of an SOA CS integration project
¢ Scalability¢ Add new testing capabilties by adding additional environments¢ Improve code quality¢ Faster development cycles
¢ Supports version upgrades and on-prem to cloud migrations covered bytests to validate the results
© OPITZ CONSULTING 2017
möglich
API Management and why it matters
We’re the engine of digital transformation
Seite 44
© OPITZ CONSULTING 2017 Seite 45Improve your Cloud Integrations
Q & A
© OPITZ CONSULTING 2017
¢¢¢ überraschend mehr Möglichkeiten!
@OC_WIRE OPITZCONSULTING opitzconsultingWWW.OPITZ-CONSULTING.COM
Seite 46
In case of any questions, please contact us!
Danilo SchmiedelManaging Consultant Solutions | Oracle ACE Director
OPITZ CONSULTING Deutschland GmbHTempelhofer Weg 64, 12347 Berlin, Germany
Phone: +49 173 7279001Mail: [email protected]
@dschmied
http://inside-bpm-and-soa.blogspot.com
Sven BernhardtSolution Architect | Oracle ACE
OPITZ CONSULTING Deutschland GmbHKirchstrasse 6, 51647 Gummersbach, Germany
Phone: +49 172 2193529Mail: [email protected]
@sbernhardt
https://svenbernhardt.wordpress.com
Improve your Cloud Integrations