Comparing Performance Testing, Load Testing and Stress Testing
Posted by
JORRIT WIT on Fri, Nov 18, 2011 @ 11:04 AM
Written by Karthick Sitaraman
Software Performance testing, load testing and stress testing is not one and the same, but people sometime use them interchangeably and that’s where the confusion arises.
Performance testing is the art of determining the responsiveness of a system when simulating multiple user requests. In other words, the objective is determine the quickest response time that can be achieved with maximum number of concurrent requests. This obviously drives the system throughput, which is basically the “number of request processed per unit of time”. In other words Performance testing is measuring the productivity of the system “the maximum work that can get done from my application within a specified time and by utilizing the least amount of resources”. From a business perspective performance testing is a validation and certification process – i.e., to make sure the system guarantees to deliver what is outlined in the NFT (Non Functional Requirements).
A nice example would be when a car is designed and manufactured it is tested for a certain base criteria, i.e. carrying minimum of four people to cover a certain distance at a certain speed and having to do some basic operations. In reality, the vehicle will also be used at different operating conditions, like driving at higher speeds and carrying greater payloads. The car in our example, still needs to operate safely and deliver at these extreme operating conditions.
The process of validating the base operating criteria of a system could be called as “Performance Testing” any extension from the base condition is accomplished by other forms of testing i.e., Load Testing, Stress Testing, Endurance testing… etc. The objective of this testing is basically to determine the operating envelope of an application system at different workload conditions.
Application Load Testing is the next step of pushing the application load envelope and validating them. This is usually executed by varying workload, volume conditions and the duration of the tests, or any special operating conditions that the system could be subjected. The key objective is to determine the scalability of the system, without compromising on application performance. (i.e., Application responsiveness, throughput and concurrency)
Application Stress Testing can be defined as validating the boundary conditions of an application’s performance envelop. The objective is to push the system to its limits where it no longer can service the requests and determine the point to where the performance is no longer acceptable. This is usually where the application responsiveness grows exponentially.
All are typically part of typical web application testing or any system application testing.

The opinions expressed on this discussion room are writer's and don't necessarily represent NTT DATA Canada's positions, strategies or opinions.