Short Note on Performance Testing
Wikipedia says “performance testing is in general testing performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage.”
The focus of performance testing is checking a software program’s Speed, Scalability and Stability. The objective is to identify performance bottlenecks before the software application goes live.
Before going for performance testing, ask for NFR document. A NFR document is called non-functional requirement document which specifies criteria that can be used to judge the operation of a system, rather than specific behaviors.
Typical non-functional requirements are:
- Performance – Response Time, Throughput, Utilization, Static Volumetric
- Data Integrity
Types of performance test:
Load testing: checks application’s ability to perform under anticipated user loads. This user load can be the concurrent number of users performing some operations within the set duration.
Stress testing: testing an application under extreme workloads to see how it handles high traffic or data processing. This is related to conditions like if the current load goes well above the expected maximum.
Endurance testing: to ensure the software can handle the expected load over a long period of time. Here, the main focus is on performance degradation under extended, significant period of time.
Scalability testing: checks application’s effectiveness in ‘scaling up’ to support an increase in user load.
Spike testing: tests the software’s reaction to sudden large spikes in the load generated by users.