Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz

download Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz

of 36

Transcript of Best Practices for Testing SOA Suite 11g Based Systems Guido Schmutz

  • 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: [email protected]

    Blog: http://guidoschmutz.wordpress.com/

    mailto:[email protected]://guidoschmutz.wordpress.com/http://entwickler-press.de/ep/ep_buecher/pspic/cover_original/94/39390842394488241c02194.jpghttp://guidoschmutz.wordpress.com/mailto:[email protected]
  • 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