Difference Between Performance Testing and Load Testing

performance-load-stress-testing

What is the difference between performance testing, load testing, and stress testing?

Performance Testing

Performance Testing measures the response time of an application with an expected number of users. The aim of this is to get a baseline and an indication of how an application behaves under normal conditions. Does it meet the required response time?

Load Testing

Load Testing is measuring the response time when the application is subjected to more than the usual number of users.
The response time will increase, i.e. the application will be slower under heavy load, but the aim of load testing is to see whether the application can sustain the increased load on the server or will it crash and kill the servers.

Load testing is usually started as low numbers and gradually increased over a given period of time until it reaches the desired load on the system and then it ramps down.

Stress Testing or Soak Testing

Stress Testing or Soak Testing is like load testing but we resume the load on the server for a long period, say 1 hour.

The aim of stress testing is to ensure that under a constant load for a long duration, the servers don’t crash, albeit responding slowly.
Stress testing starts of the same as load testing, e.g. gradually increasing the load on the servers, but once this load is reached, we resume the same load on the server for a given duration and then measure the response times.

Break Point

If we keep increasing the load on the server, there comes a point when the server cannot handle any more requests and it crashes, most probably starting to give an HTTP error 500 response code.

Once this happens, we get an indication of the capacity of the application, i.e. how many users can the application handle.

2 Replies to “Difference Between Performance Testing and Load Testing”

  1. Good article, it’s good to make the distinction. In my own career I’ve seen quite different definitions. Would it be nice if we all had a unified language to talk about this stuff?

    Just for comparison here’s the definitions as I’ve been taught/understood them:

    “Performance testing” defines the wider field of testing and managing performance risk. This could involve stopwatch testing, monitoring, or other non-load testing activities. Load testing is a subset of performance testing. To me that makes sense – we are performance testers, so everything we do is performance testing.

    “Load testing” is a test where you apply load. Including what you refer to as “performance testing”, stress testing, soak testing, anything where we apply load to a system. The stuff we usually associate with performance testing using tools.

    “Stress testing” or “Headroom testing” is a test to push the limits of a solution (capacity),
    “Soak” or “Duration” testing is a test to check stability over time
    What you refer to as a “performance test” I’ve heard referred to as a “Peak load” or “Baseline” test, depending on where you work (basically observe the system under normal load).

    I am not suggesting one definition is better than another, but interesting to see the different language we use in the industry.

Leave a Reply