还建议将端到端功能测试用例和其他可能的测试用例自动化,以减少测试时间并快速获得结果。
测试人员编写一些用于迁移后执行的测试用例的建议:
- 迁移应用程序时,并不意味着必须为整个新应用程序编写测试用例。已经为旧版设计的测试用例对于新应用程序仍应该适用。因此,尽可能使用旧的测试用例,并在需要时将旧的测试用例转换为新应用程序的用例。
- 如果新应用程序中有任何功能更改,则应修改与该功能相关的测试用例。
- 如果在新应用程序中添加了任何新功能,则应针对该特定功能设计新的测试用例。
- 当新应用程序中的任何功能删减时,不应考虑相关旧应用程序的测试用例进行迁移后执行,并且应将它们标记为无效并分离。
- 设计的测试用例在使用方面应始终可靠且一致。关键数据的验证应包含在测试用例中,以便在执行过程中不会遗漏。
- 当新应用程序的设计与旧版(UI)的设计不同时,应修改与UI相关的测试用例以适应新设计。在这种情况下,测试人员可以根据发生的更改量来决定是更新还是重写。
向后兼容性测试
系统的迁移还要求测试人员验证“向后兼容性”,其中引入的新系统与旧系统(至少两个以前的版本)兼容,并确保与这些版本完美配合。
向后兼容性是为了确保:
- 新系统是否支持前两个版本以及新版本中支持的功能。
- 该系统可以成功地从前两个版本迁移而来,没有任何麻烦。
因此,必须通过具体执行与支持向后兼容性相关的测试来确保系统的向后兼容性。需要设计与向后兼容性相关的测试,并将其包含在“测试规范”文档中以供执行。
回滚测试
如果在执行迁移时出现任何问题,或者在迁移过程中的任何时间出现迁移失败,那么系统应该有可能回滚到旧系统并快速恢复其功能,而不会影响用户和先前支持的功能。
因此,为了验证这一点,需要将迁移故障测试方案设计为异常测试的一部分,并且需要测试回滚机制。恢复到旧系统所需的总时间也需要记录并在测试结果中报告。
回滚后,应运行主要功能和回归测试(自动化),以确保迁移不会影响任何因素,并且回滚成功地将旧系统恢复到原位。
图片
迁移测试摘要报告
测试摘要报告应在完成测试后生成,并应涵盖作为迁移各个阶段的一部分而执行的各种测试/场景的摘要报告,以及结果状态(通过/失败)和测试日志。
应当明确报告以下活动记录的时间:
- 迁移总时间。
- 应用程序的停机时间。
- 迁移10000条记录所花费的时间。
- 用于回滚的时间。
除上述信息外,还可以报告任何意见/建议。
数据迁移测试中的挑战
该测试面临的挑战主要是数据。以下是其中的一些:
1、数据质量
我们可能会发现在旧的应用程序中使用的数据在新的/升级的应用程序中质量很差。在这种情况下,必须提高数据质量以满足业务标准。
诸如假设,迁移后的数据转换,在旧版应用程序本身中输入的数据等因素都是无效的,不良的数据分析等会导致不良的数据质量。这会导致高昂的运营成本,增加的数据集成风险以及与业务目的的背离。
2、数据不匹配
从旧版迁移到新/升级版应用程序的数据可能在新版中不匹配。这可能是由于数据类型,数据存储格式的更改,可能会重新定义使用数据的目的。
这导致需要付出巨大的努力来修改必要的更改,以纠正不匹配的数据或接受它并对其进行调整。
3、数据丢失
从旧版迁移到新/升级的应用程序时,数据可能会丢失。这可以是必填字段,也可以是非必填字段。如果丢失的数据是针对非必填字段的,则其记录将仍然有效,并且可以再次更新。
但是,如果必填字段的数据丢失,则记录本身将变为无效并且无法撤回。这将导致巨大的数据丢失,如果捕获正确,则必须从备份数据库或审核日志中进行检索。
4、数据量
在迁移活动的停机时间窗口内迁移需要大量时间的海量数据。例如:电信行业的刮刮卡,智能网络平台上的用户等,这里的挑战是,到时候,清除旧数据,将创建大量新数据,需要再次迁移。自动化是海量数据迁移的解决方案。
5、真实环境仿真(带有实际数据)
在测试实验室中模拟真实环境是另一个真正的挑战,测试人员会在真实数据和真实系统中遇到不同种类的问题,而这些问题在测试期间不会遇到。
因此,在执行数据迁移测试时,数据采样,真实环境的复制,识别与迁移有关的数据量非常重要。
6、模拟数据量
团队需要非常仔细地研究真实系统中的数据,并应提出典型的数据分析和采样方法。
例如:年龄段在10岁以下,10-30岁以下的用户,尽可能从真实环境获取数据,如果没有,则需要在测试环境中进行数据创建。需要使用自动化工具来创建大量数据。如果无法模拟容量,则可以在适用情况下使用外推法。
缓解数据迁移风险的提示
下面给出了一些技巧,可以减轻数据迁移风险:
- 标准化旧系统中使用的数据,以便在迁移时,标准数据将在新系统中可用;
- 增强数据质量,以便在迁移时可以进行定性数据测试,从而为最终用户带来测试的感觉;
- 在迁移之前清理数据,以便在迁移时,新系统中不会出现重复的数据,这也使整个系统保持干净;
- 重新检查约束条件,存储过程,复杂查询以产生准确的结果,以便在迁移时也可以在新系统中返回正确的数据;
- 确定正确的自动化工具,以便在新系统中与旧系统相比执行数据检查/记录检查。
结论
因此,考虑到执行数据迁移测试所涉及的复杂性,请记住在测试期间验证中任何方面的小失误都将导致生产中迁移失败的风险,因此进行仔细而透彻的研究非常重要。迁移前后的系统分析,使用强大的工具以及熟练且训练有素的测试人员来计划和设计有效的迁移策略。
正如我们所知,迁移对应用程序的质量有着巨大的影响,整个团队必须投入大量的精力来验证整个系统的各个方面,如功能、性能、安全性、可用性、可用性、可靠性、兼容性等,从而确保成功的“迁移测试”。