Load Testing Software
 
Products:


Email this page

What's the difference between load and stress testing?

  • Load Testing

Load testing is subjecting a system to a statistically representative (usually) load. The two main reasons for using such loads is in support of software reliability testing and in performance testing. The term "load testing" by itself can imply multiple meanings. For example, do you mean representative load," "overload," "high load," etc. In performance testing, load is varied from a minimum (zero) to the maximum level the system can sustain without running out of resources or having, transactions suffer (application-specific) excessive delay.

  • Stress Testing

Stress testing is subjecting a system to an unreasonable load while denying it the resources (e.g. RAM, disc, MIPS, interrupts, etc.) needed to process that load. The idea is to stress a system to the breaking point in order to find bugs that will make that break potentially harmful. The system is not expected to process the overload without adequate resources, but to behave (e.g. fail) in a decent manner (e.g. not corrupting or losing data). Bugs and failure modes discovered under stress testing may or may not be repaired depending on the application, the failure mode, consequences, etc. The load (incoming transaction stream) in stress testing is often deliberately distorted so as to force the system into resource depletion.

What type of problems can load and stress testing help me identify?

Most problems have to do with the performance bottlenecks that arise when multiple users need to access a common resource. For example, if your site depends on a single, common database, then the speed of data access could become an issue if your database queries are not efficient. Incorrect use of multithreading in web applications can be another problem. Excessive disk access or memory leaks may also cause problems.

By identifying these problems early on, web developers, designers, testers and administrators can optimize applications, upgrade hardware, or employ caching strategies to get orders-of-magnitude performance improvements.