A good medicine is the one which helps patient to recover soon from illness, similarly a good software application is the one which recovers in no time from crashes, hardware failures or other such type of failures. Recovery testing is a part of Non-Functional Testing which tests how soon the application recovers when it is crashed or if hardware gets failed. It is categorized under performance testing and sometimes also carried out with load testing.
What is Recovery Testing?
Recovery Testing is the failure which is forced into an application to check how well the recover process is performed. This can be understood with a simple example of browser. Say we have open a browser with 6 sessions on it. Close it abruptly and re launch it and check whether it is able to recover all those 6 sessions successfully or not. This is recovery testing for browser. Another example could be of a mobile application say Music download with data network. Download a large music file and in between the download go to a place where is no data network available, download should pause and once you are back in network it should start from the point it was paused (network was lost) not from the beginning. If it starts again from the beginning then data used before in downloading would be lost and hence it becomes costly to use such application.
In above two examples, we saw how recovery testing is performed and also how the quality of the application can be defined on the basis of the output of recovery testing. Let’s see some more advantages and disadvantages below:
Advantages and Disadvantages of Recovery Testing:
- Eliminates risks. Recovery testing is performed by trained tester or test team so outputs are accurate to a great extent. It reduces risk of failure of the product in market.
- Improves system quality: when bugs are found and fixed, it boosts the quality of the system.
- Performances related issues are found and fixed before the software goes live in the market.
- Issues are sometimes unpredictable. In recovery testing, sometimes tester has obvious scenarios to test and most of them are there in requirements. We saw above in browser recovery test example one such scenario. But sometimes unpredictable issues come into picture which weren’t included in requirements and are important for the quality assurance of the software. These are some random test cases which need to be executed.
- Testing is time consuming, since test cases are random and testing related to recovery of data takes a lot of time, recovery testing is a time consuming process.
- It needs trained tester to perform recovery testing in a proper way. Tester needs lots of back up files and data in order to perform recovery testing. He needs to have some experience and must be trained so that recovery testing can be done in a standard way, giving accurate results.
Since performance of a software is the key to its success in market, Recovery Testing plays a very important role to ensure the software quality.
What all points a tester should keep in mind before performing Recovery Testing?
- Test plan preparation should be done beforehand. This includes designing test cases according to the requirements, result analysis and the test environment.
- Test environment preparation involves designing the test environment according to the required resources available and make it as much close as possible with the real environment.
- Back up information maintenance. This includes maintaining of sufficient data backup such as databases having valuable information or customer details, software versions etc.
- For Recovery Testing, back up should not be present at one location but multiple locations.
- Every test technique must be properly documented. It can be used for future testing reference.
- If necessary, training should be provided within the team so that every standard procedure is followed and test results are accurate.
Recovery testing is also known as Disaster recovery testing. Most of the big organizations have disaster recovery centers to make sure that if any damage happened to the system, they will have a back up to recover the loss and business would not be affected. They back up data once in a week or month to ensure that all the backup files are up to date. From a software perspective, recovery testing ensures that even after a crash or any catastrophic issues, software application will recover and its normal functionality won’t get affected in any way. It can be done manually or using some of the automation tools which force software application to crash or fail and then test its recovery. Less recovery time means more quality.
If you would like to add more details on how this testing is performed in your organization then feel free to add your comments below.
If you are not regular reader of this website then highly recommends you to sign up for our free email newsletter!! Sign up just providing your email address below: