Load testing is the process of subjecting a computer, peripheral, server, network or application to a work level approaching the limits of its specifications. Load testing can be done under controlled lab conditions to compare the capabilities of different systems or to accurately measure the capabilities of a single system. Load testing can also be done in the field to obtain a qualitative idea of how well a system functions in the "real world."
Load testing is a part of a more general process known as performance testing. Examples of load testing include:
- Downloading a series of large files from the Internet.
- Running multiple applications on a computer or server simultaneously.
- Assigning many jobs to a printer in a queue.
- Subjecting a server to a large amount of e-mail traffic.
- Writing and reading data to and from a hard disk continuously.
Load testing can be conducted in two ways. Longevity testing, also called endurance testing, evaluates a system's ability to handle a constant, moderate work load for a long time. Volume testing, on the other hand, subjects a system to a heavy work load for a limited time. Either approach makes it possible to pinpoint bottlenecks, bugs and component limitations. For example, a computer may have a fast processor but a limited amount of RAM (random-access memory). Load testing can provide the user with a general idea of how many applications or processes can be run simultaneously while maintaining the rated level of performance.
Load testing differs from stress testing, which evaluates the extent to which a system keeps working when subjected to extreme work loads or when some of its hardware or software has been compromised. The primary goal of load testing is to define the maximum amount of work a system can handle without significant performance degradation.