Performance testing is a kind of software testing involving the determination of the performance of a system with regard to responsiveness and strength of a network, software program, computer or device under a particular load.
Performance testing includes stress testing, load testing, spike testing, endurance testing, scalability testing and volume testing. Stress testing evaluates system’s behavior at or beyond the expected workload limits. Load testing usually evaluates the system’s behavior when workload increases.
Spike testing evaluates the system’s behavior when the workload is instantaneously and significantly increased. On the other hand, endurance testing evaluates the system’s behavior when a considerable workload is provided repeatedly.
Scalability testing determines the effectiveness of the software application in expanding to accommodate user load increase. Volume testing involves the population of data in a database and monitoring the behavior of the overall software system.
Automating performance testing can help show that the system satisfies performance criteria. It can also help determine the parts of the system that result in poor performance.