Recovery Testing

In software testing, recovery testing is the activity of testing how well an application is able to recover from crashes, hardware failures and other similar problems.

Recovery testing is the forced failure of the software in a variety of ways to verify that recovery is properly performed. Recovery testing should not be confused with reliability testing, which tries to discover the specific point at which failure occurs.

Examples of recovery testing:

1. While an application is running, suddenly restart the computer, and afterwards check the validness of the application's data integrity.
2. While an application is receiving data from a network, unplug the connecting cable. After some time, plug the cable back in and analyze the application's ability to continue receiving data from the point at which the network connection disappeared.
3. Restart the system while a browser has a definite number of sessions. Afterwards, check that the browser is able to recover all of them.

Source: http://en.wikipedia.org/wiki/Recovery_testing

Usage

- Recovery is ability to restart the operation after integrity of application is lost.
- It includes reverting to a point where integrity of system is known , then reprocessing up until the point of failure.
- The time taken to recover depends upon :
1. the number of restart points
2. volume of application
3. training and skill of people conducting recovery activities
4. tools available for recovery

Objectives

- To ensure operations can be continued after a disaster .
- Recovery testing verifies recovery process and effectiveness of recovery process.
- Adequate back up data is preserved and kept in secure location.
- Recovery procedures are documented.
- Recovery personnel have been assigned and trained.
- Recovery tools have been developed and are available.

How to Use

- Procedures , methods , tools and techniques are assessed to evaluate the adequacy.
- After system is developed a failure can be introduced in the system and check whether the system can recover.
- A simulated disaster is usually performed on one aspect of application system.
- When there are no. Of failures then instead of taking care of all recovery testing should be carried out for one segment and then another i.e. structured fashion.

Who uses it

- System Analysts
- Testing professionals
- Management personnel.

When to use

- When user says that the continuity of the system is needed inorder for system to perform or function properly.
- User then should estimate the losses, time span to carry out recovery testing.

Examples

- Loss of communication , loss of database integrity.
- Evaluate adequacy of back up data.