What is soak testing? How is it different from regular stress testing? Is it just more intense?
There are a lot of performance testing terms out there. It often seems like performance testers have three different terms to describe the same thing. If you aren't a hardcore performance tester (you know, those are the ones who think enterprise performance test tools are evil and they can quote load balancing algorithms) then you may not be able to understand the differences even when they are explained. Sometimes, that still happens to me. (But I still sometimes use enterprise performance testing tools -- sometimes.)
Whenever I get a question about performance testing terminology, I turn to performance testing vocabulary "Jedi Master" Ross Collard for the answer. Ross has written a lot of great material on performance testing, and one of his case studies on the topic is available on the Workshop on Performance and Reliability website. The paper is titled "System Performance Testing: A Case Study" and you can download it here (PDF).
On a side note, this is a must-read for anyone just getting started in performance testing. Take your time, work through the exercises if you can, and savor the years of Ross's experience that you will pull out of the materials. I often refer back to this case study when a term confuses me.
In the case study, Ross defines soak testing as "running a system a high load for a prolonged period of time." It's similar to endurance testing and burn-in testing, and is often used interchangeably. For me, the key distinction to soak testing is that load remains high throughout the run, while with an endurance test my load may vary based on the usage model I'm executing.
To contrast that with the term stress testing, a stress test is one where we deliberately try to break the system by pushing it beyond its specified limits. Stress testing is not limited to performance testing; a lot of manual testing is also stress testing. In performance testing terms, stress testing is often done by either overloading the system or by reducing certain system resources and examining the effects. In that respect, you can think of your soak testing as a specialized type of stress test.
This was first published in June 2008