我第一家公司做过一个项目,我们的软件上线之前,客户已经应用了一套软件长达几年时间,老系统中存在上百万条数据,我们的项目的一部分工作,是将老的数据迁移到新的系统中,保证新的系统能够正常使用。

    这类的数据迁移在现在的软件项目中会经常出现,我现在的公司又一次面对这个问题。

    主要的思路是完整性、正确性可使用性这三方面,下面讲下我们当时所做的测试设计和思路:


    在开始之前我们需要一个完整的数据结构的文档,包括老的系统和新的,这样你才能有依据去设计和执行测试。跟迁移组要,他们如果不理解新老系统的数据和数据结构,很难想象他们是怎么迁移的。


    1、老的数据是否全部被导入到新系统中,你可能要追踪很多表中的很多数据字段。

    如老系统中有100W条数据,导入新系统后,数据条数仍为100w条(有些数据迁移后,新系统有新的存储规则,或业务逻辑变化,比如ID相同合并,条数不是以相同的数量显示,那么我们要知道换算关系,然后进行校验)

    对老系统中全部有价值数据字段(对客户有意义的,或者说新系统要用到的),我们要逐一验证,新库中能够找到与之对应的字段。

    2、老的数据在新的库中,是以正确的形式存储的。

    如果数据在老库中是一个值,我们将他追踪到新的库中,看值是否正确。如果到新库中值需要做相应变化,我们要按照逻辑去校验,是否变化的正确。

    有些在老库中是状态位,如老系统中性别字段包括4个,分别是0(男)、1(女),2(未登记),3(不详);而新系统中性别是男、女、未说明,我们要测试至少4条数据,查看0到新系统中,对应了男,1对应了女,3、4都对应了未说明。

    还有一些老数据,到新的库中需要有新的显示模式,比如以前工号只有5位,到新系统中自动升级为10位,我们要跟踪升级是否正确

    3、老的数据关联,在新库中是否仍然正确关联

    比如个人工资等信息,每个数据都应对应一个人员,到新的系统后,人员信息表发生变更,那么老的工资信息到新库中,是否还能正确对应人员。这种对应关系我们要跟踪几条数据(根据业务逻辑,覆盖可能的全部状态),查看到新系统后,各个数据是否正确对应。

    4、关注特殊数据对象

    有些数据是比较大的附件,在新的数据库中是否有正确的空间存储,我们需要关注这些大的对象,迁移到新的库中,是否正确被保存和能够继续使用。

    5、从业务层面去验证老数据,在新系统中的应用。这个是用新的系统,用导过来的数据跑下全部功能。