Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Load vs. Stress testing [closed]

What is the difference between load and stress testing?

like image 660
Neeta Avatar asked Mar 17 '12 13:03

Neeta


People also ask

What is difference between load and stress?

Load testing is used to find the performance of the application by testing the database, networks, and website servers. Stress testing is used to find the stability and response time of the given system.

How is load testing different from performance testing?

Performance testing is concerned with evaluating the overall system's performance and collecting metrics such as availability, response time, and stability. Load testing is a technique that verifies whether the application can handle the expected load.

What is difference between stress and endurance testing?

While Stress testing takes the tested system to its limits, Endurance testing takes the application to its limit over time. For Example, the most complex issues – memory leaks, database server utilization, and unresponsive system – happen when software runs for an extended period of time.

When should load testing be performed?

Load testing examines how the system behaves during normal and high loads and determines if a system, piece of software, or computing device can handle high loads given a high demand of end-users. This tool is typically applied when a software development project nears completion.


2 Answers

Wikipedia on load testing (bold is mine):

[...]A load test is usually conducted to understand the behaviour of the system under a specific expected load. This load can be the expected concurrent number of users on the application performing a specific number of transactions within the set duration. This test will give out the response times of all the important business critical transactions.[...]

and on stress testing:

understand the upper limits of capacity within the system. This kind of test is done to determine the system's robustness in terms of extreme load and helps application administrators to determine if the system will perform sufficiently if the current load goes well above the expected maximum.

So the bottom line is: if you are testing normal, expected load (you know the system will be used by up to 100 users at a time), this is load testing. But when you want to determine how the system behaves under extreme load (DoS, Slashdot effect) and when it breaks, this is stress testing.

like image 134
Tomasz Nurkiewicz Avatar answered Sep 21 '22 22:09

Tomasz Nurkiewicz


The terms "stress testing" and "load testing" are often used interchangeably by software test engineers but they are really quite different.

Stress testing

In Stress testing we tries to break the system under test by overwhelming its resources or by taking resources away from it (in which case it is sometimes called negative testing). The main purpose behind this madness is to make sure that the system fails and recovers gracefully -- this quality is known as recoverability. OR Stress testing is the process of subjecting your program/system under test (SUT) to reduced resources and then examining the SUT’s behavior by running standard functional tests. The idea of this is to expose problems that do not appear under normal conditions.For example, a multi-threaded program may work fine under normal conditions but under conditions of reduced CPU availability, timing issues will be different and the SUT will crash. The most common types of system resources reduced in stress testing are CPU, internal memory, and external disk space. When performing stress testing, it is common to call the tools which reduce these three resources EatCPU, EatMem, and EatDisk respectively.

While on the other hand Load Testing

In case of Load testing Load testing is the process of subjecting your SUT to heavy loads, typically by simulating multiple users( Using Load runner), where "users" can mean human users or virtual/programmatic users. The most common example of load testing involves subjecting a Web-based or network-based application to simultaneous hits by thousands of users. This is generally accomplished by a program which simulates the users. There are two main purposes of load testing: to determine performance characteristics of the SUT, and to determine if the SUT "breaks" gracefully or not.

In the case of a Web site, you would use load testing to determine how many users your system can handle and still have adequate performance, and to determine what happens with an extreme load — will the Web site generate a "too busy" message for users, or will the Web server crash in flames?

like image 33
user2197712 Avatar answered Sep 24 '22 22:09

user2197712