数据迁移测试概述:
经常听说应用程序已移至其他服务器,技术已更改,已更新至下一个版本或移至其他数据库服务器等,
- 这到底是什么意思?
- 在这种情况下,对测试团队会有什么期望?
从测试的角度来看,这一切都意味着应用程序必须进行彻底的端到端测试,并成功地从现有系统迁移到新系统。
在这种情况下,必须对所有数据进行系统测试,这些数据在旧应用程序中也要在新数据中使用。现有功能需要与新功能/修改功能一起进行验证。
迁移测试,也可以称为数据迁移测试,其中用户的全部数据都将迁移到新系统。
因此,迁移测试包括使用旧数据,新数据或两者的组合,旧功能(不变的功能)和新功能进行测试。
旧应用程序通常被称为“旧版”应用程序。与新的/升级的应用程序一起,还必须对旧应用程序进行测试,直到新的/升级的应用程序变得稳定和一致为止。对新应用程序的广泛迁移测试将揭示在旧应用程序中未发现的新问题。
什么是迁移测试?
迁移测试是一种将旧系统迁移到新系统的验证过程,以最小的中断/停机时间,实现数据完整性和无数据丢失,同时确保在应用程序运行后满足应用程序的所有指定功能和非功能方面的要求。
迁移系统的简单表示:
为什么要进行迁移测试?
众所周知,应用程序迁移到新系统的原因可能多种多样,包括系统整合,技术过时,优化或任何其他原因。
因此,虽然需要将使用中的系统迁移到新系统,但必须确保以下几点:
- 需要避免/尽量减小由于迁移而给用户造成的任何类型的干扰或不便,例如:停机,数据丢失。
- 尽量不给用户带来损害或仅很小的损害,确保用户是否可以继续使用软件的所有功能。例如:功能的改变,某个特定功能的删除。
- 预测并排除在真实系统实际迁移期间可能发生的所有可能的故障/障碍也很重要。
因此,为了通过消除这些缺陷来保证实时系统的顺利迁移,在实验室进行迁移测试是非常必要的。
从技术上讲,还需要出于以下目的执行它:
- 确保新的/升级的应用程序与旧版应用程序支持的所有可能的硬件和软件兼容。此外,还应该针对新的硬件、软件平台测试新的兼容性。
- 为了确保所有现有功能都可以在旧版应用程序中正常工作。与旧应用程序相比,新应用程序的工作方式不应发生任何变化。
- 由于迁移而产生大量缺陷的可能性非常高。许多缺陷通常与数据有关,因此需要在测试过程中识别并修复这些缺陷。
- 确保新的/升级应用程序的系统响应时间等于或小于对旧应用程序的响应时间。
- 确保服务器、硬件、软件等之间的连接完好无损,并且在测试过程中不会中断。在任何情况下,不同组件之间的数据流都不应中断。
什么时候需要进行此测试?
在迁移之前和之后都必须执行测试。
在测试实验室进行的迁移测试的不同阶段可以分类如下。
- 迁移前测试
- 迁移测试
- 迁移后测试
除上述内容外,以下测试也将作为整个迁移活动的一部分执行。
- 向后兼容性验证
- 回滚测试
在执行此测试之前,任何测试人员都必须清楚地了解以下几点:
- 作为新系统的一部分发生的更改(服务器、前端、数据库、模式、数据流、功能等)。
- 了解团队制定的实际迁移策略。迁移的发生方式,逐步发生在系统后端的更改以及负责这些更改的脚本。
因此,有必要对新旧系统进行深入研究,然后相应地规划和设计测试用例和测试场景,作为上述测试阶段的一部分,并制定测试策略。
数据迁移测试策略
设计用于迁移的测试策略包括要执行的一组活动和要考虑的几个方面。这是为了最大限度地减少由于迁移而产生的错误和风险,并有效地执行迁移测试。
此测试中的活动:
1、专业团队组成
与具有所需知识和经验的成员一起组成测试团队,并提供与要迁移的系统有关的培训。
2、业务风险分析、可能错误分析
当前业务不应在迁移后受到阻碍,因此应召开“业务风险分析”会议,包括适当的利益相关者(测试经理、业务分析师、架构师、产品所有者、业务所有者等),并确定风险和可实施的缓解措施。测试应包括发现这些风险的场景,并验证是否实施了适当的缓解措施。
使用适当的“错误猜测方法”进行“可能的错误分析”,然后围绕这些错误设计测试,以便在测试过程中发现错误。
3、迁移范围分析和识别
分析迁移测试的明确范围,何时以及需要测试什么。
4、确定适当的迁移工具
在定义自动或手动测试策略时,请确定将要使用的工具。例如:用于比较源数据和目标数据的自动化工具。
5、确定适当的迁移测试环境
为迁移前和迁移后的环境确定单独的环境,以执行测试所需的任何验证。了解并记录旧版和新版迁移系统的技术方面,以确保按此配置测试环境。
6、迁移测试规范文档并进行审查
准备迁移测试规范文档,其中清楚地描述了测试要求,测试范围,测试技术(自动、手动),测试方法(黑盒,白盒),测试周期数,测试时间表,创建数据并使用实时数据(需要掩盖敏感信息)的方法,测试环境规范,测试人员资格等,并与涉众进行评审。
7、迁移系统的生产启动
分析并记录要进行生产迁移的待办事项清单,并提前将其发布。