Hello Readers! In this world of software testing, we might have come across terminologies like performance testing, load testing, stress testing, etc.
At times these terminologies are interpreted to be the same term, but, they are different. Hence it is very important for a QA to understand the significant difference between these three types of testing.
In this blog, we will try to understand the actual difference between these types.
Performance testing is a type of testing conducted to determine the performance of a system and to validate systems quality aspects like responsiveness, speed, scalability, stability under different load conditions. The goal of performance testing is not only to find the bugs in the system but also to exterminate the performance impediment from the system.
If the system goes in the market without performing, it may cause issues like a slow running of the system, which can affect the expected sales goal directly. Performance testing has different tests which enable analysis of various aspects of the system. It tells about what needs to be fixed before going on live. The above image tells us clearly that load and stress testing are subparts of performance testing.
Load Testing is a subpart of performance testing. The main function of this testing is to monitor the response time and to see whether the system is performing well under heavy load or not. Through load testing, the applications are verified by continuously increasing the load on the system until it reaches the threshold value. Here increasing the load means to increase the number of concurrent users to check the behavior of application under test. It is performed to track what amount of load the application can hold on under a test. This testing is carried out under a controlled environment and is designed to test the non-functional requirements of an application. Hence, load testing is successful only if the specified test scenarios are executed without any error in a given time.
In stress testing, different activities are performed to overload the existing system to break it down. Removing the components from the system in negative testing is also done as a part of stress testing. Basically, stress testing calculates the behavior of the application beyond peak load and normal conditions. Hence, the purpose of stress testing is to determine the failure of the system and to keep an eye on how the system recovers back gracefully. Stress testing needs to be set up in a controlled environment before launching the test so that we can correctly determine the system behavior under most unpredictable scenarios.
Both Load testing and Stress testing is designed to validate the non-functional requirements of a software application.
An overview of other types of performance testing:
- Spike testing: Spike testing is performed by abruptly changing the load and observing the behavior of the system. The purpose is to determine whether performance will get affected like the system failure, will be able to handle such a sudden change in load
- Endurance Testing: Which is also known as Soak testing, it is usually performed to determine if the system can bear the continuous application of load. It essentially involves applying a significant load to a system for a long period of time. The purpose is to analyze how the system behaves under such environment.
- Volume Testing: It is a testing done on high volumes of data, the high volume of data like a huge number of input files, data records or heavy database table size in the system. The purpose is to check system performance with the increased volume of data in the database.
- Scalability Testing: The objective of scalability testing is to determine the software application’s effectiveness in “scaling up” to support an increase in user load. It helps to plan the capacity added to the system.
Here are few Scalability Testing Attributes: Time (Session time, reboot time, transaction time, task execution time), Screen transition, Throughput, etc.
Conclusion: In this blog, we have tried to differentiate between load testing and stress testing. Load testing is a type of performance testing which is performed to estimate the behavior of a system when workload increases and stress testing is a type of performance testing which is performed to estimate the behavior of a system at or beyond the limits of its expected workload.
Author: Rutuja Tipare