Soak testing is running a system at high levels of load for p rolonged periods of time . A soak test would normally execute several times more transactions in an entire day (or night) than would be expected in a busy day, to identify any performance problems that appear after a large number of transactions have been executed.
Also, it is possible that a system may ‘stop’ working after a certain number of transactions have been processed due to memory leaks or other defects . Soak tests provide an opportunity to identify such defects, whereas load tests and stress tests may not find such problems due to their relatively short duration.
Soak tests provide an opportunity to identify such defects, whereas load tests and stress tests may not find such problems due to their relatively short duration.
A soak test would run for as long as possible, given the limitations of the testing situation. For example, weekends are often an opportune time for a soak test.
Some typical problems identified during soak tests are listed below:
Serious memory leaks that would eventually result in a memory crisis, | |
Failure to close connections between tiers of a multi-tiered system under some circumstances which could stall some or all modules of the system. | |
Failure to close database cursors under some conditions which would eventually result in the entire system stalling. | |
Gradual degradation of response time of some functions as internal data-structures become less efficient during a long test |
Apart from monitoring response time, it is also important to measure CPU usage and available memory. If a server process needs to be available for the application to operate, it is often worthwhile to record its memory usage at the start and end of the soak test. It is also important to monitor internal memory usages of facilities such as Java virtual machines, if applicable.
A classic example of a system that requires extensive soak testing is an air traffic control system. A soak test for such a system may have a multi-week or even multi-month duration.