SOA Testing: Ahamad Patan 8 Sept 2009
SOA Testing: Ahamad Patan 8 Sept 2009
Ahamad Patan
8th Sept 2009
ahamad.patan@oracle.com
Agenda
SOA Overview
SOA Testing – An End to End Approach
Testing Web Service API’s
API Testing Strategies
Exercise
Testing Web Service Applications
SOA Testing Challenges
SOA Test Automation Approach
QA Session
SOA Overview
What is SOA?
Service-Oriented Architecture (SOA) is an architectural
style.
SOAP Web
WebService
Service
Web
WebService
Service (J2EE, PL/SQL,
(J2EE, PL/SQL,
Client
Client .NET,C/C++,
.NET,C/C++,
(J2EE,
(J2EE,.NET,
.NET, Legacy
Legacy…)
…)
PL/SQL
PL/SQL…)…)
SOA Testing
Functional Testing
API Testing
Detect errors at an early stage, right from the
requirements level.
Ensure that real-world test data is used
Automate test case execution to improve productivity
Testing web service API’s
Performance Testing
Web Services have high usage and high reuse
opportunities. Example: A service has been
identified as serving 10000 concurrent users with 5
sec of response time. Typically, services are server
side components that do not have a front end. It is
therefore useful to have a sample GUI interface that
can be used to load test the service from a web
client.
Testing web service API’s
Reusability Testing
The more a service gets reused, the greater
the impact associated with its downtime will
be.
Make sure that the APIs would work in all
possible business scenarios, thus ensuring
consumability
Testing web service API’s
Security Testing
Web Services are exposed to the outside world, this
fact opens up a host of vulnerabilities, such as DOS
(denial-of-service) attacks, penetration, high
volumes of spam data, etc. Typical security policies
have to be enforced at the network level to create
bullet proof SOA. Specific test cases aimed at
targeting these policies need to be designed to fully
test SOA security.
Testing web service API’s
Security Testing
A denial-of-service attack (DoS attack) is an
attempt to make a computer resource unavailable to
its intended users.
Prevent an Internet site or service from functioning
efficiently, temporarily or indefinitely.
Consumption of computational resources, such as
bandwidth, disk space, or processor time
Crash the operating system itself.
Testing web service API’s
Security Testing
Testing - Simulate denial-of-service attacks
Interoperability Testing
The ability of two or more systems or components
to exchange information and to use the information
that has been exchanged.
Involves different technology platforms and
development tools. Developers use many different
tools to generate the contracts (WSDL) and modify
them in the process.
Testing web service API’s
Interoperability Testing
Testing – should be tested on different
technology platforms.
Testing web service API’s
Compliance Testing
Testing to determine whether we meet some
specified standards
Validating WSDL definitions
Test Automation
Client Simulators (Message simulation)
Service Simulators
Automatic test data creation
Choosing the right test automation tool
Maintaining pool of testing resources with SOA domain knowledge
SOA Test Automation Approach
Traditional Testing Tools
GUI Testing Approach
In House Test Tools
Web Service Testing Tools
SOA Test Automation Approach
Web Services security testing that requires encrypted & singed data is not
possible
Test Plan
Description Input Value Expected Result
Functional Testing
Services specifically designed to function as independent
entities may work perfectly well in isolation, but might not
function as expected when integrated into applications due to
underlying platform and network specific issues.
Consider a sequence of web service calls made to various web
services – This should not affect the functionality.
Since SOA involves a lot of asynchronous communication
across systems, it is possible that messages will not reach their
destinations in an orderly fashion because of delays in
processing at the service provider. Some systems will respond
quickly, and some slowly, depending on the load at any given
point in time.
Testing web service Applications
Integration Testing
Testing the composite application that is built using
Performance
When a composite application is being tested for
Questions
or
Comments?
Thanks