Go to previous article – Localization Testing methods and practices
What is Stress Testing?
Also known as “torture testing,” stress testing is a deliberately intense testing method that determines how stable a system is.
This testing method tests the system beyond its normal capacity, often to its breaking point, to observe and note the results. Stress testing is often executed along with performance testing.
There are many reasons why stress testing is performed, some of those including:
- To determine the lifespan of the product
- To determine the product’s breaking point or safe usage limit
- To confirm certain specifications are being met
- To determine how the system fails
- To test resistance to Dos attacks (denial of service)
Stress testing puts computer hardware under extreme levels of stress in order to ensure the product performs as expected during these states of behavior. Extreme levels of stress may be put on workload, memory, heat, clock speed, or voltages.
Memory and CPU are two things that are commonly and frequently tested in this manner. A CPU that is stress tested over the course of twenty-four hours at 100% load usually produces enough results to determine if the CPU will be able to function correctly on a normal basis.
Hardware stress testing tends to vary depending on how the system is used and what environment it is in; a system that runs constantly and performs large processes has different stress testing requirements than a system that runs every now and then and only performs small processes.
Software stress testing is a little different as it focuses on robustness and error handling under a heavy load rather than on how it would perform under normal circumstances. The goal of software testing is to make sure it does not crash when there is not enough memory or disk space or if there is a denial of service attack.
One way software may be stress tested is through the use of scripts or bots; a web server may be tested to observe its performance during peak load times – meaning Load Testing.
The adverse environment created in stress testing may involve the following:
- Running several resource intensive applications at the same time
- Attempting to hack into a computer
- Flooding a server
- Making numerous attempts to access a website
These conditions are progressively worsened until the performance level of the software falls below a certain point or the system completely crashes.
In order to achieve the most accurate results, individual stressors are changed one by one and the others are left constant.
By doing this it is possible to pinpoint where the weaknesses are and in what ways the system is vulnerable.
This makes stress testing a time consuming and tedious process. However, it is an important part of the development process as it ensures the hardware and software will be able to maintain functionality under a high load.
You might be looking to read more about other testing methods:
- Black-Box testing and White-Box testing
- Website testing
- Localization testing
- User acceptance testing
- Unit testing
- Functional testing