Recovery testing is basically done in order to check how fast and better the application can recover against any type of crash or hardware failure etc. Type or extent of recovery is specified in the requirement specifications. It is basically testing how well a system recovers from crashes, hardware failures, or other catastrophic problems. Recovery testing is an effective way to check the recovery rate of an application when it has suffered a huge blow of hardware failure or crash. It is a way of manually stimulating the failure of the software to test the possibility and the rate of its recovery.
Recovery Testing in Software
There is an array of software testing to ensure its efficiency. One of these testing techniques is non-functional testing. Non-Functional testing is a term used for the part of the software that is not connected to a specific user action or function such as security. This is further sub-divided into many testing methods among which is Recovery testing.
How to perform recovery testing
Recovery testing can be performed in a number of ways. Some practical examples of stimulating software failure to test its recovery ability are:
- While a system is receiving some data from a network for processing, you can stimulate software failure by unplugging the system. After some minutes, you can plug the system again and test the ability of the software to continue receiving the data after the brief interruption.
- When a browser is working on some sessions, you can restart the system to stimulate software failure. After restarting the system, check the browser whether it can automatically recover the opened sessions.
- If you are downloading music to your mobile device by using your data, move to a place where there is no network. The downloading will be interrupted. Move back to where there is a network and see how it goes. If the downloading continues from where it stops, the system has a good recovery rate.
These are typical examples of what recovery testing is and the recovery rate is determined by some factors such as:
- The volume of the tested application.
- The amount of the restart points.
- The skills of the recovery testers.
- The type of tools available to promote recovery.
Recovery process cycle
The recovery process is expected to have five different steps:
- Normal operation
- Disaster occurrence
- Disruption of operation
- Clearing disaster through the recovery process
- Pulling together all the processes and information necessary to restore the software to normal.
A good software system is expected to seamlessly shift from one stage to the other without hitches to ensure that it has an acceptable recovery.
Some precautionary measures should be taken before carrying out recovery testing on a software program. A couple of what should be considered are:
- A condition that is nearly identical to the real-life situation should be created. Caution should be taken to ensure that the hardware, protocol, software, and firmware should be very close to the condition that is imitated.
- The complete checking of the system should be carried out as well as ensure that there is an identical configuration despite how expensive the process will be.
- The size of the backup is expected to be the same as the size of the original source of the information in some backup systems.
- An online backup may be a good backup idea to prevent total loss of information during recovery testing. However, it is important that you test the system’s restore ability before carrying out the recovery testing on a particular software program.
Advantages of recovery testing
It eliminates risks: Recovery testing exposes potential flaws that can lead to the failure of the product when used by the end users.
It improves the quality of the system: After detecting a flaw, it will be corrected to ensure the system is working as expected. This leads to improved system quality.