Test Types
What Is a Soak Test?
A soak test holds a moderate, realistic load for hours or days to surface problems that only appear over time, such as memory leaks and pool exhaustion.
Also known as: Endurance Test, Longevity Test, Soak Testing
What only time reveals
Some defects are invisible at any load level and obvious at any duration. A handler that leaks 2 KB per request looks perfect in a ten-minute run and exhausts memory overnight. A log file that grows unrotated fills a disk on day three. A connection pool that leaks one connection in ten thousand requests takes hours to drain.
None of these are load problems, which is why a stress test will not find them. They are time problems, and the only instrument that detects them is a long run at a load the system handles comfortably.
Read the trend, not the average
The output of a soak test is a set of slopes. Average response time across the whole run is close to meaningless here — a run that starts at 80 ms and ends at 400 ms averages out to something that looks acceptable and hides a system that was dying.
Compare the first hour against the last. Any metric that trends steadily in one direction across an otherwise flat load is the finding, whether that is response time, resident memory, open file descriptors, connection count, or error rate.
How long is long enough
Long enough to cover at least one full cycle of everything scheduled. That means the run should outlast your log rotation, cache TTLs, token expiries, session timeouts, and nightly batch jobs — those boundaries are where soak tests find their best bugs.
- A few hours catches fast leaks and pool exhaustion.
- Overnight catches scheduled-job interference and log or disk growth.
- Several days catches slow leaks and anything tied to a daily or weekly cycle.