Recovery Testing

Recovery testing is a software testing in which it is tested whether the software can recover itself from any interruption, system halt, power failure, network error, hardware failure, software failure, deadlocks, etc and roll-back to its original state or the state when the interruption occurred without losing any important data.

Recovery testing is very important as it is solely related to the security of the software. A software without the capability of recovering itself from an interruption may not be of any use in some important cases.

Let us consider some examples of software recovery.

Example 1, A software like Google Chrome in which five tabs are open with different URLs load on them. Suddenly crashes and the operating system starts its process of troubleshooting it.

When the software has repaired the browser (Google Chrome) opens automatically and the URLs which were loaded at the time of interruption, are again loaded automatically, and exactly the same page is shown again. We call it - The software has recovered its state.

Example 2, A software installed on a packing machine takes an input of 100. which means once the process starts, 100 packets will be made in one chain. Let us say after the 25th packet, the machine experiences power failure, and the machine is turned off suddenly and so the software.

When the power is connected and the machine turns on, the software is loaded within a few seconds, though its an embedded OS. The software starts the process from the 26th packet and continues up 100 packets as was input initially before the power failure. We call it - The software has recovered its state.

Example 3, A system software (or the operating system) has to be installed in the system and at the time of installation of the software, the storage media is disconnected from the system for a second. Now, in this case, the installation will halt and thus it may be required to start the installation from first.

But in this case, the installation should start exactly from the point where it was interrupted. This is called recovery property of the software even during installation.

Features of Active Testing

Situations for Recovery

The dimension of recovery is many. There is a numerous factor which is seen when a recovery testing is carried out. Let us see what are the different situations when the recovery properties will be used.

Roll Back:

Rollback is a property of a software in which the software moves back to its normal state or the initial state when during the state change it faces any problem. This is called the consistency of the software.

Rolling back to its normal state or initial state is one of the major properties that good software must possess. Say for example: While performing a banking transaction due to an error in the server side, the transaction did not complete and the request is canceled and the balance is restored back in the account.

Now, the balance amount which is restored into the account should be displayed in the interface too, otherwise, the customer will never know about the update.

Data Recovery:

Data recovery is one of the major concern of recovery of the software. The data used by the software has to be kept in storage media or any local server during any operations so that in case of failure, the data can be retrieved back from the storage and the deleted or lost data can be restored back.

For this to happen the software must be able to back up the data to the internet in the background when during the software run.

Coping up with network error:

This is a property of the software to continue with the data transfer when the network connected to it is detached and connected back soon.

Let us consider an example when we start to download a file from the internet. Meanwhile, the internet cable connected to the computer is disconnected due to some reason and the download is paused.

When the internet is connected back, by simply clicking into the resume option we can start the download again exactly from the point where we left.

This is also a recovery property of the software. Directly no data is seen to be recovered because the file downloaded before the disconnection is saved into the system and so after the connection.

But the interesting fact is that there are different sessions, attributes, protocol ID, etc which are also data, and are responsible for the resumption of the download.

Security:

Recovery Testing is one of the main concern of Security. There are different websites and software related to the government, police, and hospitals which may crash due to many reasons, and the data lost cannot be compromised.

Therefore, there should be a strong backup and recovery procedure for those software and websites which can make the software alive once recovered.

Account Recovery:

In today's world, there is a numerous account which is created by the users, starting from email to different social sites and so on. When one invest more time on using a particular account, the users' data are stored in the relevant server for that account.

Now, if the user wants to delete the account and tries to recover the account back on a later period of time, then all the data are restored in his/her account automatically or an option is provided.

Date/File Corruption:

There are scenarios when an interruption in the file transfer can corrupt the file itself. Therefore, this is the function of the software that, all the transfer attribute are saved from time to time so that when the transfer is resumed again, it starts from the same point and the file does not get corrupted.

Compliance Testing

Performing a Recovery Testing

There are different ways of performing Recovery Testing. There are different scenarios and situations when the recovery may be needed. Before starting any kind of recovery testing, we must assure first that, the system (hardware and other software) are configured well.

Let us see some recovery scenario, then we will see how the recovery test case is created and performed.

Let us consider a file transfer between two systems using some application software using some Application Layer Procotol.

Now, the software is designed in such a way, that during the transfer all the transfer attributes such as sync-object, sender-id, receiver-id, activity-log, etc are recorded by the software. Now when the file-transfer stopped by disconnecting the cable, it stopped, did not show canceled.

When the cable is connected again, the transfer again started exactly from the point it was interrupted and the file was completely transferred. Now, when the file is opened, it shows some error. The file has been corrupted and has become obsolete. This is the problem.

The connection recovery was carried out successfully, but due to some lacking in the software, the file got corrupted.

In this article, we shall not see what are the reasons behind file corruption, etc. We are only concerned about recovery testing and possible test cases to carry out such testing.

Steps to carry out recovery testing : (Subject to change as per scenarios)

  • Step1 : To set up the environment of the software. It means that all the software and the hardware requirements are to be fulfilled.
  • Step 2: Click on the software and start the process you want. For example, go to the internet and start a file download.
  • Step 3: Disconnect the LAN wire directly from the system, by plugging it out(Assuming that, for internet connectivity, we are using LAN). The download should stop.
  • Step 4: Now plug in the LAN Cable after sometime when the internet is accessed.
  • Step 5: Go to the stopped file download icon and select resume download. The download should start soon from the point it was interrupted. Let the download complete.
  • Step 6: Try opening the file and see whether the file is valid or corrupt.

This is a simple example of recovery testing. As stated earlier that there are different scenarios of testing. And different situations which the testing can be carried out.

Test case for Recovery Testing

As was stated earlier, there are different ways of carrying recovery testing. Let us consider a simple example and let us see how a recovery testing test case looks like:

recovery-testing-testcase1

As we have seen in the test case, the internet browser was able to retain the download details, but failed to initiate the process at the point it was expected. Every time when the internet got disconnected, the progress parameters were saved but, when the internet was restored, the download started form first.

Even when the internet was interrupted after the 99% download, and restored, the file started to download from the beginning. Therefore, the software could not maintain its properties of recovery.

Age Testing

Emergencies for Recovery

Connection:

There are different connections related to a software. Like, the internet, data transfer cable, wifi, radio connections, etc. These connection are used for the different purpose, with a single aim of connecting the software with the external world.

Now during any interruption in file operation or any operation in which there are data transfers through the connection may push the software into a state of incompletion, corruption, asynchronization, etc. which may also load to losing the file or turning it into corrupt one.

Damage of servers:

Damage of servers is possible when there is any natural disaster or a sudden break down of the storage in the servers. In case of the damage in the servers, the data which are relevant to day to day life should be accessible and therefore there must be different back-up facilities provided by the server.

Comment / Suggestion Section
Point our Mistakes and Post Your Suggestions