What is performance
testing?
Performance Testing is
a type of testing to check how the software applications will perform under
different workload.
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.
- 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
Performance testing is a subset of performance engineering.
Why
do Performance Testing?
Performance testing is done to provide
stakeholders with information about their application regarding speed,
stability and scalability. More importantly, 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 or not
their software meets speed, scalability and stability requirements under
expected workloads. Applications sent to market with poor performance metrics
due to non existent 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 equipments
should be performance tested to ensure that they run for a long period of time
without deviations.
Types
of Performance Testing
- Load testing - checks the
application's ability to perform under anticipated user loads. The
objective is to identify performance bottlenecks before the software
application goes live.
- Stress testing - involves
testing an application under extreme workloads to see how it handles high
traffic or data processing. The objective is to identify breaking point of
an application.
- Endurance
testing - is
done to make sure the software can handle the expected load over a long
period of time.
- Spike testing - tests the
software's reaction to sudden large spikes in the load generated by users.
- Volume testing - Under
Volume Testing large no. of. Data is populated in database and the overall
software system's behavior is monitored. The objective is to check
software application's performance under varying database volumes.
- Scalability
testing - The objective of scalability testing is to
determine the software application's effectiveness in "scaling
up" to support an increase in user load. It helps plan capacity
addition to your software system.