Continuous Testing: Removing the Bottlenecks · PDF fileFind me on: ... • SAP IDoc, BAPI,...
Transcript of Continuous Testing: Removing the Bottlenecks · PDF fileFind me on: ... • SAP IDoc, BAPI,...
Marc van Lint
Consultant
Email: [email protected]
Find me on: http://business.vanlint5.nl/
Continuous Testing:
Removing the Bottlenecks
Business stakeholder expectationsBetter – Cheaper - Faster
In the past
• Organizations looked to find a
balance between speed, cost &
risk.
• Development teams were not as
agile as they are today; testing
never seems to have enough
time.
• Software quality suffered.
Today
• Organizations are asking teams to
release higher quality software
sooner.
• Development teams are becoming
more and more agile; testing still
never seems to have enough
time.
• Software quality continues to
suffer.
Bottom line – current approaches are not helping!Today’s testing challenges still remain
Development VelocityTesting Labor Test Lab Complexity
Outsourcing labor is no longer
a sustainable model as global
wages are increasing
Product and application
complexity are driving
test lab cost increases
Test teams can no longer
keep up with agile
development
Heterogeneous Environments
Public CloudPrivate Cloud
Data Warehouse MainframeEnterprise
Service Bus
Directory Identity
File systems
Collaboration
Web/Internet
Routing Service
Third-partyServices Portals
ContentProviders
EJB
SharedServicesArchives
Business Partners
Messaging Services
Traditional
Testing
Other costs
Testing costs
Accelerate
software delivery –
for faster time to value
Balance speed, cost,
quality and risk –
for increased capacity
to innovate
Reduce time to
customer feedback –
for improved customer
experience
IBM DevOps point of viewEnterprise capability for continuous software delivery that enables organizations to seize
market opportunities and reduce time to customer feedback
Our DevOps POV is resonating with clients and they are delivering
measurable business outcomes with DevOps
Continuous
Customer Feedback
& Optimization
Collaborative
Development
Continuous Release
and Deployment
Continuous
Monitoring
Continuous
Business Planning
Continuous
Testing
Operate Develop/ Test
Deploy
Steer
DevOpsContinuous Feedback
All the world’s a “test” stage,and all Testers merely players; They have their exits and their entrances;
The Continuous Delivery PipelineDevelopment Testing Staging Production
Business
Owners Customers
From ideation to implementation…
everyone contributes to quality!
Continuous Release & Deployment
All the world’s a “test” stage,and all Testers merely players; They have their exits and their entrances;
The Continuous Delivery PipelineDevelopment Testing Staging Production
Business
Owners Customers
Collaborative
Development
The goal:
create the
build package
Continuous
Monitoring
The goal:
production
deployment
Continuous Testingsimultaneously across multiple test environments
Everything between dev &
prod is a test stage
Quality
Gate
Security
FVT
Performance
SIT
UAT
Quality
GateBVT
Dev UT
At least 1/3 of is testing!
66
The Five Imperatives of Application Lifecycle
Management Improve organizational productivity
1. Accelerate time to delivery with Real-time Planning
2. Improve quality with Lifecycle Traceability
3. Maximize product value with In-Context Collaboration
4. Achieve predictability with Development Intelligence
5. Reduce costs with Continuous Improvement
What Testers really need!Validating today’s complex applications
Continuous Testing
DevOps Foundation
Test Automation
• Run unattended
• Validate business flows
across channels
• Durable, maintainable,
resilient to change
Orchestration from build to production deployment
• Reliable • Repeatable • Traceable
Test Environments
• Realistic & complete
- (production like)
• Available on demand
• Inexpensive to setup
What Testers really need!Validating today’s complex applications
Continuous Testing
DevOps Foundation
Test Automation
• Run unattended
• Validate business flows
across channels
• Durable, maintainable,
resilient to change
Orchestration from build to production deployment
• Reliable • Repeatable • Traceable
Test Environments
• Realistic & complete
- (production like)
• Available on demand
• Inexpensive to setup
Solving the Test Environment dilemmaMaking production-like test environments a reality
Traditional test environments are both underutilized and insufficient– Environments are expensive: hardware, software, and labor
– Tester and developer time wasted waiting for appropriate environment
Agile test environments require four enabling capabilities
Dynamic Infrastructure
Test Data
Management
Deployment
Automation
Test Environments
DevOps Foundation
Service
Virtualization
Organization Process Technology
an agile test organization and testers need continuous access to test data
with agile development you have continuous integration and delivery and have to test often
test data management software needs to support agile method by streamlining access to test dataand having insight into test data
Test Data ManagementAgile testing needs continuous access to test data
Solving the Test Environment dilemmaMaking production-like test environments a reality
Traditional test environments are both underutilized and insufficient– Environments are expensive: hardware, software, and labor
– Tester and developer time wasted waiting for appropriate environment
Agile test environments require four enabling capabilities
Dynamic Infrastructure
Test Data
Management
Deployment
Automation
Test Environments
DevOps Foundation
Service
Virtualization
Reality checkWhich answer would you pick?
How does your organization deal with testing bottlenecks due to unavailable or
missing software and services?
1. Manually write simulation stubs to emulate missing functionality.
2. Use commercial service virtualization solution.
3. Defer testing until later when the code is available to test.
4. De-scope testing of that functionality.
5. None of the above.
9%
9%
56%
6%
19%
Responses from GRUC Webcast – October 22nd, 2013
The Modern Application
•Light
•Fresh
•New
•Simple
…but still
unfortunately
connected to 20+
years of IT
legacy!
14
What is Test Virtualization?
Test Virtualization enables to create “virtual
services”:
–Virtual Services simulate the behavior of an
entire application or system during testing
–Virtual Services can run on commodity
hardware, private cloud, public cloud
–Each developer, tester can easily have their
own test environment
–Developer and testers continue to use their
testing tools (Manual, Web performance, UI test
automation)
Cap
ture & M
od
el
System dependencies are a key challenge in
setting up test environments:
Unavailable/inaccessible: Testing is constrained
due to production schedules, security restrictions,
contention between teams, or because they are still
under development
Costly 3rd party access fees: Developing or testing
against Cloud-based or other shared services can
result in costly usage fees
Impractical hardware-based virtualization:
Systems are either too difficult (mainframes) or remote
(third-party services) to replicate via traditional
hardware-based virtualization approaches
Heterogeneous Environments
Public CloudPrivate Cloud
Data Warehouse MainframeEnterprise
Service Bus
Directory Identity
File systems
Collaboration
App Under TestRouting Service
Third-partyServices Portals
ContentProviders
EJB
SharedServicesArchives
Business Partners
Messaging Services
Databases Mainframeapplications
App Under Test
Third-partyServices
Packaged apps, messaging services, etc.
Virtual Services
TestAutomation
TestManagement
GUI Appl Service Serv/DB
TestAutomation
TestManagement
GUI Appl – V2BPM
ServiceServ/DB
TestAutomation
TestManagement
BPMService
Serv/DB
TestAutomation
TestManagement
BPMService
ServiceVirtualization
TestAutomation
TestManagement
GUI Appl – V2Service
Virtualization
IBM Selenium Supporting Services incl datbases
Virtual Components replacing entire applicationsEnables testers to continuously test what they want, when they want, how they want
Continuous Testing improves software quality
Actual Service/App
Virtual Service/App
Service Virtualization is an enabler for continuous testing
Services, applications, systems are introduced into the continuous integration cycle in a prioritized, controlled fashion.
Controlled integration helps isolate defects for faster resolution.
Service virtualization enables
continuous integration testing
Virtual Components mature over timeEnables testers to continuously test what they want, when they want, how they want
• ActiveMQ
• Email (SMTP, IMAP)
• Files
• FTP/S
• HTTP/S
• WebSphere MQ
• Java RMI
• JMS
• SAP IDoc, BAPI, RFC
• Software AG’s IB & IS
• Sonic MQ
• TCP/IP
• TIBCO Rendezvous, Smart
Sockets & EMS
• CICS TG
• IMS Connect
• CentraSite
• Oracle Fusion
• SCA Domain
• Software AG IS, Broker, BPMS
• WebSphere Application Server
• WebSphere Message Broker
• WebSphere MQ
• Websphere SI Bus
• Sonic ESB
• System z (CICS and IMS)
• TIBCO ActiveMatrix
• UDDI
• Web Services
• WebSphere RR
• WSDL
• BPM
• Databases
• Log Files
• .Net Objects
• Bytes
• COBOL Copybook
• ebXML
• ASC X12
• UN/EDIFACT
• DFDL
• Fixed Width
• Java Objects
• MIME
• SOAP
• Software AG Broker Docs
• SWIFT
• CHIPS
• FedWire
• TIBCO ActiveEnterprise
• XML (DTD, XSD, WSDL)
• ISO8583
• Custom
Messaging Protocols SOA, ESB, Others Message Formats
Supported Technologies In v8.6
V8.6 – July 2014
Sample Deployment:
MQ Exit (and z MQ Exit) Recording
Component
to Simulate/
SUT
RIT(s)
MQ Queue
Manager
Exit
Client that initiates
transaction
MQ Exit is installed on the MQ
Queue Manager. Captures
inbound and outbound traffic for
recording purposes. For tests and
stubs.
Q1 Q2
Okay great… but we use “mocks”?
• “Mock” or ad-hoc stub
– 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.
• Test data is not maintained by Testers.
OAT
Performance
UAT
Sys Tests
Unit Tests
The Old World
Requirements
Quality Gate
Big Bang
• Multiple defects introduced at once
• More unknowables – greater risk
• More expensive
Performance
Service Virtualization
Requirements
Unit Tests
UAT
OAT
Integration Tests Sys TestsSys Tests
• Accelerates testing
• Reduces costs
• Lower risk
Big Bang
Virtualization - Reduces Sys Test dependencies
Solving the Test Environment dilemmaMaking production-like test environments a reality
Traditional test environments are both underutilized and insufficient– Environments are expensive: hardware, software, and labor
– Tester and developer time wasted waiting for appropriate environment
Agile test environments require four enabling capabilities
Dynamic Infrastructure
Test Data
Management
Test Environments
DevOps Foundation
Service
Virtualization
Deployment
Automation
Deployment AutomationAccelerating application delivery across the lifecycle
UrbanCode Deploy
• Automated, consistent deployments and rollbacks of applications
• Clear visibility: what is deployed where and who changed what
• Integrated with middleware, provisioning and service virtualization
What Testers really need!Validating today’s complex applications
Continuous Testing
DevOps Foundation
Orchestration from build to production deployment
• Reliable • Repeatable • Traceable
Test Environments
• Realistic & complete
- (production like)
• Available on demand
• Fast & inexpensive to
standup & setup
Test Automation
• Unattended execution
• Validation of business
flows across channels
• Durable, maintainable,
resilient to change
Unattended test executionTeams need to automate tests at every layer – integration, functional, & performance
Continuous Testing
Orchestration
Continuous Testing
InfoSphere Optim
Test Data ManagementRational Test
Virtualization
Server
Rational Test
Workbench
• Capture service
behavior and model
virtual services
• Test services and
applications long
before their user
interfaces becomes
available and do
integration testing
• Performance test,
regression test,
functional test &
integration test
• Virtualize
heterogeneous
hardware, software,
and services to
provide 24x7 testing
capabilities
• Reduce the cost of
traditional testing
environments
• Build Virtual Services
to simulate over 70+
protocols
Rational
Performance
Test Server
• Reuse Rational Test
Workbench scripts to
drive performance
testing
• Combine virtual
services and the real
implementations to
performance test
earlier
• Probe for
identification of
system bottlenecks
• Create referentially intact, “right-sized” test databases
• Automate test result comparisons to identify hidden errors
• Protect confidential data used in test, training & development
• Refresh test environments faster shortening iterative testing cycles and accelerating time to market
IBM’s continuous testing solution
Rational Quality
Manager
• Track quality using a
comprehensive and
customizable test
plan
• Link test cases with
requirements,
defects, development
work items and builds
• Author and execute
automated or manual
test scripts
• Provide up-to-date
project quality status
using customizable
dashboards
Test Data
ManagementService
Virtualization
Test
Automation
with integration to
Collaborative
Development
& Test
The IBM Continuous Testing solutionHelping organizations get higher quality software to market
Orchestration
Continuous Testing
InfoSphere Optim
Test Data ManagementRational Test
Virtualization
Server
Rational Test
Workbench
• Capture service
behavior and model
virtual services
• Test services and
applications long
before their user
interfaces becomes
available and do
integration testing
• Performance test,
regression test,
functional test &
integration test
• Compound Tests
embeds
Selenium-Web
• Virtualize
heterogeneous
hardware, software,
and services to
provide 24x7 testing
capabilities
• Reduce the cost of
traditional testing
environments
• Build Virtual Services
to simulate over 70+
protocols
Rational
Performance
Test Server
• Reuse Rational Test
Workbench scripts to
drive performance
testing
• Combine virtual
services and the real
implementations to
performance test
earlier
• Probe for
identification of
system bottlenecks
• Create referentially intact, “right-sized” test databases
• Automate test result comparisons to identify hidden errors
• Protect confidential data used in test, training & development
• Refresh test environments faster shortening iterative testing cycles and accelerating time to market
IBM’s continuous testing solution
Rational Quality
Manager
• Track quality using a
comprehensive and
customizable test
plan
• Link test cases with
requirements,
defects, development
work items and builds
• Author and execute
automated or manual
test scripts
• Provide up-to-date
project quality status
using customizable
dashboards
The IBM Continuous Testing solutionHelping organizations get higher quality software to market
What Testers really need!Validating today’s complex applications
Continuous Testing
DevOps Foundation
Orchestration from build to production deployment
• Reliable • Repeatable • Traceable
Test Environments
• Realistic & complete
- (production like)
• Available on demand
• Fast & inexpensive to
standup & setup
Test Automation
• Unattended execution
• Validation of business
flows across channels
• Durable, maintainable,
resilient to change
IBM UrbanCode Deploy orchestrates and automates the deployment
of applications, middleware configuration, and database changes into
development, test and production environments.
Databases InternalMessages
Third-partyServices
virtual components
Simultaneously
test across
multiple test
stages
Dev QA
IBM Rational Test
Virtualization Server
Combining continuous testing withOrchestration from build to productionReliable, repeatable, & traceable deployment automation
IBM UrbanCode
Deploy
IBM Rational
Test Workbench
integrated with
Test Environments
Dynamic Infrastructure
Deploy what is ready,
virtualize the rest
Continuously test in
production-like env.
Deploy private, secure
right sized test data
IBM InfoSphere
Optim Test Data Mgmt
UC Deploy Plugins
IBM Rational
Quality Manager
Manage quality across
the delivery lifecycle
Operate Develop/ Test
Deploy
Steer
DevOpsContinuous Feedback
What we covered …
33
• Tools
– ALM
– Environments
– Automation
– Deployments
• Goals
– Integration
– Standardization
– Automation
IBM Software Group | Rational software
34
IBM Positioned in Leaders Quadrant Gartner, Inc.’s 2014 Magic Quadrant for Integrated Software Quality Suites
Download the full report
* Gartner does not endorse any vendor, product or service depicted in our research publications, and does not advise technology users to select only those vendors with the highest ratings. Gartner research publications consist of the opinions of Gartner's research organization and should not be construed as statements of fact. Gartner disclaims all warranties, expressed or implied, with respect to this research, including any warranties of merchantability or fitness for a particular purpose.
"This Magic Quadrant graphic was published by Gartner, Inc. as part of a larger research note and should be evaluated in the context of the entire report. The Gartner report is available upon request from IBM."
Figure 1. Magic Quadrant for Integrated Software Quality SuitesIBM has built a broad portfolio of technology products and services over many years. The products have made strong strides during the past few years in becoming more consistent and improving ease of use.
Gartner, Inc. positioned IBM as a leader in the published
2014 Gartner Magic Quadrant for Integrated Software
Quality Suites (ISQ) report. For the report, Gartner
evaluated 14 worldwide vendors, recognizing IBM moving
to the number one spot in the leaders quadrant based on
its completeness of vision and ability to execute.
IBM are helping companies across the globe unlock the full potential of quality management & testing with our solutions:
DevOps - Continuous Testing
Continuous testing provides project teams with continuous feedback and enables them to test earlier, with greater coverage removing traditional testing bottlenecks such as unavailable
Continuous Engineering – Continuous Verification
Continuous verification is a key practice in continuous engineering. Physical and systems behavior are modeled early in the product development lifecycle, and then simulation and test technologies are applied as the design is matured—to cut rework and achieve faster time to quality.
Where to find more information?
35
http://business.vanlint5.nl
http://jazz.net
Proof of Technology
Service Virtualization
NL: 30 September
BE: 25 September
Other POTs:
- DevOps / Urbancode
- Agile Development
- SAP Testing with Rational