Performance Testing
Performance Testing is
a software testing process used for testing the speed, response time,
stability, reliability, scalability and resource usage of a software
application under particular workload. The main purpose of performance testing
is to identify and eliminate the performance bottlenecks in the software
application. It is a subset of performance engineering and also known as “Perf
Testing”.
The focus of Performance Testing is checking a software
program's
- Speed
- Determines whether the application responds quickly
- Scalability
- Determines maximum user load the software application can handle
- Stability - Determines if the application is stable under varying loads
Why do Performance
Testing?
Features and Functionality supported by a software system is not
the only concern. A software application's performance like its response time,
reliability, resource usage and scalability do matter. The goal of Performance
Testing is not to find bugs but to eliminate performance bottlenecks.
Performance Testing is done to provide stakeholders with
information about their application regarding speed, stability, and
scalability. Performance Testing uncovers what needs to be
improved before the product goes to market. Without Performance Testing,
software is likely to suffer from issues such as: running slow while several
users use it simultaneously, inconsistencies across different operating systems
and poor usability.
Performance testing will determine whether their software meets
speed, scalability and stability requirements under expected workloads.
Applications sent to market with poor performance metrics due to nonexistent or
poor performance testing are likely to gain a bad reputation and fail to meet
expected sales goals.
Also, mission-critical applications like space launch programs
or life-saving medical equipment should be performance tested to ensure that
they run for a long period without deviations.
Performance Testing is always done for client-server based
systems only. This means, any application which is not a client-server based
architecture, must not require Performance Testing.
For example, Microsoft Calculator is neither client-server based
nor it runs multiple users; hence it is not a candidate for Performance
Testing.