Load Testing and Stress Testing are subsets of Performance testing.
Performance Testing is a type of testing to ensure software applications will perform well under their expected workload.
The focus of Performance Testing is checking a software program's
- Speed - Determines whether the application responds quickly
- Scalability - Determines maximum user load the software application can handle.
- Stability - Determines if the application is stable under varying loads
Now to actually test these parameters Performance Testing is divided further into different tests.
Types of Performance Testing (there are others but we are only concerned with these two)
Load testing - checks the application's ability to perform under anticipated user loads. The objective is to identify performance bottlenecks before the software application goes live. Stress testing - involves testing an application under extreme workloads to see how it handles high traffic or data processing. The objective is to identify breaking point of an application. Now onto the differences with examples.
Imagine you want to test how much weight an elevator can lift. While performing Load testing you would gradually increase the weight while watching the elevator performance, but if you are talking about Stress Testing then you would intentionally put unbearable weight onto the elevator and then see what its behavior is.