spike testing
What is spike testing?
Spike testing is a type of performance testing in which an application receives a sudden and extreme increase or decrease in load. The goal of spike testing is to determine the behavior of a software application when it receives extreme variations in traffic. Spike testing addresses more than just an application's maximum load; it also verifies an application's recovery time between activity spikes. The word spike refers to the sudden increase or decrease in traffic.
During a spike test, testers might find that application performance worsens, slows or stops entirely. Determining why and where an application fails under spike tests enables developers to better prepare for unexpected spikes in load while in production environments. For example, it would be a good idea to spike test an e-commerce application to prepare for Black Friday sales.
A separate test environment -- not the live environment -- should be used to spike test an application. The load maximums of an application should be identified beforehand so testers can focus on any software failures that might appear at or beyond expected capacities. Monitoring software -- such as Apache JMeter -- allows testers to simulate a system under sudden increasing and decreasing loads. Testers should rapidly increase and decrease the load over short bursts of time before returning to a normal load. Testers can then analyze performance graphs provided by the monitoring software to see where the application breaks under peak load conditions.
Spike tests vs. other performance tests
Spike tests fall under the category of load tests but are not similar to all load tests. For example, load testing is performed to measure the behavior of a system under load spikes and normal conditions. Unlike spike testing specifically, load tests are commonly performed with varying loads, over varying amounts of time -- not just sudden increases and decreases.
Stress tests are similar to spike tests; however, stress tests focus on identifying the maximum user capacity before the system breaks. Stress tests evaluate an application by continually increasing the user load until the system begins to malfunction.
Advantages and disadvantages of spike testing
Advantages of spike testing include the following:
- Determination of the consequences related to unexpected spikes in end-user traffic.
- Discovery of how much an application can perform past its intended load.
- The ability for developers to avoid an application breaking when user loads unexpectedly rise beyond maximum levels.
Disadvantages of spike testing include the following:
- The requirement of a specific, independent testing environment.
- High cost of money, resources and time.