Spike Testing is defined as a type of performance testing in which application is tested with extreme increment and decrements in the load. It is performed to estimate the weakness of an application.
It helps to evaluate the behavior of the software system under sudden increment or decrements in user load.
In this tutorial, we will learn-
- What is Spike Testing?
- Goal of Spike Testing
- How to do Spike Testing?
- Examples Spike Testing Scenarios:
- Recovery Scenarios on Spike Loads
- Advantages and Disadvantages of Spike testing
- Tools for Spike Testing:
The goal of Spike testing is to see how the system responds to unexpected rise and fall of the user load. In Software Engineering Spike testing helps determine system performance will deterioration when there is a sudden high load.
Another goal of Spike Testing is to determine the recovery time. Between two successive spikes of user load, the system needs some time to stabilize. This recovery time should be as low as possible.
Here are six simple steps to perform spike testing
Step 1) Determine the Max User Load capacity of your software application
Step 2) Prepare the Testing Environment and configure it to record performance parameters.
Step 3) Apply expected maximum load to your Software Application using a Performance Tool of your choice
Step 4) Rapidly increase in load, to the system for a set period.
Step 5) Gradually reduce the load back to its original level.
Step 6) Analyze the performance graphs. Metric to be considered are Failures, Time Taken, Virtual Users, etc.
- When an eCommerce store is launching special deals with great discounts such as on Black Friday.
- When a web application is live streaming a favorite TV program.
- When a flash sale is going on a daily deal site.
- When the certain content of a site goes viral over the Internet.
- A new system is released for production, and multiple users want to access the system.
- A power outage may cause all users to lose access to a system. After the outage issue resolved all users then log back onto the system simultaneously.
Three main recovery scenarios can be configured to guard against spikes
- Use cloud platforms like AWS, Azure to dynamically increase server capacity in tandem with the user load
- Do not allow the application-access to some users, so that system does not face heavy load. This stops people above the maximum designed load from entering into the system. Thus protects the system from the threat of an excessive load.
- The site admin allows users to join the system. However with warning that they may face slow response because of heavy load. This may result in the adverse effect on the system performance. However, the user will be able to work with the system.
The Apache JMeter is a java open source spike testing tool. It is specially designed to load functional test behavior and measure performance. This performance testing tool can be used to analyze and measure the performance of web application or a variety of services. Today, it is widely used for the functional test, database server test.
Loadrunner is a load testing tool for Windows and Linux, which allows spike testing of web and other apps. It helps to determine the performance and result of the application even under the heavy load.
- Spike Testing is a software testing method. In this method, applications are tested with unusual increment and decrements in the load.
- The right approach to do spike testing is to unexpectedly increase the number of users followed by an immediate decrease in the load.
- The unexpected load is the main attribute of the deal.
- Examples of real-life Spike testing scenarios are - when an eCommerce store is launching special deals with great discounts such as on Black Friday. Alternatively, when a web application is live streaming a favorite TV program.
- Jmeter is one such useful tool to do spike testing.