Load Testing and Stress Testing The terms Load Testing and Stress Testing is often used interchangeably. However, there is a fundamental difference between the two. Let’s assume that we have an application that at peak times is subjected to a load of 2000 virtual users. Let’s also assume that a response time of 5 seconds is considered acceptable.
Load Testing
Load Testing attempts to measure how well the application performs at a given load. In the case described above we would attempt to load the application with 2000 virtual users and attempt to measure the mean application response time and find out if it meets our criteria. The load should be as representative as possible of the actual real world situations. This means that the data should be parameterized and different virtual user ramp up scenarios should be modelled. If the application fails to meet the acceptable criteria, then it should be fixed and the load tests should be run until the application satisfies the acceptable criteria.
Stress Testing attempts to break the system. This means taking the application out of the range of acceptable conditions. It could involve using a much higher virtual user load than the specified limit. It could also involve giving the application insufficient RAM or configuring the database with less memory resources than is normal. Under these conditions the application will reach a breaking point. At this point the application should degrade and finally fail gracefully. Stress testing can be related to load testing or can involve stress parameters that may not be directly related to load