Performance
Testing of an application ensures its responsiveness, reliability, throughput
and future scalability under a certain workload. Performance testing determines
the following for an application.
- Assess readiness for production.
- Compare performance against
performance criteria.
- Find performance issues.
- Determine throughput levels.
Performance Testing
can be divided into the following test activities:
- Performance Test: It is a
technical investigation that determines characteristics such as responsiveness,
scalability and throughput of the application system.
- Load Test: It
verifies the performance of the application under different conditions of work
load ranging from normal to peak conditions. It helps to determine the response
time, resource utilization levels, and throughput rates and further identifies
the breaking point of the application on an assumption that the breaking point
occurs within the peak load condition.
- Endurance Test is classified under load
testing. It validates the performance of the application when it is
subjected to volumes of workload over a period of time. This helps to calculate
the Mean Time between Failure and Mean Time to Failure for the
application.
- Stress Test: it
verifies the performance of the system when it is subjected to work beyond peak
load conditions. The bugs generated here include synchronization problems,
memory leaks etc. Stress test determines how the system functions under extreme
loads.
- Spike Test is classified under stress
test. It validates the performance of a system by subjecting it repeatedly to
load models beyond anticipation for short periods of time.
- Capacity Test: This test
determines how many transactions the application will support and still meet
its performance parameters. It basically determines the future scalability of
the system.
Risks Addressed by
Performance Testing
- Speed related risks
- Is the application fast enough?
- Is the application able to process
the data before it becomes outdated?
- Is the application able to provide
the latest information?
- Is the application able to respond
within time before an error occurs?
- Scalability related risk
- Is the application able to provide
consistent response time?
- Is the application able to store all
the data in its life time?
- Is there any warning flag that shows
it is reaching its peak capacity?
- Will the application secure under
heavy usage?
- Will the application get compromised
under heavy usage?
- Will the application be able to
handle heavy work loads?
- Stability related risk
- Is the application able to run for
longer periods of time without inconsistencies?
- What happens to incomplete
transactions during abrupt system failure?
- Will the application still function
seamlessly once rebooted?
- What are the probabilities of a
system crash?
- Can the system be scaled up or down
without putting it down?
The main activities
of performance testing are as follows:
- Test Environment Identification
- Identification of the Performance
Criteria
- Planning and designing of tests
- Configuration of the test environment
- Implementing the test design
- Executing the tests
- Analyzing results, reporting and
retesting.
Conclusion
The
goal of carrying out performance testing is
not to find out bugs but to eliminate them. It is necessary before releasing
the application into the market. There are a number of performance testing
tools available. HP Loadrunner, HTTP Load and Proxy Sniffer are a few.