Testing is one of the important parts of an SDLC (Software Development Life Cycle). Therefore, every aspect of testing must be covered to make sure no bugs are left in the system. Only bug-free software is eligible for deployment in the market.
Software testing has two aspects – functional testing and non-functional testing. Under non-functional testing comes performance testing.
Let us first understand what performance testing is before diving deeper into the topic.
What is Performance Testing?
During various stages of testing, performance testing is conducted in the end to determine the performance of the software under various situations and a particular workload. The response of the system to various stimuli and its stability is recorded it is then the software quality assurance is completed.
The primary focus while conducting performance testing is on – Speed, Scalability, and Stability. The 3S’s determine whether the software is ready to be deployed or not.
Different Types of Performance Testing
- Load test
- Stress test
- Endurance test
- Spike test
- Volume test
- Scalability test
- Break-point test
In this article, we will discuss Spike Testing in detail.
What is Spike Testing?
Spike testing is a type of performance testing in which we observe the behavior of the system by subjecting it to sudden increase or decrease in the load. This sudden increase and decrease in the workload is spiking.
It is a part of the performance testing and therefore, non-functional testing.
Objectives of Spike testing
- To check if the system will survive the sudden increments and decrements in workload (sustainability of the system).
- Determine recovery time after each spike.
- To determine weaknesses of the system or the application.
- To observe software’s response time during a spike.
- To determine its performance during and after a spike.
Workload Models in a Spike Test-
- Constant workload spike model
- Step-Up workload spike model
- Random workload spike model
Types of loads to design the workload
- Base Load – It is the average user load given to the system to observe how it will perform on a day-to-day basis.
- Spike Load – A sudden increase in the load to observe the system’s response towards it. Such loads are given to check if the system can handle a sudden spike in the users in real life.
Steps to achieve Spike testing
- Setup the environment – To achieve quality testing, always set up an environment favorable for testing conditions.
- Determine Maximum Load – To start the testing process first identify the max or extreme load that your system can handle. This is also called Max User Load Capacity, as the total number of users that can access the application at the same time is determined in this step.
- Increment of the load – The load is incremented to its peak, i.e. to create a spike. This increment is not gradual, rather a sudden increment. This spike is created through any preferable Spike tool.
- Analyze peak performance – The spike created is kept for some time to note behavioral changes of the system when put under sudden increased load. Its response time, sustainability, and performance are analyzed in the peak period.
- Decrement of the load – The load is decremented to zero or the minimum value. This time also suddenly drop in the load and not gradual. The whole setup is created to not changes for sudden spikes. The survival of the application is checked in this duration.
- Performance Graph Analysis – Graphs are created after observation is completed. All kinds of factors are taken into consideration.
To perform the spike testing appropriate tools need to be used to achieve precise results. Some of the commonly used tools are-
- Apache JMeter – JMeter was originally designed to perform load testing but now has been developed for other areas too. It is an open-source tool and supports the Java language. It is one of the most sought-after tools for performance testing.
- LoadRunner – This tool is also one of the most used testing tools and is owned by Hewlett Packard. This tool is quite efficient to simulate hundreds of users for an application and analyzing each one’s performance at the same time. the only drawback is it is not an open-source tool and is a bit more complicated than JMeter.
Let us look at the advantages and disadvantages of Spike Testing.
Advantages of Spike Testing
- It helps to determine software strength when put under extreme conditions.
- Prevents the application from crashing.
- Makes software ready for real-life situations.
- Worst-case scenarios are addressed which is usually not done during the standard testing procedure. This makes the system more sustainable.
Disadvantages of Spike Testing
- Needs experts in performance testing and cannot be conducted by common testers.
- The process is quite expensive in itself, therefore, not everyone can afford it.
- It takes longer to conduct spike testing than other performance testing methods. This might result in a delayed deployment of the product.
- An appropriate setup of the environment is recommended.
- It is preferable to do this testing on huge projects as it is quite expensive.
- Some of the common examples where spike testing is necessary are- when a season-end sale starts on any e-commerce website, when vacation season comes and thousands of users visit tours and travels website, when a certain content of a specific website goes viral, etc.
- JMeter is preferred over Loadrunner, as it is available for free and has a better UI, thus easier to use.
Author – This article is written by ArtOfTesting team member – Kanika Rawat. She is a tech enthusiast and loves coding.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can connect with him on LinkedIn.