As the name suggests, recovery testing is the process of testing the capability of a software product to recover data quickly in the aftermath of system failures such as crashes, hardware glitches, network blackout, etc. A non-functional form of testing, recovery testing is performed through forced failing the software in different ways, and then check how well the recovery has panned out.
Recovery testing entails a series of simulated force failed scenarios to verify the efficacy of recovery mechanisms of different software systems or products. Some of the potential failures and their simulated processes for recovery testing are:
The server is disconnected at different points of time, so selected such that they visualise all possible application states.
The main power supply is unplugged and then re-plugged with different strength of power supplied.
The system components are run under extreme working conditions of temperature and humidity to gauge their responsiveness, by running performance tests.
Feeding incorrect data from the device side.
The proximity of signal generating appliances from the product is varied, while on the other hand, performance tests are executed.
A temporary shutdown of the local network or running the operating system under different settings.
Above normal load is simulated on specific components that would generate a response on the application under test.