Click here to Skip to main content
Click here to Skip to main content

Tagged as

Recovery Testing: WHAT and WHY!

, 1 Nov 2011 CPOL
Rate this:
Please Sign up or sign in to vote.
The WHAT and WHY of Recovery testing


As is known universally, failure is prospective to any existing entity in this world, but what can act as an extra edge to them is the ability to retain them to the customary functions to a reasonable extent. The same is true for software applications too, they fail even when tested rigorously because they are specified, designed, coded and tested by engineers who can make mistakes like any other human can. Therefore an implicit requirement of any software is that it should be developed in the light of restoring it back in case of catastrophic loss of data.

In principle, recovery is the ability to restart the operation after integrity of the application has been lost; it incorporates relapsing to a state where reliability of system is recognized, then recovering up to the point of failure. Thus, it becomes necessary to perform recovery testing to amplify the quality of the software that has been developed. The magnitude of recovery required for one system depends on the criticality associated with it. For example, software developed for banks must have almost 100% recovery.

This article outlines the basic definition of recovery testing, its needs and how to use it on an application under test. Recovery testing can be described as: compelling the software to fail to confirm that recovery is performed appropriately. Recovery testing is executed essentially to estimate in what time and with what effectiveness the software application can get back to its normal functioning when it undergoes any form of crash, hardware failure or any other aberrations. It should be indicated in the requirement specifications the level of recovery that is desired by the application to be tested.

As a software recovery testing Engineer, one does not only approve the recovery method, but also the aptness of the integral parts of that procedure. Their job vitally encompasses authenticating how well a system recovers from crashes, hardware failures, or other disastrous problems.

The tester must ensure that the following listed tasks are required to be done beforehand:

  1. Maintaining sufficient back-up information like various states of software, database of users, etc.
  2. Buffering back-up data in multiple locations
  3. Documenting recovery techniques that are being followed
  4. Allocating and educating recovery workforces

Recovery testing can be implemented in one of the following ways:

  1. Using procedures, methods, tools, and techniques meant for recovery testing: This requires assessing the procedures and documenting the same on the basis of predominant decisions and agendas, and it is finalized by experienced systems analysts, proficient testers, or management employees
  2. Introducing a failure into the system and verifying its ability to recover

Both the recovery testing methods are equally significant. The procedure employed is distinct based upon the type of recovery testing being performed.

A fabricated crash is usually carried out on one trait of the application system. For example, the test may be intended to find out whether individuals using the system can carry on processing and recover operations once the computer operation’s functionalities terminate abruptly.

While several traits of recovery need to be verified, it is preferred to test a single fragment at one go instead of introducing numerous failures together. When several failures are introduced, and issues are faced, it becomes even harder to isolate the reason behind the difficulty than from the state in which only one failure is brought into the system.

Thus, the crux of the matter is, with ever growing need of data integrity, stability and maintenance, the need of recovery is essential which makes it a vital part of the testing software’s quality attributes. The probable damage related with inability to recover actions over various time durations should be estimated on the basis of application. The level of the loss should be used to evaluate the number of resources to be allocated for disaster planning and recovery testing as well.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Garima Valecha
Tester / Quality Assurance QA InfoTech
India India
Software Quality Assurance Engineer

Comments and Discussions

QuestionCan I restore photos lost in the computer? Pinmemberanglahuang12hrs 49mins ago 
SuggestionSo, emm, and em, the rest? PinmentorDaveAuld21-Oct-11 0:32 
GeneralRe: So, emm, and em, the rest? PinmemberGarima Valecha30-Oct-11 23:43 
GeneralRe: So, emm, and em, the rest? PinmentorDaveAuld30-Oct-11 23:50 
GeneralRe: So, emm, and em, the rest? PinmemberGarima Valecha31-Oct-11 1:25 
Hi Dave,
Thanks a lot for your inputs!I really need them as a beginner ..I'll surely make the required enhancementsSmile | :)
GeneralRe: So, emm, and em, the rest? PinmemberEspen Harlinn1-Nov-11 11:40 
GeneralRe: So, emm, and em, the rest? PinmentorDaveAuld1-Nov-11 22:51 
GeneralRe: So, emm, and em, the rest? PinmemberEspen Harlinn9-Nov-11 23:51 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.1411028.1 | Last Updated 1 Nov 2011
Article Copyright 2011 by Garima Valecha
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid