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 the 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 number of Data is populated in a 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.
Common Performance
Problems
Most performance problems revolve around speed, response time,
load time and poor scalability. Speed is often one of the most important
attributes of an application. A slow running application will lose potential
users. Performance testing is done to make sure an app runs fast enough to keep
a user's attention and interest. Take a look at the following list of common
performance problems and notice how speed is a common factor in many of them:
- Long
Load time - Load
time is normally the initial time it takes an application to start. This
should generally be kept to a minimum. While some applications are
impossible to make load in under a minute, Load time should be kept under
a few seconds if possible.
- Poor
response time - Response time is the time it takes from when a
user inputs data into the application until the application outputs a
response to that input. Generally, this should be very quick. Again if a
user has to wait too long, they lose interest.
- Poor
scalability - A software product suffers from poor
scalability when it cannot handle the expected number of users or when it
does not accommodate a wide enough range of users. Load Testing should
be done to be certain the application can handle the anticipated number of
users.
- Bottlenecking
- Bottlenecks
are obstructions in a system which degrade overall system performance.
Bottlenecking is when either coding errors or hardware issues cause a
decrease of throughput under certain loads. Bottlenecking is often caused
by one faulty section of code. The key to fixing a bottlenecking issue is
to find the section of code that is causing the slowdown and try to fix it
there. Bottlenecking is generally fixed by either fixing poor running
processes or adding additional Hardware. Some common performance bottlenecks are
- CPU
utilization
- Memory
utilization
- Network
utilization
- Operating
System limitations
- Disk usage