Soak Testing 101: The Basics

by Yulia Lomanova | March 9, 2017 8:44 am

Note: the article was updated in July 2020.

The last thing you expect from a recently deployed application is its instant crash or an abrupt slowdown in the operational flow. Luckily, there is a testing type, developed specifically for ensuring the reliability of a service in production. Meticulously performed soak testing comes in handy when you need to understand how capable your application is of running smoothly under a regular load for an indefinite period. Ready to expand your QA expertise? This quick guide outlines the algorithm and software diagnosis potential for soak testing.

What is Soak Testing?

The soak test is part of performance testing, intended to identify defects in the software that may show up after an extended time. To confirm the stability of the system, it simulates the typical load in an accelerated way, meaning events are introduced to the system more often than they would be in a real-life scenario. The preferable testing duration is determined by the required time for the application to run seamlessly and dependent upon the availability of the test lab. Given the extended run time, this type of testing also calls for some sort of automation.

When you test a fully deployed application, it should cover both the application code and its interaction with the side software (the 3rd party application frameworks, embedded web servers, service codes, etc.) on which your product is built. It is also important to test the first release of the software, as its reliability needs to be confirmed.

What Types of Problems It Allows to Identify

Soak Testing Process Algorithm (for apps running on a JVM)

The first step towards the goal of performing a successful soak test is to set up and measure resource usage. Make sure you can connect your JMX client to the service’s remote JVM. Before starting the app, check the available resources and how they have been used by the existing processes. Record them to get a baseline of the minimum resource usage needs.

Given that soak testing requires automation, the only thing remaining under your control during the process itself is to check several performance indicators, including the current resource usage, “free” RAM on the node, RAM usage per process, and Docker container resource usage.

The soak testing results analysis includes error rates, node / container-level and JVM-resource usage metrics.

Soak Testing Vs Other Performance Testing Types

Even though load, spike, stress, and soak tests have similar architecture, their aims differ markedly.

Let Us Help You!

We hope that this article helped you to understand the basics of soak testing. To get more information about Software Testing & QA, check out our services[1] or chat with us right away.

Learn more from QATestLab

Related Posts:

Endnotes:
  1. check out our services: https://qatestlab.com/
  2. HP LoadRunner vs HP Performance Center: https://blog.qatestlab.com/2017/03/14/performance-testing-tools/
  3. E-Commerce: What to Test during Load Check?: https://blog.qatestlab.com/2017/01/31/ecommerce-load-testing/
  4. The Basis of Performance Testing: https://blog.qatestlab.com/2017/01/06/performance-testing-basis/

Source URL: https://blog.qatestlab.com/2017/03/09/soak-testing-basics/