How will you differentiate between load testing and stress testing? Do they overlap or are they completely different from each other?
Examples of both types of testing would also be helpful.
Stress Testing - is basically the process of identifying your system boundaries, to wit even if you expect not more than 1000 users you might want to know what will happen when more users arrive. It will give you an insights like:
So Load Testing and Stress Testing are different beasts and serve different purposes and when you planning your Performance Testing activities you should consider conducting both of them
More information: Performance Testing vs. Load Testing vs. Stress Testing
Web application testing services always include Load test and Stress test to check the website performance.
Load testing is performed to recognize the upper limit of the system Stress testing is performed to check how the system responds under extreme load i.e beyond the limit
Example of Stress testing would be testing a website with a sudden high number of users
Example Let say a website can easily handle 1000-2000 concurrent users during regular days.
In Load testing, a website will be tested to find the upper limit i.e within the traffic of up to 2000 concurrent users. The attributes which are checked in a load test are peak performance, server quantity and response time.
Now, let say Web site announces a Sale -> In this, the number of concurrent users will increase unexpectedly.(let say 6000-8000)
So stress testing, will be conducted, with concurrent users beyond 2000. This number is increased gradually to find out the threshold where the website breaks OR how many maximum users it can handle at a time. The attributes which are checked in the stress test are the stability response time
Stress testing investigates the product under high levels of usage intensity, e.g.: Multiple users.
Load testing investigates the product under high level of resources usages, e.g.: Low memory or disk space available, with regular configurations of the product and usage.
These are only heuristics - most implementations can be interpreted as either or both.
Not surprisingly, there are so many different types of Tests which overlap so I think they do overlap and depends how your team/company define them.
However, Load test is used to evaluate how the service is behaving under heavy load while Stress test is done to find out what is the upper limit of the system via extereme loads.
Let me give you an example, in load test we usually look for performance e.g percentiles (P90,P99, etc) with X load. And they are used to validate the SLOs. On the other hand, stress test address the question: under what circumstances our service/product is completely unavailable? e.g When our mobile app will crash?
Load Testing : It is performed when the server can handle the certain load for a specific period of time.
Stress Testing : It is performed when we are trying to give more than the desired load to the server and check on how the server behaves.