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 types 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 recovery process is performed. This can be understood with a simple example of a browser. Say we have opened a browser with 6 sessions on it. Close it abruptly and relaunch it and check whether it is able to recover all those 6 sessions successfully or not. This is testing for a browser. Another example could be a mobile application say Music download with the data network. Download a large music file and in between the download go to a place where is no data network available, the download should pause and once you are back in the 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:
Advantages:
- Eliminates risks. This 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.
Disadvantages:
- Issues are sometimes unpredictable. In such 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 wasn’t included in requirements and is 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 a recovery of data takes a lot of time, recovery testing is a time-consuming process.
- It needs to be trained tester to perform this testing in a proper way. The 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 such testing can be done in a standard way, giving accurate results.
Since the performance of a software is the key to its success in the 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 from 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, the 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.
⇓ Subscribe Us ⇓
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:
Happy Testing!!!
- Volume Testing In Software Testing
- What Is Portability Testing In Software?
- What Is Endurance Testing In Software Testing?
- Disruptive Testing
- Model Based Testing: Testing Type You Must Know!
- Mutation Testing – Advantages and Disadvantages
- Detailed Understand of Usability Testing: What? Why? & How?
- Automation Testing Vs Manual Testing
- A Better Approach to Usability Testing
- What is Scalability Testing?
3 thoughts on “Recovery Testing”
Very nice article and impressed with the information posted here.
Really it is a excellent information of recovering testing. Now I clearly comes to Know What is recovering testing.
Thanks very much…
Really very good article.
Could you please share me the recovery test cases for an Atm macjine.
Thanks in advance.
Ashwini