Load Testing vs Stress Testing
During one of my team discussions, we were discussing the requirement of expanding our application testing from usual automated API and UI tests. We were discussing the options of adding performance testing to our soon to go live Web App before we make it live for the end-users. QA members promptly responded with a positive response and advocated the plan. One of the QA members responded with Load testing and others with Stress testing. This is where a whole new debate started. The QA team was virtually divided into 2 armies and each army was firing to each other with their set of reasons to choose one over other.
From the team lead's perspective, I am used to these kinds of arguments (or rather clashes of thoughts) within the team and mostly between devs and QAs. But, this time it was a battle within QA teams and I (being dev :) ) was enjoying that. After enjoying the show for a few minutes, I had to intervene and we eventually decided that we're gonna do both. A happy ending and it brought a great opportunity to the team to discuss the details of each testing and revisit the importance of both i.e. stress and load testing. This article is to share those details with you so that this information can be useful to you as well when you encounter such a debate.
So, to start with, Load testing and Stress testing are not the same, they may sound but are not synonymous. They both are part of Performance testing i.e. set of tests to ascertain how the system and its components perform under certain situations. Performance tests can be used to gauge the stability, reliability, scalability, speed, and responsiveness of the app. Load testing and Stress testing are a subset of the performance test. Let's take a look at the details of these two.
Load testing is meant to check how the system function when a large number of users access the app. It checks the application's behavior under normal and heavy user load. It is also known as Volume testing and Endurance testing.
Stress testing (also known as fatigue test), on the other hand, is meant for checking the upper limits of the app i.e. till what point the application would crash and how it behaves once that happens. These tests are done to ascertain the stability and reliability of the app.
Below is a table that has a list of difference between these two tests: