User:Dbigfatnoob/sandbox

Longevity testing, also known as endurance testing, is a type of non-functional software testing. Longevity testing is a form of load testing which measures the ability of a system in handling a continuous and moderate set of operation for a long time.This is different from the traditional load testing techniques like volume testing where a system is subjected to heavy operations for a short period of time. This helps understand the performance of the system under sustained usage. The primary goal of longevity testing is to ensure that the throughput and response times after a long period of sustained operations on the system are as good as the beginning of the testing process.

Approaches
Different organizations employ different strategies for performing longevity testing. Here are few of the most popular strategies.
 * Controlled Load Approach : Here a controlled set of operations is run on the system for a prolonged period. The intensity of the load is around the average business load or slightly lower than that.
 * Extrapolation Approach : Here an extensive set of operations is run on the system for a relatively shorter period and the findings are extrapolated over a larger time period.
 * Cumulative Approach : This is an entire workflow rather than a specific approach. Using the cumulative approach both the micro and macro perspectives of the system can be studied.
 * Anomalies and usage of different modules are studied within a designated time frame for a deployed system.
 * Quiescent Testing: The system is kept idle for a specific period and the behavioral changes are studied.
 * Soak Testing: The system is gauged under heavy loads for a longer period.
 * Usage Testing: The system is subjected to a its regular operational load for a large period of time.

Benefits
Although longevity testing takes a long time to run, most enterprise organizations employ this approach of testing. Longevity testing primarily identifies issues such as Additionally, few metrics estimated during longevity testing are
 * Memory leak
 * Unoptimized garbage collection
 * Uncontrolled increase in the size of log files
 * Software license expiry for any of the dependent modules
 * Mean Time To Repair (MTTR): Average time taken by the developers/program to fix the detected bugs/defects.
 * Mean Time Between Failures (MTBF): Average time between two consecutive failures in the system.

Criticism of Longevity Testing
One criticism of Longevity testing is that it runs against the guiding principles of Agile software development. Agile practices recommend that software is released in small iterations and feedback is constantly incorporated into the next iteration. Longevity testing, on the other hand, would require that the software under test is run for an extended period of time, which may be too long to fit in small iterations. Also, with very short deployment cycles, it is often argued that Longevity Testing is not as critical as other forms of performance testing in that a new version of the software will be deployed in a very short amount of time. The rapid deployment cycle ensures that defects such as memory leaks do not impact users as each deployment returns systems to a fresh state.