Software Testing Class

What Is Endurance Testing In Software Testing?

There are many definitions and explanations available for Endurance Testing. It is difficult to determine which one is right. Let’s start with literal meaning of the word “Endurance”

Definition: The capacity of something to last or to withstand wear and tear.

In software terms, Endurance testing is performed to check behavior of system under sustained or prolonged use. It is performed with a significant work load on system. Its key features are

  1. It is a non-functional software testing.
  2. It is a type of performance testing and a sub type of Load testing.
  3. It is performed to detect issues like memory leaks in a system
  4. It is also known as soak testing or Capacity Testing

Endurance Testing In Software Testing

To understand it better, let’s first understand what a memory leak is. As we studied during our early compute classes, Computer has some limited temporary memory called RAM. Computer assigns this memory to applications and some other functioning part of OS for storing data temporarily. Application use this memory and return it back to computer so that it can be re-allocated to a different application to use. Sometimes application does not free this memory after the use and make it unusable for other applications, which is termed as a memory leak. It might not have any big impact in the short term use since memory is freed up once the system is restarted. But imagine a software with a memory leak that needs to be run for a longer duration or need to run multiple applications. In the beginning there won’t be any noticeable impact but memory leaks build up over time leaving no free memory, which will slow down the system to a crawl eventually causing a system crash.

As stated earlier, Endurance Testing is done to check system behavior under sustained use since impacts of memory leaks shows up in long run . The main issues that are monitored under it are :

Time required for Endurance Testing:

Endurance testing requires a great deal of time since the main intention is to check system performance over prolonged use. The time duration for a test is decided on the basis of factors like client involvement, actual production use of system etc. One test for such testing may take well over 12 hours to be completed. Some companies even do the testing for a year.

Advantage of Endurance Testing

Disadvantages of Endurance Testing

Tools:

Below listed are some of the testing tools used for Performance Testing :

Difference Between Endurance Testing and Load Testing:

Endurance Testing is a sub type of load testing. It is performed with a significant workload on the software, which can be under the limit provided under system specification or it can exceed that limit. Sometimes overloading can be mistaken for a memory leak. Let’s see the difference between load testing and endurance testing to understand better

Endurance Testing

Load Testing

Workload during the testing is natural expected load. It may or may not be under specified load limit of the software. Workload is unexpected. It is varied over the time to check how system handles it.
Issues tested under Endurance Testing such as memory leaks has a gradual impact over system. For ex: the response time of the system degrades gradually over time, eventually leading to system crash. Issues tested under Load Testing i.e. overloading causes abrupt response problems. For ex :  sudden degradation of response time, system crash etc.

As evident from the last row in the table, slow response time and system crash are caused by both memory leaks and overloading. Sometimes, a tester may confuse a load testing problem to be an endurance testing problem. So, it’s important to check for the actual reason behind the problem before coming to a conclusion.

Life cycle of Endurance Testing:

Conclusion:

Based on the above discussion we can conclude that Endurance Testing is a non-functional software performance testing. It is done to verify the performance of system under sustained use. The major issue that is identified during testing is memory leaks present in an application or in a part of software, which gradually degrades the response time and performance of the system, eventually leading to system crash.

Endurance Testing is very important because if issues like memory leaks go identified then they can cause system failure later, causing loss of valuable information. 


⇓ Subscribe Us ⇓


If you are not regular reader of this website then highly recommends you to Sign up for our free email newsletter!! Sign up just providing your email address below:


 

Check email in your inbox for confirmation to get latest updates Software Testing for free.


  Happy Testing!!!
 
Exit mobile version