These three types can be bit confusing to differentiate since they all sounds similar. But each term has its own definition.
Performance testing, load testing and stress testing are different activities are done based on different purposes, but these can be performed using the same tools.
Performance testing performs to evaluate the performance of the system under a given situation. This type of testing is not to find defects in the system. Through the performance testing we can determine the speed or the effectiveness of a software application, network, computer or a device. Attribute of performance testing are: Speed, Scalability, Stability and reliability. The main objective of conducting the performance test is to establish the benchmark behavior of the system. Importantly, Industry specified benchmarks should be met as the output of the performed performance test.
Ex: Application network performance on Connection Speed vs. Latency chart. (Latency is the time difference between the data to reach from source to destination)
Performance testing tools:
- Load Runner
- Web Load
- Open STA
Load testing is a type of a performance test which is done by constantly increasing the load on the system until it reaches its threshold limit. This technique used to examine the behavior of a system with regards to the expected and exceeding expected load conditions. Basically this has designed to test the non-functional requirements of a system. Purpose of the load test is to allocate maximum possible workload that could handle by the system in order to test its tolerance level. There can be situations that the system is fed with empty load to evaluate the behavior of the system for zero load. Load test is also known as ‘Volume testing’ and ‘Endurance testing’.
Ex: Testing an email server to handle email traffic
Stress testing is again a type of a performance testing which refers to the testing of software or hardware to determine whether its performance is satisfactory under any extreme and unfavorable conditions. It is performed to find the upper limit capacity of the system and also to determine how the system performs if the current load goes well above the expected maximum.
Testing the performance of a system is important as it gives an output to the client in terms of the quality of the application or it provides high level of confidence to stakeholders.