Recommending a Strategy

Performance Testing of Web Apps
Neeraj Jain
[email protected]
Cavisson Systems Inc.
Nov 21, 2009. 2-5 PM
Cavisson Proprietary and Confidential
Agenda







SDLC
Software Testing
Performance Testing
How Web Apps work?
HTTP Protocol
Performance Testing Steps
NetStorm Demo
About topic
There are three key words in the title
‘Performance Testing of Web Apps’:



Performance
Testing
Web Apps
Performance Testing of Web Apps
“A clever person solves a problem. A wise
person avoids it.”
- Albert Einstein
Performance Testing of Web Apps
Software testing is an investment with
guaranteed returns.
Performance Testing of Web Apps
Performance Software testing is an
investment with guaranteed double
digit returns.
Performance Testing of Web Apps
SDLC
SDLC

Software Development Life Cycle is


Process of creating or altering software
Models and methodologies to develop
software systems
Model of SDLC
SDLC Phases
Performance Testing of Web Apps
Software Testing
What is Software testing?
Software testing is a process of

verifying and

validating
a software application or program to make sure it

Meets the business and technical requirements that guided its
design and development, and

Works as expected.
What is Software testing?
Software testing also identifies important
 Defects,
 Flaws, or
 Errors
in the application code that must be fixed.
The modifier “important” is, well, important
because defects must be categorized by
severity.
What is Software testing?
VERIFICATION PROCESS
The verification process confirms that the software meets

Its technical specifications
A “specification” is a description of a function in terms of a
measurable output value given a specific input value under
specific preconditions.
A simple specification may be along the line of “a SQL query
retrieving data for a single account against the multi-month
account-summary table must return these eight fields <list>
ordered by month within 3 seconds of submission.”
What is Software testing?
VALIDATION PROCESS
The validation process confirms that the software meets

The business requirements
A simple example of a business requirement is “After choosing a
branch office name, information about the branch’s customer
account managers will appear in a new window.
The window will present manager identification and summary
information about each manager’s customer base: <list of data
elements>.” Other requirements provide details on how the
data will be summarized, formatted and displayed.
What is Software testing?
DEFECT FINDING
A defect is a variance between the

Expected and

Actual result
The defect’s ultimate source may be traced to a fault introduced in
the specification, design, or development (coding) phases.
Q: How many QA testers does it take to change a lightbulb?
A: QA testers don't change anything. They just report that it's dark.
What is Software testing?
Software testing answers questions that development and
code reviews can’t:

Does it really work as expected?

Does it meet the users’ requirements?

Is it what the users expect?
 Do the users like it?

Is it compatible with our other systems?

How does it perform?

How does it scale when more users are added?

Which areas need more work?

Is it ready for release?
What is Software testing?
What can we do with the answers to
these questions?

Save time and money by identifying defects early

Avoid or reduce development downtime

Provide better customer service by building a better application
 Know that we’ve satisfied our users’ requirements

Build a list of desired modifications and enhancements for later
versions

Identify and catalog reusable modules and components

Identify areas where programmers and developers need training
Types of Testing











Data set testing
Unit testing
System testing
Integration testing
Black box testing
White box testing
Module testing
Regression testing
Automation testing
User acceptance testing
Performance testing
Performance Testing of Web Apps
Performance Testing
Performance Testing
Performance Testing is done to

Determine or

Validate the
speed,
scalability, and
stability
characteristics of the system or application under test in order to
achieve desired

Response times,

Throughput, and

Resource-utilization levels
Load Testing
Load Testing is done to

Determine or

Validate
the performance characteristics of the system or application under
test by subjecting it to

Workloads and

Load volumes
anticipated during production operations.
Stress Testing
Stress Testing is done to

Determine or

Validate
performance characteristics of the system or application under test
when subjected to conditions beyond those anticipated during
production operations. Its sub categories may include:

Spike testing (short burst of extreme load)

Extreme load testing (load test with “too many” users)

Hammer testing (hit it with everything you’ve got, often with no
delays)
Goals of Performance Testing



Meet Service Level Agreements
Can system sustain in peak load times?
Application should be able to handle




Many simultaneous user requests,
Large input data from users,
Simultaneous connection to DB,
Heavy load on specific pages etc.