Contenu connexe Similaire à Test driven cloud development using Oracle SOA CS and Oracle Developer CS (20) Plus de Sven Bernhardt (20) Test driven cloud development using Oracle SOA CS and Oracle Developer CS1. © OPITZ CONSULTING GmbH 2016 Slide 1Test-Driven Cloud Development
September 2016
Test-Driven Cloud Development
Danilo Schmiedel
Solution Architect | Oracle ACE Director
OPITZ CONSULTING Deutschland GmbH
Sven Bernhardt
Solution Architect | Oracle ACE
OPITZ CONSULTING Deutschland GmbH
Using Oracle SOA Cloud Service and Oracle Developer Cloud Service
2. © OPITZ CONSULTING GmbH 2016 Slide 2Test-Driven Cloud Development
Oracle SOA 12c @ Opitz
- First Oracle SOA / BPEL project in 2006
- Implemented multiple 10g to 11g projects
- Wide knowledge with Side-by-Side
upgrades based on Enterprise
Deployment Guide
n Oracle Platinum Partner, founded in 1990,
located in Germany and Poland
n Specialized in many products across the Oracle
portfolio
n 2 Oracle ACE Directors and 2 Oracle ACEs
n Recognized as one of the leading Oracle
Fusion Middleware Partners
n 2015 & 2014: BPM Partner Community Award
2010: Fusion Middleware Award
2008 – 2010: EMEA SOA Community Award
About OPITZ CONSULTING
- Experienced with In-Place Upgrades
long running / stateful processes with
minimal downtime
- Products included in upgraded
solutions:
- Oracle SOA Suite12c
- Oracle OSB 12c
- Oracle BAM 12c
3. © OPITZ CONSULTING GmbH 2016 Slide 3Test-Driven Cloud Development
Agenda
1. Why test-driven development?
2. Oracle SOA CS and Oracle Developer CS
3. Testing in (cloud) integration projects
4. OC Testframework
5. Demo
6. Benefits
4. © OPITZ CONSULTING GmbH 2016 Slide 4Test-Driven Cloud Development
1 Why test-driven development?
5. © OPITZ CONSULTING GmbH 2016 Slide 5Test-Driven Cloud Development
Case Study #1 - Simplified Solution Architecture
Webshop
ERP
Warehouses Carriers Suppliers
Integration Platform (SOA Suite)
Customer Service
6. © OPITZ CONSULTING GmbH 2016 Slide 6Test-Driven Cloud Development
Case Study #1 - 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
7. © OPITZ CONSULTING GmbH 2016 Slide 7Test-Driven Cloud Development
Case Study #1 – Team Structure
ERP Team MW Team QA Team
5 People 9 People 6 People
8. © OPITZ CONSULTING GmbH 2016 Slide 8Test-Driven Cloud Development
2015 2016Jan Mrz Mai Jul Sep Nov 2016 Mrz Mai
GoLive: Foundation Components 1
Feb 15, 2015
GoLive: Foundation Components 2
Mrz 22, 2015
GoLive: Release 1
Apr 12, 2015
GoLive: Release 2
Mai 24, 2015
GoLive: Release 3
Jul 19, 2015
GoLive: Release 4
Dez 7, 2015
GoLive: Release 5
Jan 20, 2016
GoLive: Release 6
Apr 19, 2016
GoLive: Release 7
Mai 3, 2016
Project Kick off (incl. Specification)
Jan 5, 2015
Development of all Releases completed
Sep 18, 2015
40 days QA of Release 1
30 days QA of Release 2
40 days QA of Release 3
100 days QA of Release 4
32 days QA of Release 5
63 days QA of Release 6
9 days QA of Release 7
~ 8 month
9. © OPITZ CONSULTING GmbH 2016 Slide 9Test-Driven Cloud Development
Case Study #1 – Project Approach (Target)
n Target approach was agile
n Small, incremental deliverables
n 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/
10. © OPITZ CONSULTING GmbH 2016 Slide 10Test-Driven Cloud Development
Case Study #1 – Project Approach (Reality)
n Static and cumbersome
n Insufficient test automation and no budget for DevOps
n 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/
11. © OPITZ CONSULTING GmbH 2016 Slide 11Test-Driven Cloud Development
Test maturity
n Analysis of the status quo: Where we are and where we want to be?
Source: https://developer.ibm.com/urbancode/docs/continuous-delivery-maturity-model/
Minimum TargetReality
No tests
12. © OPITZ CONSULTING GmbH 2016 Slide 12Test-Driven Cloud Development
Continuous integration / delivery
Source:
https://guidelines.axonivy.com/projects/guides/wiki/Cont
inuous_integration_delivery
Source: http://softwareengineeringdaily.com/tag/continuous-delivery/
13. © OPITZ CONSULTING GmbH 2016 Slide 13Test-Driven Cloud Development
„ “Never start a (cloud) integration project
without an appropriate DevOps approach.
But how to establish it efficiently?
14. © OPITZ CONSULTING GmbH 2016 Slide 14Test-Driven Cloud Development
2 Oracle SOA CS and Oracle Developer CS
15. © OPITZ CONSULTING GmbH 2016 Slide 15Test-Driven Cloud Development
Oracle Cloud Services
Source: https://cloud.oracle.com/developer/services
16. © OPITZ CONSULTING GmbH 2016 Slide 16Test-Driven Cloud Development
Oracle SOA CS
n Full suite of developer tools
including OSB (Virtualization),
BPEL (Orchestration), B2B,
Managed File Transfer,
Adapters for Connectivity, API
Management
n Oracle manages the
infrastructure
n Fully automated provisioning
n Provides complete access, so
that administrators can tune,
configure, and monitor the SOA
environment as with on-prem
17. © OPITZ CONSULTING GmbH 2016 Slide 17Test-Driven Cloud Development
Oracle Developer CS
n Complete development platform provided as a service to enable
an agile development process and to automate DevOps & delivery
n Dev CS supports:
Continuous Integration, Continuous Delivery and Collaboration
n Is included as a free entitlement with trial and paid orders of
n Java Cloud Service,
n Java Cloud Service-SaaS Extension,
n Messaging Cloud Service,
n Mobile Cloud Service,
n SOA Cloud Service and
n Application Container Cloud
18. © OPITZ CONSULTING GmbH 2016 Slide 18Test-Driven Cloud Development
Developer CS – What‘s inside?
n Version Management - Git
n Build Automation
n Ant, Maven, Gradle, npm, Grunt,
Bower, Gulp, Command line
n Continuous Integration - Hudson
n Issue Tracking
n Code review
n Deployment automation
n Agile process management
n Wiki
n Activity Stream
19. © OPITZ CONSULTING GmbH 2016 Slide 19Test-Driven Cloud Development
3 Testing in (cloud)
integration projects
Source: http://softwareengineeringdaily.com/tag/continuous-delivery/
20. © OPITZ CONSULTING GmbH 2016 Slide 20Test-Driven Cloud Development
Challenges in (cloud) integration projects
n Complexity
n Distribution of systems / services
n Wide range of different technologies & skills
n Multiple data sources
n Test automation
n Deployment automation
n Consistent monitoring (E2E)
21. © OPITZ CONSULTING GmbH 2016 Slide 21Test-Driven Cloud Development
Testing assets in SOA CS
n Transformations
n XQuery
n XSLT
n NXSD
n Java
n Java callouts
n Custom XPath functions
n JAX-WS / JAX-RS Web Services
n Services / Processes
n Service Bus Services
n SOA Composites
22. © OPITZ CONSULTING GmbH 2016 Slide 22Test-Driven Cloud Development
Testing areas
CRM ERP
Process
Layer
Service
Layer
(Facades)
System
Layer
23. © OPITZ CONSULTING GmbH 2016 Slide 23Test-Driven Cloud Development
Elementary (Unit) tests of transformations and custom Java functionalities
CRM ERP
Process
Layer
Service
Layer
(Facades)
System
Layer
24. © OPITZ CONSULTING GmbH 2016 Slide 24Test-Driven Cloud Development
Service/Process component tests on local Dev Environments
CRM ERP
Process
Layer
Service
Layer
(Facades)
System
Layer
Elementary
Tests
Elementary
Tests
Elementary
Tests
Mock MockMock
MockMockMock
25. © OPITZ CONSULTING GmbH 2016 Slide 25Test-Driven Cloud Development
CRM ERP
Process
Layer
Service
Layer
(Facades)
System
Layer
Process
Tests
Component
Tests
MockMockMock
Service component tests on shared Test Environment
26. © OPITZ CONSULTING GmbH 2016 Slide 26Test-Driven Cloud Development
CRM ERP
Process
Layer
Service
Layer
(Facades)
System
Layer
End-to-End
Tests
End-to-End Tests on Integration Environments
27. © OPITZ CONSULTING GmbH 2016 Slide 27Test-Driven Cloud Development
Types of tests
Load/Performance/Stability tests
E2E tests
Process component tests
Service component tests
Transformation tests (XQuery, XSLT)
Custom Java functionalities
Pre-deploy
Tests
Post-deploy
Tests
Coverage
Executiontime
Complexity
29. © OPITZ CONSULTING GmbH 2016 Slide 29Test-Driven Cloud Development
Oracle SOA OOTB testing capabilities
n Design-time tests for transformations (XQuery, XSLT)
n Design-time tests for Business rules
n Test suites for SOA composites
n Mocking of services/inbound messsages (Process initiation) at composite level
n Mocking of references/outbound messages (Emulations) at composite level
n Definition of XML assertions (Strict and similar)
n Define tests for BPEL components on BPEL activity level
n Variable and fault assertions
n Bypass blocking activities like waits
n Assert activity executions
n No testing capability for Mediator, Human Task, BPMN
30. © OPITZ CONSULTING GmbH 2016 Slide 30Test-Driven Cloud Development
OC SOA Testing Framework
n Java-based framework
n Developed and enhanced in several projects
n Uses provided Oracle APIs
n Supports SB Service testing
n Supports integration testing for SB and SOA composites
n Consistent integration in CI environment
n Earns further maturity through usage in international projects
n Supports SOA Suite 11g and 12c
31. © OPITZ CONSULTING GmbH 2016 Slide 31Test-Driven Cloud Development
Features
n Execute XQuery, Xsl and Nxsd tests
n Validate XML requests and responses
n Call services
n Intercept service calls
n Mock services (WS, JCA adapters, Human tasks)
n Manipulate runtime artifacts (DVMs, SB pipeline
configurations/properties)
n Check execution of BPMN audit trail (activty execution, etc.)
32. © OPITZ CONSULTING GmbH 2016 Slide 32Test-Driven Cloud Development
Comparison OOTB Testing vs. OC SOA Testing
OOTB OC SOA Testing
Test-driven approach - ✔
Test automation Composites only ✔
Mocking ✔ ✔
Support for test types
• Unit
XSLT / XQuery design-time only
Composites ✔
Service Bus –
✔
• Isolation Composites only ✔
• Integration Manual ✔
33. © OPITZ CONSULTING GmbH 2016 Slide 33Test-Driven Cloud Development
Benefits
n Test-Driven Development (TDD)
n Common approach in Java/JEE development
n Ensures that intended behavior is tested properly
n Consistent testing approach
n Flexibility
n Extensibility
Anti-Pattern
34. © OPITZ CONSULTING GmbH 2016 Slide 34Test-Driven Cloud Development
OC SOA Testing – SOA Composites
Test Client SOA Server
SAR
SAR
(original)
SAR
(manipulated)
SAR
(manipulated)
Download Composite
Execute test
Upload Composite
SAR (original)
SAR (original)
Mock services
Check
35. © OPITZ CONSULTING GmbH 2016 Slide 35Test-Driven Cloud Development
OC SOA Testing – SB Services
Test Client SB Server
SBAR
Create Session
Execute test SBAR
(manipulated)
Manipulate Service
Commit Session
Rollback Changes SBAR
Mock services
Check
37. © OPITZ CONSULTING GmbH 2016 Slide 37Test-Driven Cloud Development
Setup 1/2
n Create new project in DevCS (Initial repository)
n Adjust local Maven settings to use DevCS Maven repository
n Populate Maven repository
n 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
n mvn com.oracle.maven:oracle-maven-sync:push -Doracle-maven-
sync.oracleHome=$MW_HOME -Doracle-maven-sync.serverId=odcs -P odcs
n Add additional libraries needed by the OC SOA Testingframework
38. © OPITZ CONSULTING GmbH 2016 Slide 38Test-Driven Cloud Development
Setup 2/2
n Commit & push your code to DevCS Git repository
n Deploy your artifacts to SOA CS
n Define the Hudson build jobs that executes tests
n Pre-deploy test (XQuery, Xsl, Nxsd)
n Post-deploy test (SOA composite tests, SB services)
n 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
40. © OPITZ CONSULTING GmbH 2016 Slide 40Test-Driven Cloud Development
Benefits
n Consistent, straight-forward testing approach
n Enables DevOps for SOA CS
n Uses the same technologies for all implementation assests
n Supports the automation of the software development lifecycle
n Considers all assets of an SOA CS integration project
n Scalability
n Add new testing capabilties by adding additional environments
n Improve code quality
n Faster development cycles
n Supports version upgrades and on-prem to cloud migrations
covered by tests to validate the results
42. © OPITZ CONSULTING GmbH 2016 Slide 42Test-Driven Cloud Development
Contact Details
Danilo Schmiedel
Solution Architect | Oracle ACE Director
OPITZ CONSULTING Deutschland GmbH
Tempelhofer Weg 64, 12347 Berlin, Germany
http://www.opitz-consulting.com
Phone: +49 173 7279001
Mail: danilo.schmiedel@opitz-consulting.com
@dschmied
http://inside-bpm-and-soa.blogspot.com & http://thecattlecrew.net
43. © OPITZ CONSULTING GmbH 2016 Slide 43Test-Driven Cloud Development
Contact Details
Sven Bernhardt
Solution Architect | Oracle ACE
OPITZ CONSULTING Deutschland GmbH
Kirchstrasse 6, 51647 Gummersbach, Germany
http://www.opitz-consulting.com
Phone: +49 172 2193529
Mail: sven.bernhardt@opitz-consulting.com
@sbernhardt
https://svenbernhardt.wordpress.com & http://thecattlecrew.net