相信很多同学在测试过程中会遇到新老系统数据迁移的情况,这时候就需要进行数据迁移的测试了,数据迁移测试是在数据从一个系统或环境迁移到另一个系统或环境时执行的测试过程。这种类型的测试旨在确保数据在迁移过程中的完整性、一致性、准确性和安全性。
一.数据迁移面临的风险
1.迁移时间成本
一般来说要进行数据迁移的系统都是大型甚至超大型的,这种情况下要迁移的数据都是数以亿计的,在生产环境的数据库上进行迁移,如果按照顺序迁移,则可能花费几个月甚至几年的时间,这是相当恐怖的。
2.迁移过程中服务是否停止
很多系统都是要时刻为用户提供服务而产生效益,现在基本上所有的系统升级、版本迭代都是在线进行,你玩的王者和吃鸡游戏就是典型,如果停机去迁移维护那会导致很大的损失,所以迁移测试时也要尽量保证服务100%处于可用状态。
3.数据的正确性、可用性、一致性
正确性:大家都知道老系统的很多代码都是直接使用数据库表中的数据,那么在迁移的过程中,要确保新系统也能取到对应的数据;
可用性:无论是迁移前,迁移过程中还是钱以后,数据都是可用状态;
一致性:在迁移过程中,要确保迁移过来的数据和旧系统的数据一致。
二.迁移前的准备工作
1.确认此次迁移的范围
这个工作很有可能是开发、运维和测试等众多角色参加,通过分析原有系统和现有系统的功能模块、大致的处理流程,分析两者的区别,以及历史数据对用户的影响程度等,在充分评估工作量及人力资源的情况下划定数据迁移的范围,因为对于大型项目来说,数据全部迁移花费的成本太大。
2.其次需要对比不同版本之间的区别
如果你对整个项目模块不太清楚的(比如我就当过空降兵去临时支援一个项目数据迁移),这种情况可以让产品、项目经理,运营提供新老系统功能差异对照文档,包括迁移之后,每个版本相关的功能迁移成新版本之后对应的功能变化,以及数据要如何处理,这个也需要出一份文档,可以方便在迁移的时候,对照着文档进行测试,容易看出来新旧版本的差异。
当时我们的数据迁移任务重,时间紧,加上人力相对较少,这里就必须要求我们用上一些工具和自动化脚本来加持,我这边也分享一些自己的心得:
A.数据库对比工具:可以使用数据库对比工具来比较源数据库和目标数据库之间的数据差异。一些流行的数据库对比工具包括:Beyond Compare、WinMerge、SQL Data Compare等。
B.数据校验框架:可以使用Python编写数据校验框架,用于对比源数据和目标数据之间的差异。例如,可以使用pandas库来加载源数据和目标数据,并进行数据比较和校验。
C.数据校验脚本:可以使用Python脚本编写数据校验脚本,通过查询源数据库和目标数据库,对比数据差异并生成校验报告。
3.迁移前数据备份
在迁移前将相关业务报表数据导出备份,后续迁移测试进行核对,开发也会将迁移前预埋数据库备份,预防迁移问题需回滚,这就好比你重装电脑系统前备份重要资料一个道理。
版权声明:本文出自《51测试天地》第七十九期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。