vali_111 - Fotolia

Smoke tests are fine, but sometimes soak testing is the answer

Some software applications can really benefit from a long testing time, and that's where soak tests come in. Expert Gerie Owen explains how and why to use that type of test.

What soak testing and should we be doing it?

We all know that a smoke test is a type of test that is designed to find obvious flaws that prevent us from moving forward with a particular build.

Soak testing might be described as the opposite approach, in that we let the software run under test for a relatively long time -- 24 hours or more. The purpose of soak testing is to find issues that may not manifest themselves until the application has been running for hours or days.

For example, in an e-commerce application, you might execute tests that call for random browsing and purchasing over a period of a day or more. Problems with database updates, memory and object leaks, threading, or other long-running processes will become more apparent after the application has been running for a relatively long period of time.

Clearly, you can't conduct a soak test every time you integrate and build, especially if you are in a continuous integration/continuous deployment environment. But if your application is designed to run continuously without reboot, you should absolutely be conducting soak tests before deployment. Even if you are in an Agile or DevOps environment, I would recommend scheduling time after significant sprints to assess the effects of new features on application performance and availability over time.

You should also be monitoring the application after deployment. While many testers think their job is done after deployment, smart testers will continue to execute tests on an application in production. After all, production is the ultimate soak test; it's where the application has to run indefinitely, without significant error. A few recorded tests running common application transactions can provide an early warning system for problems.

Continue on with your daily smoke testing. But also squeeze in soak testing here and there to test for issues you won't find in short, discrete tests.

Next Steps

Where is your software test career headed?

What data science might be in your testing future?

What skills will you need in the future?

Dig Deeper on Software test types