It is used to determine the maximum capability of a computer system and is often used for purposes such as scaling for production use and ensuring reliability and stability.
It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results.
Reasons can include: to determine breaking points and safe usage limits; to confirm that the intended specifications are being met; to search for issues inside of a product; to determine modes of failure (how exactly a system may fail), and to test stable operation of a part or system outside standard usage.
Stress tests commonly put a greater emphasis on robustness, availability, and error handling under a heavy load, than on what would be considered correct behavior under normal circumstances.
In particular, the goals of such tests may be to ensure the software does not crash in conditions of insufficient computational resources (such as memory or disk space), unusually high concurrency, or denial of service attacks.