The ability to rapidly release new product features is vital to the success of today’s businesses. To accelerate development, teams are adopting agile practices and leveraging service-oriented architectures to integrate legacy applications with other systems. At the same time, testing these composite applications can take longer and cost more. Al Wagner explains the whys and hows of service virtualization and explores ways testers can employ this technology to simulate parts of complex systems and begin testing earlier. Join Al to gain insights on which services to virtualize in order to maximize your ROI. Discover how testing at the API layer can isolate defects for faster remediation and avoid late stage integration issues. Stop waiting until the complete application is available in a test environment to begin your work. Leave with an understanding of how virtual components can make incomplete or unavailable application functionality available for testing.
What Are The Drone Anti-jamming Systems Technology?
Unleash Service Virtualization: Reduce Testing Delays
1. T3
Test Automation
5/2/2013 9:45:00 AM
Unleash Service Virtualization: Reduce
Testing Delays
Presented by:
Allan Wagner
IBM Software - Rational
Brought to you by:
340 Corporate Way, Suite 300, Orange Park, FL 32073
888-268-8770 ∙ 904-278-0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
2. Allan Wagner
Allan Wagner is a technical marketing manager and evangelist with IBM Rational, driving thought
leadership, strategic initiatives, and tangible solutions around the adoption of Rational ALM for IT and
manufactured products. Focusing specifically on quality, requirements, and test management during his
ten years of practical field experience, Al has assisted, mentored, and enabled both internal IBM and
external customer teams to address their IT application infrastructure, development, implementation, and
operations challenges. Al is a frequent conference speaker on topics of software quality products,
principles, and techniques and has authored numerous papers.
4. IBM Rational Software
Service Virtualization is…
a method to emulate the behavior of specific
and performance of
components in heterogeneous component-based
specific components in heterogeneous component-based
applications such as service-oriented architectures.
applications such as service-oriented architectures.
used to provide software development and QA/testing
teams access to dependent system components that are
needed to exercise an application under test (AUT), but
are unavailable or difficult-to-access for development
and testing purposes.
3
IBM Rational Software
Service Virtualization enables you to
create “virtual components” which…
can simulate the behavior of an entire application or
system during testing.
can run on commodity hardware, private cloud,
public cloud.
allow each developer, tester to have their own test
environment.
allow developers, testers to continue using their
testing tools (Manual, Web performance, UI test automation).
4
5. IBM Rational Software
“Unleash Service Virtualization” agenda
What?
Why?
How?
When and Where?
5
IBM Rational Software
Complexity
Multiple layers of
technology
Multiple vendor
platforms
Complex
transactions
Complex
dependencies
Multiple
stakeholders
6
6. IBM Rational Software
Testing this complexity is hard!
Application complexity is exploding:
Mainframe (one interface)
Client Server (a few interfaces)
Web/SOA/Cloud apps (100’s of interfaces)
Development and Test teams are getting
larger and more geographically disperse.
Costs are escalating and quality is
suffering.
Waterfall models and serial projects are
out, agile and continuous testing are in.
A new approach is required to keep up!
7
IBM Rational Software
And yet, we test the same way
Do you know
what’s under the
surface?
8
8
7. IBM Rational Software
The black box approach…
9
IBM Rational Software
What if you don’t have all the pieces?
10
10
8. IBM Rational Software
Blockers of early end to end testing…
“We’re still waiting for
them to deploy?”
“It is too expensive to
setup a live message
feed for test!”
“The environment
refresh takes
3 weeks!!”
“Can we begin testing
before everything
is available?”
“The dev team
hasn’t started
work on it yet!”
11
IBM Rational Software
I just spent 2 weeks
Does your organization look like this?
Write & deliver
code
Nightly build(s)
setting this up &
the build is no good??
Compile, unit test, publish
Setup integration test
environment
Developer Developer
Developer
Developer
Developer
Developer
Tester
When agility stops at integration install & configure
N days to
testing, the entire
organization hits the wall
Iteration 1 Design,
Code, Test
Weeks 2 - 6
Iteration
planning
Week 7
Iteration 2 Design,
Code, Test
Weeks 8 -12
Integration test
iteration #1
Iteration
planning
Week 1
N nightly builds are piling up
12
Integration test
iteration #2
SVT
prep
Integration Testing lags a
step behind the code
9. IBM Rational Software
Service Virtualization brings opportunities
Challenges
Quality
Inadequate testing and test
environments
Opportunities
Drive testing earlier, discover defects early
when they are cheaper to correct
Defect escapes
Automate testing that matters freeing up
resources for other value add activities
Test data consistency
Improve resource governance and control
Cost
Escalating labor costs
Reduce infrastructure required to develop
and test applications
High cost of defect fixes
Increase resource flexibility and availability
Poor asset utilization
Improve asset utilization
Time To Market
Long cycle times
Availability of resources
Provide rapid delivery of services
Allow testing when only portions of the
final solution are available
Increase levels of testing
13
13
IBM Rational Software
“Unleash Service Virtualization” agenda
What?
Why?
How?
When and Where?
14
10. IBM Rational Software
Ad-hoc stubs or “mocks”?
What is an ad-hoc stub or “mock”?
– A piece of code used to stand in for some other
programming functionality.
– A stub may simulate the behavior of existing code or be a
temporary substitute for yet-to-be-developed code.
This approach is:
• Labor intensive to write and maintain mocks.
• Requires deep knowledge of both technology and the
business logic to be emulated.
• Requires changes to application configuration when
switching to live services for testing.
• Hard to share across the entire team.
15
IBM Rational Software
Six steps to Service Virtualization success
Discover
Configure
Identify
testing painpoints
Understand
IT
technologies
Review Use
cases
Initiate ROI
Analysis
Understand
testing
methodology
Install and
configure AV
software
Configure
transactions /
Protocols
Configure
Services
Build
additional AV
test cases
16
Virtualize
Execute
specified test
cases
Listen and
capture
transactions
Build
negative test
case
Refine ROI
Model
Deploy
Model
Deploy
behavior of
models to
transactions
virtual
environment
Model
negative test Configure
cases
SUT
connections
Model
“perfect
storm” test
cases
Apply
production
metrics to
virtual models
Execute
Execute
specified test
cases
Capture test
results
Capture and
measure
results
Recommend
AV next steps
11. IBM Rational Software
Discovering what to virtualize
Technology
Component
Impact of
Unavailable
Complexity
Score
Protocol and
message format
Component
Name
Dollar cost of
impact
Scaling Factor
(1-10, low – high)
Web Service Soap over http
Credit Check
Service
$10,000
2
Web Service Soap over http
Payment
Service
$60,000
2
SAP
Journal
Entry
$100,000
6
Examples:
17
IBM Rational Software
Virtualizing the “real” behavior
Category
Simple
Hard-coded response returned for given input
Non-deterministic
One-of-n hard-coded responses
Data driven
Input and/or output data specified in external
data source (Excel, file, database)
Data model, stateful
Input and/or output data kept in data model with
complex relationships. Supports CRUD and
other stateful behaviour
Behavioural
18
Detail
Extends model-driven to provide pre-packaged
functionality, e.g. shopping basket, real-time
data feed, trading exchange, order matching
12. IBM Rational Software
Listen and capture the behavior
Physical Test Environment
Maintenance Constraints
Listen / Capture
Server/ Web Services
2hr. access window
Mainframe / MQ/CICS
Store
System Under Test
Volume Constraints
Capture
& Model
Smart Device / SD-IO
Web Services
Test Case
Repository
MQ/CICS
Volume Constraints
Smart Devices
Database / JDBC
JDBC
Virtual Environment
19
IBM Rational Software
Build a system model from recorded events
Queue.A
Queue.A.Reply
Queue.B
Clients
Queue.B.Reply
Queue.C
Queue.C.Reply
20
Application
Servers
13. IBM Rational Software
Build virtual components from design specs
Turn specifications into virtual components
HelloService
21
IBM Rational Software
Synchronization helps respond to change
Synchronization provides an interface for importing
project assets, and mirroring updates to those assets.
22
14. IBM Rational Software
Service Virtualization allows you to…
Eliminate critical development and testing constraints by
virtualizing IT resources
Deliver realistic simulated development and test
environments at a fraction of the cost
Isolate defects and drill into their root cause
Create automated regression test suites to reduce test cycle
time and improve test coverage and quality
Leverage Cloud services with Service Virtualization to
minimize infrastructure set-up time and provide scalable, ondemand infrastructure
Drive benefits across the entire application development and
test lifecycle
23
IBM Rational Software
“Unleash Service Virtualization” agenda
What?
Why?
How?
When and Where?
24
15. IBM Rational Software
Service Virtualization across the SDLC
Developer uses
virtual services to
unit test code on
their workstation
– no elaborate
environment
required
Define
constrained
systems and
services for
virtualization
Unit
Integration
Development and Test teams
uses virtual services for
early stage advanced testing
System
System Integration
User Acceptance
Operability
Operability
Performance
The full system or
components of the system
can be performance tested
early in the cycle. Virtual
services can be used when
components are not
available
Later in the cycle, final preproduction versions of
services are swapped in as
they become available. Final
testing is done against real
services
25
IBM Rational Software
The old world
Quality Gate
Requirements
Big Bang
Unit Tests
Sys Tests
UAT
• Multiple defects introduced at once
• More unknowns – greater risk
• More expensive
26
OT
Performance
16. IBM Rational Software
The new world
• Accelerates testing
• Reduces costs
• Lowers risk
Requirements
Big Bang
Unit Tests
Integration Tests
Sys
Sys Tests Tests
UAT
OT
Performance
Shift testing to the left!
27
IBM Rational Software
Incremental integration testing example
C1
Test my
own piece
Real
C3
ERP
WSDL
V
C2
3rd party
V
• Test C1 with three virtualized services.
• Quick to setup and low-cost.
• Author integration tests early
28
Database
V
Pass/Fail
17. IBM Rational Software
Incremental integration testing example
C1
Time
C3
3rd party
Database
Pass/Fail
ERP
WSDL
V
C2
V
V
Test my
own piece
Real
Integrate
w/another
Real
R
V
V
V
This won’t
slow me down!
Real
V
V
V
V
First Complete
System Test
Real
V
V
V
V
V
V
All components
Integrated!
Real
R
R
V
V
V
V
29
IBM Rational Software
Incremental integration testing example
Time
Test my
own piece
Integrate
w/another
This won’t
slow me down!
First Complete
System Test
All components –
Integrated!
The expensive
backend
All Systems UP!
30
C1
Real
C2
C3
ERP
WSDL
V
V
3rd party
Database
• Gradually integrate with expensive
Real
R
V
backend systems. V
•
systems for
RealMinimize use of backend V
V
V
testing purposes V
Real
V
V
V
V
• Process offers easy and cost effective
Real
R
R
V
V
V
defect isolation
•
RealIntegration tests are written and V
R
R
R
R
executed earlier R
Real
R
R
R
R
Pass/Fail
V
V
V
V
V
V
R
18. IBM Rational Software
Changing the performance test model
PREDICTIVE
ASSESSMENT
MONITORING
Requirements
Design
Coding
SIT
UAT
Production
ASSESSMENT
Low Intensity
Performance Testing
(LIP)
High Intensity
Performance Testing
(HIP)
Incremental integration strategy defines HIP start point;
focus of HIP is informed by LIP results
31
IBM Rational Software
Streamline your process – test continuously
Avoid time spent installing and configuring software just to
discover basic build issues
Smoke tests can be integrated as part of the continuous integration
process through deployment automation and service virtualization
Regression test results are made available to the entire team to
shorten resolution Cloud Environment
CRM
Order Mgr
Virtual Lab VM
Manager Catalog
Build
Assets
32
App Server
Virtual Machines
•Smoke Tests
•Sandboxes
•Self-provisioning
Product
Increment