best practices for testing soa suite 11g based systems guido schmutz
Post on 03-Apr-2018
219 Views
Preview:
TRANSCRIPT
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
1/36
Basel Baden Bern Lausanne Zrich Dsseldorf Frankfurt/M. Freiburg i. Br. Hamburg Mnchen Stuttgart Wien
Best Practices for Testing SOA Suite 11g
based systems
ODTUG 2010
Guido Schmutz,
Technology Manager /
Partner Trivadis AG
29.06.2010, Washington
http://www.odtugkaleidoscope.com/index.html -
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
2/36
2009Best Practices for Testing SOA Suite 11g based systems
Introduction
Guido Schmutz Working for Trivadis for more than 13 years
leading and independent IT service company operating in
Germany, Austria and Switzerland
Oracle ACE Director for Fusion Middleware and SOA
Co-Author of different books
Consultant, Trainer Software Architect for Java,
Oracle, SOA and EDA
More than 20 years of software development
experience
Contact: guido.schmutz@trivadis.com
Blog: http://guidoschmutz.wordpress.com/
mailto:guido.schmutz@trivadis.comhttp://guidoschmutz.wordpress.com/http://entwickler-press.de/ep/ep_buecher/pspic/cover_original/94/39390842394488241c02194.jpghttp://guidoschmutz.wordpress.com/mailto:guido.schmutz@trivadis.com -
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
3/36
2009
About Trivadis
3
Swiss IT consulting company
13 locations in Switzerland,
Germany and Austria
~ 540 employees
Key figures 2008
Services for more than 650 clients
in over 1600 projects
Over 150 service level agreements
More than 5000 trainingparticipants
Research and development budget:
CHF 6.0 Mio. / EUR 3.6 Mio.
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
4/36
2009
Agenda
Data are always
part of the game.
Introduction
Scenario with SOA Suite 11g as an
example
Unit Testing of SOA Suite 11gcomponents
Integration Testing of SOA Suite 11g
composites
Summary
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
5/36
2009
Testing of SOA solutions
Fortesting N-tier solutions some common best practices have beenestablished Unit and Integration Tests
Test Driven Development / Test-First Approach
Mock Objects
A lot of these approaches can be used/adapted fortesting SOAsolutions as well
Testing a SOA solution is as/even more important Often enterprise wide systems (backbone of an enterprise)
Many different users
Each single error can have a huge impact
Even if SOA uses a lot of existing functionality, its not enough to justtest the existing functionality A SOA adds some additional logic which needs to be tested as well!
Router, Filter, Enrichment, Orchestration, Business Process Logic, Rules,
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
6/36
2009
Challenges for testing SOA solutions
SOA environments are inherently heterogeneous
SOA solutions typically integrate a set of packaged or
custom applications
not always possible to provide a dedicated testingenvironment for all the systems involved
SOA often works asynchronously Tests are usually carried out in a synchronous way,
Business processes often depend on timed events
unit of test usually largerthan in traditional applications
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
7/36 2009
Automatic Testing
Relies on automatic, programmatic execution of the different testscenarios
results can be verified against expected results
Efficient development and execution of test cases only achievablethrough Testing Frameworks
i.E. JUnit for Java
A Testing Framework provides some common, reusable
components for Creating a test
Executing a test
Verifying test results
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
8/36 2009
Functionalities of a Testing Framework
Generator
Produces the test data
Executes the components under test
Verifier/Asserter
Compares the actual test results with the expected results
a Verifier/Assertermakes an accurate, binary decision whether a test was
successful or not
Mock/Stub
Testing component which simulates part of the system to be tested
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
9/36 2009
Focuses on one specific component of the system
Outside dependencies should be isolated as much as possible to ensure
testing of the component in isolation
Easier to achieve with low-level component
Integration issues between components may not be discovered But later integration tests can rely on well-written and (unit)tested components
Unit / Component Testing
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
10/36 2009
Integration Testing
Focuses on the interaction between multiple components
Focuses on the lower layers first
Because they have the least external dependencies
If the test fails in a component of an upper layer, its less likely that the
reason is a faulty lower layer component These have already been tested
Also referred to as
Bottom-Up Testing
Best Practices for Testing SOA Suite 11g based systems
t
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
11/36
2009
Agenda
Data are always
part of the game.
Introduction
Scenario with SOA Suite 11g as an
example
Unit Testing of SOA Suite 11gcomponents
Integration Testing of SOA Suite 11g
composites
Summary
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
12/36
2009
SOA Suite 11gR1 PS2 Architecture
12
Unified Runtime
BPMN
Policy ManagerOptimized
binding
HumanWorkflow
(+AMX, AG,Orgn)
BusinessRules
Oracle Service Bus
Common JCA-based connectivity infrastructure
Repository
EM console+BPMN Screens
BAM
B2B
Mediator
Workspace Process Portal
(WC spaces)
MS Office
BPM Studio(with Business and IT views)
Shared BPMN
Model
Business View
BPA
BPMN 2.0,
BPEL
Rich End User InteractionWeb based customization
Process Composer
BPEL
Process
Analytics
Proc Cubes
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
13/36
2009
Sample scenario
Request
Generate ID
Read customer info
Validate credit card
Internal
External
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
14/36
2009
Implementation with SOA Suite 11g
SCA composite with the Business Process and a Mediator for customerintegration
Credit card validation implemented as a service on the Oracle Service
Bus service
Routes to the right credit card institute to be called
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
15/36
2009
Artifacts to be tested
BPEL/BPMN flow logic Decisions, Orchestrations
Mediator logic
OSB flow logic
XQuery / XSL Transformations
Business Rules
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
16/36
2009
Is this good enough?
Best Practices for Testing SOA Suite 11g based systems
OSB Console
Enterprise Manager (EM)
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
17/36
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
18/36
2009
Unit testing of a SOA Suite 11g SCA component
Oracle SOA Suite 11g provides a testing framework with thefollowing features
Definition of tests, assertions and emulations via JDeveloper
Starting Tests from the EM console or via the command line using
ANT
Test Reports via EM console or via JUnit report
A test case contains
Initiation
Defines the services and operations, which will be called with test data
Emulation Defined the message or error, which will be returned from a reference or a
component
Assertion
Compares the message or part of the message against expected data
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
19/36
2009
Unit testing of an 11g SCA component
CustomerMediator called, but database access(via DB-Adapter) only simulated
Answer ofCreditCardService simulated
Allocation of the request ID simulated
Fixed and deterministic valuesare always returned
Important to be able to test
the answer with an
Asserter (Verifier) against
an expected message
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
20/36
2009
Initial message, will be
sent to the BPELcomponent (Generator)
Emulated answer from
customer service, withoutcalling the real service
(Mock)
Answer will be
tested against
the expected
message
(Verifier)Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
21/36
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
22/36
2009
Different Unit Testing Patterns
With Mediator logic
Without Mediator logic
Best Practices for Testing SOA Suite 11g based systems
With Customer Service
Mediator only
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
23/36
2009
Unit testing on an OSB service
In order to be able to test the OSB service isolated (as a unit)there must be a way to simulate the two service references
Mocks for Visa and Amexco
This way the Routing and Transformation logic can be tested
Best Practices for Testing SOA Suite 11g based systems
AmexcoVisa
Mock
Generate
Mock
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
24/36
2009
But how do I get these Mock Services?
The Unit Testing Framework of SOA Suite 11g is not available forOracle Service Bus services
Should we start implementing the Mock Services as own web
services with the language of our choice?
One advantage of SOA is the standardized definition of the
interfaces through WSDL and XSD
There are more and more utilities/tools available, simplifying some ofthe tasks with a SOA solution
Functional testing
Load testing
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
25/36
2009
soapUI
Tool for Web Service Testing
Available in a free version
Supports the Testing of SOAP as well as REST Web Services
Covers the following functionalities:
Inspection and call of web services
Functional testing of web services
Load testing of web services
Creation of Web Service Dummies (Mock Services)
http://www.soapui.org/
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
26/36
2009
Mock Service for the Visa Service
Best Practices for Testing SOA Suite 11g based systems
Mock
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
27/36
2009
Fault Response and dynamic values with soapUI
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
28/36
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
29/36
2009
Unit Testing Transformations
Best Practices for Testing SOA Suite 11g based systems
Automated Unit testing of Transformations is not supported! developers tests are possible
automated with XMLUnit ?
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
30/36
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
31/36
2009
Integration Testing of SOA solutions
All the single components are deployed and wired together in adedicated testing environment
Can be automated using Ant / WLST
connected with the corresponding test versions of the external
services
What should we do, if there is no test version available of a given
(external) service?
What should we do, if the service is not yet available?
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
32/36
2009
Integration Testing of SOA solutions
How can the behavior of an external service be influenced? So that different outcomes can be tested
to test the behavior of a SOA solution in an error case, the error situation has
to occur
How to force an (external) service to produce an error at the right moment?
The solution is again a Mock Service, which takes over the place of theexternal services
BPEL
G V
Mediator /
ESB
M
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
33/36
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
34/36
2009
Agenda
Data are always
part of the game.
Introduction
Scenario with SOA Suite 11g as an
example
Unit Testing of SOA Suite 11gcomponents
Integration Testing of SOA Suite 11g
composites
Summary
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
35/36
2009
Summary
Best Practices for testing conventional applications are valid forSOA solutions as well
Unit Testing of SCA components is well supported via the SOA
Suite 11g testing framework
Not complete yet, but already quite usable Would be nice to be able to zoom into BPEL and BPMN with unit
testing (was there in 10g)
Integration Testing can be implemented with soapUI
calling SOA Suite services Creating a Mock Service for an external service
soapUI is much more powerful than shown here
All the Tests shown can be automated
Best Practices for Testing SOA Suite 11g based systems
-
7/28/2019 Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz
36/36
Basel Baden Bern Lausanne Zrich Dsseldorf Frankfurt/M Freiburg i Br Hamburg Mnchen Stuttgart Wien
Thank you!
ODTUG 2010
Guido Schmutz,
Technology Manager /
Partner Trivadis AG
29.6.2010, Washington
top related