Soak testing

Last updated

Soak testing involves testing a system with a typical production load, over a continuous availability period, to validate system behavior under production use. [1]

It may be required to extrapolate the results, if not possible to conduct such an extended test. For example, if the system is required to process 10,000 transactions over 100 hours, it may be possible to complete processing the same 10,000 transactions in a shorter duration (say 50 hours) as representative (and conservative estimate) of the actual production use. A good soak test would also include the ability to simulate peak loads as opposed to just average loads. If manipulating the load over specific periods of time is not possible, alternatively (and conservatively) allow the system to run at peak production loads for the duration of the test.

For example, in software testing, a system may behave exactly as expected when tested for one hour. However, when it is tested for three hours, problems such as memory leaks cause the system to fail or behave unexpectedly.

Soak tests are used primarily to check the reaction of a subject under test under a possible simulated environment for a given duration and for a given threshold. Observations made during the soak test are used to improve the characteristics of the subject under further tests.

In electronics, soak testing may involve testing a system up to or above its maximum ratings for a long period of time. Some companies may soak test a product for a period of many months, while also applying external stresses such as elevated temperatures.

This falls under load testing.

Related Research Articles

Software testing is the act of examining the artifacts and the behavior of the software under test by verification and validation. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to:

In software quality assurance, performance testing is in general a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage.

In computing, stress testing can be applied to either hardware or software. 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. Stress tests typically involve running a large amount of resource-intensive processes until the system either crashes or nearly does so.

<span class="mw-page-title-main">Load testing</span> Process of putting demand on a system and measuring its response

Load testing is the process of putting demand on a structure or system and measuring its response.

Software deployment is all of the activities that make a software system available for use.

Reliability engineering is a sub-discipline of systems engineering that emphasizes the ability of equipment to function without failure. Reliability describes the ability of a system or component to function under stated conditions for a specified period of time. Reliability is closely related to availability, which is typically described as the ability of a component or system to function at a specified moment or interval of time.

<span class="mw-page-title-main">Continuous integration</span> Software development practice based on frequent submission of granular changes

In software engineering, continuous integration (CI) is the practice of merging all developers' working copies to a shared mainline several times a day. Nowadays it is typically implemented in such a way that it triggers an automated build with testing. Grady Booch first proposed the term CI in his 1991 method, although he did not advocate integrating several times a day. Extreme programming (XP) adopted the concept of CI and did advocate integrating more than once per day – perhaps as many as tens of times per day.

<span class="mw-page-title-main">Impact (mechanics)</span> Great force or shock applied over a short time period during a high-speed collision

In mechanics, an impact is when two bodies collide. During this collision, both bodies decelerate. The deceleration causes a high force or shock, applied over a short time period. A high force, over a short duration, usually causes more damage to both bodies than a lower force applied over a proportionally longer duration.

Structural health monitoring (SHM) involves the observation and analysis of a system over time using periodically sampled response measurements to monitor changes to the material and geometric properties of engineering structures such as bridges and buildings.

Game testing, also called quality assurance (QA) testing within the video game industry, is a software testing process for quality control of video games. The primary function of game testing is the discovery and documentation of software defects. Interactive entertainment software testing is a highly technical field requiring computing expertise, analytic competence, critical evaluation skills, and endurance. In recent years the field of game testing has come under fire for being extremely strenuous and unrewarding, both financially and emotionally.

<span class="mw-page-title-main">Diesel generator</span> Combination of a diesel engine with an electrical generator

A diesel generator (DG) (also known as a diesel genset) is the combination of a diesel engine with an electric generator (often an alternator) to generate electrical energy. This is a specific case of engine generator. A diesel compression-ignition engine is usually designed to run on diesel fuel, but some types are adapted for other liquid fuels or natural gas (CNG).

Extreme programming (XP) is an agile software development methodology used to implement software systems. This article details the practices used in this methodology. Extreme programming has 12 practices, grouped into four areas, derived from the best practices of software engineering.

High availability (HA) is a characteristic of a system that aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period.

<span class="mw-page-title-main">Shakedown (testing)</span>

A shakedown is a period of testing or a trial journey undergone by a ship, aircraft or other craft and its crew before being declared operational. Statistically, a proportion of the components will fail after a relatively short period of use, and those that survive this period can be expected to last for a much longer, and more importantly, predictable life-span. For example, if a bolt has a hidden flaw introduced during manufacturing, it will not be as reliable as other bolts of the same type.

The salt spray test is a standardized and popular corrosion test method, used to check corrosion resistance of materials and surface coatings. Usually, the materials to be tested are metallic and finished with a surface coating which is intended to provide a degree of corrosion protection to the underlying metal.

Performance engineering encompasses the techniques applied during a systems development life cycle to ensure the non-functional requirements for performance will be met. It may be alternatively referred to as systems performance engineering within systems engineering, and software performance engineering or application performance engineering within software engineering.

Stress testing is a software testing activity that determines the robustness of software by testing beyond the limits of normal operation. Stress testing is particularly important for "mission critical" software, but is used for all types of software. 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.

<span class="mw-page-title-main">Thermal profiling</span>

A thermal profile is a complex set of time-temperature data typically associated with the measurement of thermal temperatures in an oven. The thermal profile is often measured along a variety of dimensions such as slope, soak, time above liquidus (TAL), and peak.

Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. Continuous testing was originally proposed as a way of reducing waiting time for feedback to developers by introducing development environment-triggered tests as well as more traditional developer/tester-triggered tests.

<span class="mw-page-title-main">WebLOAD</span> Software testing tool

WebLOAD is load testing tool, performance testing, stress test web applications. This web and mobile load testing and analysis tool is from RadView Software. Load testing tool WebLOAD combines performance, scalability, and integrity as a single process for the verification of web and mobile applications. It can simulate hundreds of thousands of concurrent users making it possible to test large loads and report bottlenecks, constraints, and weak points within an application.

References

  1. Ellingwood, Justin (May 20, 2017). "An Introduction to Continuous Integration, Delivery, and Deployment". DigitalOcean . Archived from the original on December 8, 2017. Retrieved February 3, 2018. Soak testing involves testing software under significant production or production-like load for an extended period of time.