Professional Documents
Culture Documents
Performance
Testing
Lokesh Gulechha
Associate
Abstract
Increase in competition and leaps in technology
have forced companies to adopt innovative
approaches to have a system which performs well.
Today performance testing happens just before
product going live with very short timeframe
allocated for it which leads to missing performance
problems. With small extra efforts, efficiency of
performance testing can be increased significantly
Cognizant Technology Solutions and these extra efforts usually pay off multi-fold,
Plot No. 26, which can be achieved using Agile Performance
Testing.
Rajiv Gandhi Infotech Park,
This paper addresses performance testing using
MIDC, Hinjewadi,
agile methodology, its approach, advantage, risk
Pune-411057 (INDIA)
mitigation and many others.
+91-20-22931100
Table of Contents
8
AGILE PERFORMANCE TESTING
Today performance testing happens just before product going live with very short
timeframe allocated for it. This may lead to missing performance problems and
propagate to production and have unhappy customer.
With small extra efforts, making the process more agile, efficiency of performance
testing increases significantly – and these extra efforts usually pay off multi-fold
even before the end of performance testing. Agile Performance Testing
8
2.0 Current Performance Testing
2.1 Objective
To validate/determine the performance behaviour of the system with respect to
the end-user experience.
2.2 Approach
2.3 Risks
When major issues are found at the end of test life cycle, it becomes much more
expensive to resolve them
Agile Performance Testing
Major performance issues identified during later stages may hold up important
releases and delay the project delivery
8
2.4 Drawbacks
Performance tuning is applied to server-configurable performance parameters
(Hardware/Software). Thus, scalability issues are addressed by expensive
hardware/software resizing techniques
If code optimization is done, then one needs to go through the complete Testing
Lifecycle.
8
3.0 Agile Performance Testing
3.1 Objective
To determine the performance bugs/bottlenecks in key business processes as
early as possible during the project development cycle
Identify, isolate and fix performance bottlenecks at the component/code level
3.2 Approach
Agile Performance Testing is a three phases approach: -
8
Let’s have detail look at each of the phase: -
Unit Level Tuning
8
Application Load Tuning
8
3.3 Benefits
Iterative performance testing leads to better code, optimized for performance
Early detection of performance bugs/bottlenecks reduces the effort & duration for
performance tuning and retesting of application
8
4.0 Effort Metrics for a Release
What will be the efforts required to incorporate Agile Performance Testing?
To evaluate this, effort required is calculated based on following criteria during a
release: -
8
Scenario 1:
Effort Saving
35
30
25
Saving in %
20
15
10
0
First Run Run after CR1 Run after CR2
Testing Phase
Scenario 2:
Effort Saving
50
45
40
35
Saving in %
30
25
20
15
10
5
0
First Run Run after CR1 Run after CR2
Testing Phase
Agile Performance Testing
Scenario 3:
8
Effort Saving
50
45
40
35
Saving in %
30
25
20
15
10
5
0
First Run Run after CR1 Run after CR2
Testing Phase
Note: Value may vary based on the data used for calculation of effort saving.
Customer Satisfaction
Customers/users have higher expectation about the quality of application.
Code Tuning
8
Unit Level tuning is done early so no need for code optimization at later stage
on Testing Lifecycle.
Application Rejection
Reduces risk of the application being rejected because of issues such as Memory
Leaks, Hard Coded Values in code, Database Locking
Release Dates
Iterative Testing leads to constant awareness of the application performance and
therefore more confidence in meeting release dates.
Performance Bugs
Less Number of Performance bug(s) in subsequent phase(s).
Performance Testing Efforts
Performance Script can be re-used thus saving 60% of the efforts of Performance
Cycle.
6.0 Advantage
One Good decision at Start can cover a lot
8
» Closer interactions between developers & testers
» Access to monitor all the servers.
Challenges
» Defining accurate performance requirements.
Risks
» Incorrect performance requirements may jeopardise the testing
8.0 Conclusion
Applications are backbone of business; hence performance of application becomes
one of the key differentiators in success or failure of business. Thus performance
testing is conducted to evaluate the performance of a system with specified
performance requirements.
In current approach, performance testing happens just before application going live
with very short timeframe allocated for it. When major issues are found at the end of
test life cycle, it becomes much more expensive to resolve them which may hold up
important releases.
This calls for the solution which states - “Investigate performance early and Validate
performance last”
Agile Performance Testing does just that. With Agile Performance Testing, Project
management is constantly aware of the application performance and therefore more
confidence in meeting release dates.
Agile Performance Testing has positive outcome in risk mitigation because systems
are getting more and more complex with a dynamic technology landscape and high
standards of customer satisfaction
One Good decision at Start can cover a lot Agile Performance Testing
8
and implemented new ideas and techniques which have lead to dramatic Quality
improvement within the projects. Published following whitepapers:
1. Customer Satisfaction through Quality Index
http://www/projectperfect.com.au/info_quality_index.php
2. Sanity Testing
http://www.stickyminds.com
3. Software Testing Metrics
http://www.stickyminds.com/s.asp?F=S14789_ART_37
To reach email at: - Lokesh.gulechha@cognizant.com