什么是恢复测试?举例
什么是恢复测试?
恢复测试 恢复测试是一种软件测试技术,用于验证软件从诸如软件或硬件崩溃、网络故障等故障中恢复的能力。恢复测试的目的是确定软件在灾难或完整性丢失后是否能够继续运行。恢复测试包括将软件回滚到已知完整性的状态,并重新处理直至故障点的事务。
在软件工程中,可恢复性测试是一种 非功能性测试 — 它涵盖与特定功能或用户操作无关的方面,例如可扩展性或安全性。这项工作由专业测试人员完成,并且事先会在安全位置保存充足的备份数据。
恢复测试示例
以下两个场景以最简单的方式展示了这项技术。在每个场景中,都会人为地强制造成故障,然后观察应用程序如何恢复运行。
- 网络中断: 当应用程序正在从网络接收数据时,拔下连接线。过一段时间后,重新插上连接线,并分析应用程序是否能够从连接断开的位置继续接收数据。
- 会话恢复: 在浏览器打开一定数量的会话的情况下重启系统,并检查浏览器是否恢复了所有会话。
下图以视觉形式表达了同样的概念。
恢复所需的时间取决于:
- 重启点数量
- 应用程序保存的数据量
- 开展恢复活动人员的培训和技能,以及可用的恢复工具
当出现多个故障时,恢复测试应该以结构化的方式进行,而不是一次性全部进行——先对一个部分进行测试,然后再对另一个部分进行测试。
恢复过程的生命周期
在设计测试用例之前,了解恢复测试介入的位置很有帮助。恢复过程的生命周期包含五个步骤:
- 正常运算
- 灾害发生
- 行动中断和失败
- 通过恢复过程进行灾难清理
- 重建所有流程和信息,使整个系统恢复正常运行。
下面的流程图按顺序显示了这五个阶段。
让我们详细讨论这五个步骤:
- 普通手术。 一个由硬件、软件和固件组成的系统,集成在一起以实现共同目标,在规定的时间内不间断地执行其设计任务。
- 灾难发生。 软件故障可能导致中断,其原因包括输入引起的故障、硬件故障导致的崩溃,或火灾、盗窃或罢工造成的损坏。
- 混乱和失败。 这是最痛苦的阶段,会导致业务损失、关系破裂、错失良机、工时浪费,以及不可避免的财务和商誉损失。灾难恢复计划可以最大限度地减少这一阶段的影响。
- 灾后清理。 如果事先制定了备用方案和风险缓解流程,恢复所需的时间和精力将大大减少。指定一个团队,并预先明确每个人的职责,可以明确责任,避免长时间的中断。
- 重建。 这可能需要多次操作才能重建所有文件夹及其配置文件。正确的恢复需要完善的文档和明确的重建流程。
恢复策略
恢复团队应制定自己的策略来恢复重要代码和数据,以使运营恢复正常。该策略因组织而异,取决于其所管理系统的关键性;对于关键系统而言,最终取决于一系列选择:
- 单个备份,或多个备份
- 多个备份可以保存在同一位置,也可以保存在不同位置。
- 在线备份或离线备份
- 备份可根据策略自动运行,也可手动触发。
- 一个独立的修复团队,或者负责这项工作的开发团队
每种选择都会产生成本,多次备份可能会消耗更多物理资源或需要独立团队。依赖性也很重要:公司如果将代码和数据保存在单一供应商处,就会面临风险,而大规模备份也会造成风险。 AWS 故障曾多次导致知名消费者服务同时离线。在这种情况下,独立的恢复能力至关重要。
如何进行恢复测试
策略已定,下一个问题是如何设置测试本身。执行恢复测试时应考虑以下几点。
- 创建尽可能接近实际部署条件的测试平台:接口、协议、固件、硬件和软件应与生产环境相匹配。
- 虽然详尽的测试可能耗时耗力,但仍然应该进行相同的配置和完整的检查。
- 如果可能,请在最终要恢复到的硬件上进行测试——尤其是在恢复到与创建备份的机器不同的机器时。
- 一些备份系统期望硬盘的大小与备份的硬盘大小完全相同。
- 应对硬盘过时问题:硬盘技术发展迅速,旧硬盘可能与新硬盘不兼容。恢复到旧硬盘状态 虚拟机 这有助于虚拟化软件模拟现有硬件,包括磁盘大小。
- 在线备份系统也不例外,需要进行测试。大多数服务提供商通过容错存储来保护用户免受介质问题的影响,因此故障往往在后期才会显现出来。
- 尽管在线备份系统非常可靠,但必须对恢复方面进行测试,以确认检索、安全性或加密方面没有问题。
由于恢复训练贯穿整个赛程,因此这些训练通常会安排在训练间隙进行。 系统测试 而不是以单位为单位。
修复后的测试程序
数据恢复只是整个过程的一半;恢复后的副本还必须证明可用。大多数大型企业都会定期聘请独立审计人员进行恢复演练。维护和测试一套全面的灾难恢复计划成本高昂,因此规模较小的组织通常依赖备份和异地存储。
文件夹和文件恢复后,会进行以下检查以确认它们已正确恢复:
- 重命名损坏的文档文件夹,以免恢复后的副本与之混淆。
- 统计恢复文件夹中的文件数量,并与原始文件夹中的文件数量进行比对。
- 使用通常使用这些文件的应用程序打开几个文件,并确认可以像往常一样浏览和更新数据。
- 打开几个不同类型的文件——图片、 MP3文件和资料,有的很大,有的很小。
- 使用大多数文件和目录比较实用程序。 操作系统 提供。


