'Performance test vs Load test vs stress test

I am testing web application which has been built by REST api. I want to simulate my application performance test, load test and stress test. Now I would like to know what is the difference among Performance test, Load test, stress test.



Solution 1:[1]

  • Performance Testing - is a testing technique, it is not something you can apply to your web application directly. Performance testing is a sub-type of Non Functional testing and Load Testing and Stress Testing in their turns are lesser subsets of the Performance Testing.

  • Load Testing - when you basically test how does your application act under anticipated load, i.e. you expect 500 concurrent users the process of asseessment your application under that load would be the Load Testing

  • Stress Testing - revealing the application boundaries and breaking points, finding bottlenecks, etc. It allows to have the following questions answered:

    • what is the maximum capacity of the system
    • how many users it may handle providing reasonable response time
    • what is the component which breaks first
    • does the system recover when the load gets back to normal

See Why ‘Normal’ Load Testing Isn’t Enough for more detailed explanation.

Solution 2:[2]

Performance Testing :Performance testing is the process of evaluating the quality, responsiveness, stability, and scalability of your software. Before conducting a performance test, you need to determine your goals. Later you need to check how your software behaves and performs according to these goals. Your aim in doing performance testing is to find and eliminate the performance bottlenecks of the system. As a result you can detect fatal issues that might affect the usability of your software. Moreover it prevents you from having unexpected profit losses or any kind of damage to your business reputation. Load testing and stress testing are two different types of performance testing. Other types of performance testing are; volume testing, spike testing, endurance testing and scalability testing.

Load Testing :Load testing is performed by increasing the load on the system until it reaches its threshold to check what amount of load it can endure. The application under test is examined to see how it behaves under a heavy load of concurrent users that perform transactions using the software. The goal of load testing is to monitor the response time and ensure that your system can handle heavy loads.

Stress testing is conducted to check the stability of your software by testing it beyond its bandwidth capacity. It examines the maximum limits of your system by pushing it beyond normal conditions and putting it under extreme loads. By doing stress testing, you can see how your software behaves when your hardware resources such as memory, CPU, etc. are not sufficient and analyze how your system recovers when returning back to normal state.

Stress Testing : Getting yourself ready for major events such as Black Friday, Cyber Monday, etc. is crucial to be able to respond to the high demand and secure your earnings. Therefore performing stress testing in advance is beneficial to understand your system’s capabilities. This way you can fix your bottlenecks before and be ready for unexpected traffic increases. JMeter is the most popular open-source load testing tool out of a few.

In order to run tests at higher loads, you can make demo runs by visiting "https://loadium.com"

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Dmitri T
Solution 2 BatuhanZafer