What's the difference between load testing and stress testing? When should you choose to run a load test on your application, and when is a stress test more appropriate? Well, it's all in the intention.
Hi everyone, Nicole here again, back with another Ask a Flooder, and this time the question is:
What is the difference between load testing and stress testing?
Okay, again, this is a matter of semantics, but I think the difference is in the intention. Load testing and stress testing are both types of back-end performance testing, and I did also make a video on it that I'll link in the description down below.
Load testing is about seeing how your server reacts to finite load
Now, with load testing, you usually have to start with a specific idea of the load profile that you want to test. You get to this number by looking through your Google Analytics or other analytics on your site to see what load you need to test at, and then the intention is to see how your server responds to that load. So the load is fixed: you know WHAT you want to test, and you just want to see how the server reacts to it. So it's more finite in scope. In general, it's also more about how your server reacts to normal or expected load, whether that's now or in the future.
Stress testing explores your application's upper limits
Stress testing, on the other hand, is a little bit more open-ended and a little bit more destructive. So instead of starting with how much load you want to put on [your server], in stress testing, what you generally do is you increase the load. You usually use a step load profile: so you start a certain number of users, you wait maybe 30 minutes, and then you increase it again. And you end up with this staircase kind of load profile. What you're doing there is you just let it increase until your server fails because the intention of stress testing is to get your server to fail. And, once it fails, does it fail gracefully? Does it show an error message? These are really things that test the upper limits of your server, and that's what stress testing really is.
They can be interchangeable
At Flood, we tend to use the word "load" testing to refer to both kinds of testing because both of them entail applying load on your application server. It's not really that important to distinguish between one or another; what's [important] is that your team uses the same definition so that when YOU say "load testing," they know what you mean.
Until the next time, happy flooding!
Video on performance testing vs load testing: https://www.youtube.com/watch?v=8CueAkDY5yE
Real-life stress testing in action: Robinhood app failure http://bit.ly/3cSRUUq