The definition of Load/Stress/Performance Test
Most people don't know how to distinguish between load, stress and performance testing. Therefore I do a little survey to confirm the definition of load, stress and performance testing. I hope it's helpful to let everyone can understand them well.
1. The Art of Software Testing, Glenford J. Myers
A. Volume Testing
Volume testing is subjecting the program to heavy volumes of data.
For instance, compiler would be fed an absurdly large source program to compile.
The purpose of volume testing is to show that the program cannot handle the volume of data specified in its objectives.
B. Stress Testing
Stress testing involves subjecting the program to heavy loads or stresses. This should not be confused with volume testing, a heavy stress is a peak volume of data encountered over a short span of time.
Am analogy is an appraisal of a typist. A volume test is the determination of whether the typist can cope with a draft of a large report; a stress test is the determination of whether the typist can type at a rate of 50 words per minute.
C. Performance Testing
The purpose of performance testing is to demonstrate that the program does not meet its objectives, test cases must be devised that attempt to show that the program does not satisfy its performance objectives.
=========================================================================
2. WiKi
A. Load Testing
Load testing is the the process of running a number of clients simultaneously to test a client-server system and measure response times
Load testing generally refers to the practice of modeling the expected usage of a software program by simulating multiple users accessing the program's services concurrently. As such, this testing is most relevant for multi-user systems, often one built using a client/server model, such as web servers.
When the load placed on the system is raised beyond normal usage patterns, in order to test the system's response at unusually high or peak loads, it is known as Stress testing. The load is usually so great that error conditions are the expected result, although there is a gray area between the two domains and no clear boundary exists when an activity ceases to be a load test and becomes a stress test
B. Stress Testing
Stress testing is a form of testing that is used to determine the stability of a given system or entity. It involves testing beyond normal operational capacity, often to a breaking
C. Performance Testing
In software engineering, performance testing is testing that is performed to determine how fast some aspect of a system performs under a particular workload.
Performance testing can serve different purposes. It can demonstrate that the system meets performance criteria.
It can compare two systems to find which performs better. Or it can measure what parts of the system or workload cause the system to perform badly. In the diagnostic case, software engineers use tools such as profilers to measure what parts of a device or software contribute most to the poor performance or to establish throughput levels (and thresholds) for maintained acceptable response time. It is critical to the cost performance of a new system that performance test efforts begin at the inception of the development project and extend through to deployment. The later a performance defect is detected, the higher the cost of remediation. This is true in the case of functional testing, but even more so with performance testing, due to the end-to-end nature of its scope.
=========================================================================
3. Software Testing and Continuous Quality Improvement, William E. Lewis
A. Volume Testing
The objective of volume testing is to subject the system to heavy volumes of data to find if it can handle the volume of data.
Stress testing subjects the system to heavy loads or stresses in term of rates, such as throughputs over a short time period.
Volume testing is data oriented and its purpose it to show that the system can handle the volume of data specified in its objectives
B. Stress Testing
The objective of stress testing is to investigate the behavior of the system under conditions that overload its resources. Of particular interest is the impact that this has on the system processing time.
Stress testing is boundary testing. For example, test with the max number of terminals active and then add more terminals than specified in the requirements under different limit combinations
Stress testing studies the system's response to peak bursts of activity in short period of time and attempts to find defects in a system.
It is often confused with volume testing, in which the system's capability of handling large amounts of data is the objective.
C. Performance Testing
The objective of performance testing is to measure the system against predefined objectives. The required performance levels are compared against the actual performance keveks and discrepancues are documented.
=========================================================================
4. Improving .NET Application Performance and Scalability
A. Volume Testing
Use load testing to verify application behavior under normal and peak load conditions.
You incrementally increase the load from normal to peak load to see how your application performs with varying load conditions.
You continue to increase the load until you cross the threshold limit for your performance objectives.
B. Stress Testing
Use stress testing to evaluate your application's behavior when it's pushed beyond the normal or peal load conditions
Stress test your application by subjecting it to very high loads that are beyond the capacity of the application, while denying it the resources required to process that load.