Failover and Recovery Testing testing verifies product in terms of ability to confront and successfully recover from possible failures, arising from software bugs, hardware failure or communication problems (eg network failure). The objective of this test is to check the system restore (or duplicate the main functional systems), which, in the event of failure, ensure the safety and integrity of the data product being tested.
Testing for failure and recovery is very important for systems operating on the principle of "24×7". If you create a product that will work, such as the Internet, without this kind of test you just can not do. Because Every minute of downtime or data loss in case of equipment failure can cost you money, losing customers and reputation in the market.
The technique of this test is simulating various fault conditions and subsequent study and evaluation of the reaction of protective systems. During these inspections it turns out, was it achieved the desired degree of recovery after the crash occurred.
For clarity, we consider some variants of this test, and general methods for their implementation. The object of testing in most cases are highly probable operational problems, such as:
- Denial of electricity on a computer server
- Denial of electricity on the client computer
- Incomplete data processing cycle (interruption of data filters, interrupt synchronization).
- Announcement or introduction into arrays of data are not available or erroneous elements.
- Refusal data carriers.
These situations can be played as soon reached a point in development when all the system restore or duplication are ready to perform its functions. Technically, to implement the tests in the following ways:
- Simulate the sudden failure of electricity on the computer (disconnect the computer).
- Simulate the loss of communication with the network (turn off the power cord, disconnect the network device)
- Simulate the failure of carriers (disconnect the external storage medium)
- Simulate the situation in the presence of invalid data (a special test kit or a database).
Upon reaching the appropriate conditions of failure and performance-based recovery systems, we can estimate the product in terms of testing to failure. In all the cases listed above, upon completion of the recovery to be achieved some desired state of the data product:
- Data loss or corruption within an acceptable range.
- Report or reporting system, indicating the processes or transactions that were not completed because of errors.
It is worth noting that testing for failure and recovery - is very product-specific testing. Development of test scripts shall be subject to all the features of the system under test. Taking into account the rather harsh methods of influence, we should also evaluate the usefulness of this type of testing for a particular software product.