Talk:Stress testing/Stress test

A stress test (sometimes called a torture test) is a form of deliberately intense or thorough testing used to determine the stability of a given system or entity. 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 or safe usage limits; to confirm intended specifications are being met; to determine modes of failure (how exactly a system may fail), and to test stable operation of a part or system outside standard usage. Reliability engineers often test items under expected stress or even under accelerated stress in order to determine the operating life of the item or to determine modes of failure.

The term "stress" may have a more specific meaning in certain industries, such as material sciences, and therefore stress testing may sometimes have a technical meaning - one example is in fatigue testing for materials.

Hardware
Stress testing, in general, should put computer hardware under exaggerated levels of stress in order to ensure stability when used in a normal environment. These can include extremes of workload, type of task, memory use, thermal load (heat), clock speed, or voltages. Memory and CPU are two components that are commonly stress tested in this way.

There is considerable overlap between stress testing software and benchmarking software, since both seek to assess and measure maximum performance. Of the two, stress testing software aims to test stability by trying to force a system to fail; benchmarking aims to measure and assess the maximum performance possible at a given task or function.

Software
In software testing, a system stress test refers to tests that put a greater emphasis on robustness, availability, and error handling under a heavy load, rather 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.

Examples:
 * A web server may be stress tested using scripts, bots, and various denial of service tools to observe the performance of a web site during peak loads.

Stress testing may be contrasted with load testing:


 * Load testing examines the entire environment and database, while measuring the response time, whereas stress testing focuses on identified transactions, pushing to a level so as to break transactions or systems.
 * During stress testing, if transactions are selectively stressed, the database may not experience much load, but the transactions are heavily stressed. On the other hand, during load testing the database experiences a heavy load, while some transactions may not be stressed.
 * System stress testing, also known as stress testing, is loading the concurrent users over and beyond the level that the system can handle, so it breaks at the weakest link within the entire system.

Financial sector
Instead of doing financial projection on a "best estimate" basis, a company or its regulators may do stress testing where they look at how robust a financial entity or instrument is in certain crashes, a form of scenario analysis. For example, the following stress scenarios:
 * What happens if equity markets crash by more than x% this year?
 * What happens if GDP falls by z% in a given year?
 * What happens if interest rates go up by at least y%?
 * What if half the instruments in the portfolio terminate their contracts in the fifth year?
 * What happens if oil prices rise by 200%?

Nuclear power plants
After the 2011 earthquake in Japan the European Commission decided that all nuclear power plants in Europe have to undergo a stress test to verify they still comply with the highest safety standards.

After WENRA released the first proposal of a stress test, there has been criticism that the stress test was not going to be strict enough.