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 may find that application performance worsens, slows or stops entirely. Determining what and where an application fails under spike tests allows for 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 (and 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 which may appear at or beyond expected capacities. Monitoring software (such as Apache JMeter) will allow 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
Advantages of spike testing include:
- Determination of the consequences related to unexpected spikes in end-users.
- 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 rises beyond maximum levels.
Disadvantages of spike testing include:
- The requirement of a specific, independent testing environment.
- High cost of money, resources and time.
Continue Reading About spike testing
- The Ultimate Guide to Performance Testing and Software Testing: Testing Types, Performance Testing Steps, Best Practices, and More