故障转移和恢复测试可确保测试对象能成功完成故障转移,并从硬件、软件或网络等方面的各种故障中进行恢复,这些故障导致数据意外丢失或破坏了数据的完整性。
故障转移测试可确保:对于必须始终保持运行状态的系统来说,如果发生了故障,那么备选或备份的系统就适当地将发生故障的系统“接管”过来,而且不会丢失任何数据或事务。
恢复测试是一种相反的测试流程。其中,将应用程序或系统置于极端的条件下(或者是模仿的极端条件下),以产生故障,例如设备输入/输出 (I/O) 故障或无效的数据库指针和关健字。启用恢复流程后,将监测和检查应用程序和系统,以核实应用程序或系统是正确无误的,或数据已得到了恢复。
测试目标:确保恢复进程(手工或自动)将数据库、应用程序和系统正确地恢复到了预期的已知状态。测试中将包括以下各种情况:
1、客户机断电
2、服务器断电
3、通过网络服务器产生的通信中断
4、DASD 和/或 DASD 控制器被中断、断电或与 DASD 和/或DASD 控制器的通信中断
5、周期未完成(数据过滤进程被中断,数据同步进程被中断)。
6、数据库指针或关键字无效
7、数据库中的数据元素无效或遭到破坏
测试方法:
应该使用为功能和业务周期测试创建的测试来创建一系列的事务。一旦达到预期的测试起点,就应该分别执行或模拟以下操作:
1、客户机断电:关闭 PC 的电源。
2、服务器断电:模拟或启动服务器的断电过程。
3、通过网络服务器产生的中断:模拟或启动网络的通信中断(实际断开通信线路的连接或关闭网络服务器或路由器的电源)。
4、DASD 和 DASD 控制器被中断、断电或与 DASD 和DASD 控制器的通信中断:模拟与一个或多个 DASD 控制器或设备的通信,或实际取消这种通信。
一旦实现了上述情况(或模拟情况),就应该执行其他事务。而且一旦达到第二个测试点状态,就应调用恢复过程。
在测试不完整的周期时,所使用的方法与上述方法相同,只不过应异常终止或提前终止数据库进程本身。
对以下情况的测试需要达到一个已知的数据库状态。当破坏若干个数据库字段、指针和关键字时,应该以手工方式在数据库中(通过数据库工具)直接进行。其他事务应该通过使用“应用程序功能测试”和“业务周期测试”中的测试来执行,并且应执行完整的周期。
完成标准:在所有上述情况中,应用程序、数据库和系统应该在恢复过程完成时立即返回到一个已知的预期状态。此状态包括仅限于已知损坏的字段、指针或关键字范围内的数据损坏,以及表明进程或事务因中断而未被完成的报表。
需考虑的特殊事项:
1、恢复测试会给其他操作带来许多的麻烦。断开缆线连接的方法(模拟断电或通信中断)可能并不可取或不可行。所以,可能会需要采用其他方法,例如诊断性软件工具。
2、需要系统(或计算机操作)、数据库和网络组中的资源。
3、这些测试应该在工作时间之外或在一台独立的计算机上运行。