In today's post, we look briefly at
Stress Testing . As testers, we often come across the terms Performance, Load and Stress testing which are sometimes used inter-changeably. Here's a perspective on Stress Testing.
What is Stress testing ?
Stress testing is a type of testing carried out to evaluate a system's behavior when it is pushed beyond its normal load or operational capacity. In other words, this involves subjecting a system to heavy loads that are beyond what the system is expected to handle normally, often to the point where the system breaks or is unable to handle further load. Stress testing can be a two pronged approach of increasing the load while denying sufficient resources which the system may need to handle the load.
Stress testing is a type of testing carried out to evaluate a system's behavior when it is pushed beyond its normal load or operational capacity. In other words, this involves subjecting a system to heavy loads that are beyond what the system is expected to handle normally, often to the point where the system breaks or is unable to handle further load. Stress testing can be a two pronged approach of increasing the load while denying sufficient resources which the system may need to handle the load.
Stress testing helps to determine the robustness, scalability and error handling capability of the system under test. While some stress tests may represent scenarios that the system may be expected to experience during its use, some other stress tests may represent scenarios that are not likely to be encountered. Both of these types of tests can be useful if they help in identifying errors. An error that shows up in a stress test could show up in a real usage situation under lesser load.
What is the purpose of Stress testing ?
What is the purpose of Stress testing ?
While not exhaustive,
Stress testing helps to determine -
- the ability of the system to cope with stress and changes/the extreme and unfavorable circumstances in it's operating environment
- the maximum capacity of the system / it's limits
- bottlenecks in the system or its environment
- how the system behaves under conditions of excessive load or insufficient resources to handle the excess load
- the circumstances in which the system will fail, how it will fail and what attributes need to be monitored to have an advance warning of possible failure
- what happens in case of failure -
- does the system slow down or crash or hang up / freeze
- is the failure graceful or abrupt
- is there any loss or corruption of data
- is there any loss of functionality
- are there any security holes that are open
- does the system recover from failure gracefully back to its last known good state
- does the system provide clear error messages and logging or just print indecipherable codes