数据迁移,是在保证新旧系统业务连续性的前提下,将数据从旧数据库迁移到新数据库的过程,数据迁移测试前通过迁移策略和方案了解新旧系统数据如何重构与关联,测试过程需确保数据迁移的正确性,主要体现在技术层面,确保数据0丢失,数据库库表处理正确,字段映射正确;业务层面确保数据量、各数据转换正确,确保业务连续性,数据能向后、向前兼容性测试,同时新旧功能可以正常使用,相关报表正确。
一、需要熟悉迁移方案
了解新老系统上线方案,以及数据如何迁移,存量兼容数据如何处理。新老系统切换时是否关闭批量处理、日终初批处理服务。上线后,旧系统设备如何处理,是废弃还是继续使用。在数据并账方面,流程如何处理,账务如何迁移。在数据同步方面,了解同步时间策略和同步范围策略,是全量同步还是增量同步。
以商票系统为例,迁移总体技术方案采用编写迁移shell脚本,先在旧库建立与新库业务表相同字段的临时表,在旧库进行数据的筛选、加工至临时表,再将临时表中的数据导出成表数据文件,到oracle数据库使用sqlldr导入informix数据文件。存量数据一次性迁移,增量数据实时迁移方式进行迁移。迁移时点为日初后迁移,新系统上线后,旧系统依然在使用,故测试时不仅要验证迁移数据在新系统的业务验证,还需要对旧系统进行回归验证。
二、需要了解迁移范围和迁移规则
熟悉完迁移方案后,需圈定迁移范围才能针对性进行测试验证,分析是否涉及基础数据迁移,历史业务数据迁移,是否涉及流程中的数据迁移。
1.关注迁移数据种类和状态,不同类型数据测试关注点不同,例如:基础数据迁移后需要关注新旧系统数据一致性,纯历史数据迁移后,除了数据一致性外,还需要关注迁移后在新系统的查询和业务是否正常。流程中的数据需要关注每个环节的状态,关注在途业务是否能进行后续处理。
2.了解数据迁移规则,数据库变化点、字段变化如字段类型、长度、映射关系,根据规则设计测试案例,确保迁移后映射正确。
3.关注关联系统供数相关文件,分析涉及迁移的关联系统数量,以及相应的卸数文件,验证迁移后卸数给关联系统文件数据量以及字段的正确性。需要特别注意的是,编码方式可能产生变化,需及时同上下游系统同步,制定解决方案,避免乱码产生。
三、需要注意备份和回滚方案
涉及数据备份与回滚与应用备份与回滚,若迁移失败或迁移出现问题时,能及时进行迁移回滚。迁移时特殊情况考虑,如本次商票系统,生产发现有维护错或者缺失的记录,通过新设置的维护功能进行手工维护。
四、制定数据迁移测试计划
测试主要通过技术手段和业务手段的验证来确保迁移的正确性。测试前,根据SIT各轮次测试安排,规划数据迁移验证时间。通常在SIT三个轮次中安排两轮迁移测试,如果有UAT5回归测试,可在回归环境验证一轮。迁移涉及环境的重置,如果有外部联调单位,还需根据联调单位来调整迁移测试时间安排。
迁移测试准备:
测试数据准备:数据预埋是测试前很重要的准备环节,决定是否有足够的,完整的数据满足迁移测试。确认迁移方案与计划后,准备迁移测试的数据,对于复杂场景,一定要梳理好场景表,根据梳理好的场景表等进行数据预埋,埋数结束需确认预埋数据完整性,避免切换系统后无法再增补所需数据。这部分数据可以在进入SIT测试时优先验证,因为部分数据有时效性,例如票据可能到期结清,无法用于后续业务连续性测试。
迁移前数据备份:迁移前相关业务报表数据导出备份,后续迁移测试进行核对。开发也会将迁移前预埋数据库备份,预防迁移问题需回滚。
迁移测试实施实例:
还是以商票系统为例,首先进行数据量验证,涉及以下两个方面:
①新旧系统业务表/公共数据表的查询、统计、前后端对比来校验;
②涉及公共的机构表数据、用户数据量确保数据的准确性。
其次,进行数据准确性验证:
①确保数据0丢失,根据迁移规则筛选数据量确保迁移前数量与迁移后数量一致;
②数据库测试点,通过对比迁移前后的数据库表、字段处理规则,字段映射,迁移规则进行验证。
③涉及公共表的机构、用户数据量岗位的权限准确。
登记簿报表验证,主要涉及验证总行全辖、分行等各机构买卖登记簿/日终余额登记簿数据各字段是否正确、总数是否正确;最后进行功能可用性验证和业务连续性验证。
功能可用性验证和业务连续性验证主要验证以下方面:
①旧数据、新数据在新系统操作流程是否受到阻碍;旧系统在新系统挑票界面可以正常挑到票,以及等分化的票据业务流程不受影响。
②能查询老数据、也能查询新数据;涉及新数据/老数据迁移后均能在新系统登记簿查询到,以及老数据均能在老登记簿查询到。
③业务连续性验证,涉及票据迁移(传统票据贴现后),能保证后手业务能正常开展;涉及公共数据,保证用户或机构下相关业务能正常开展。
④最后是特殊情况和异常校验,流程中的数据(在途业务的处理),流程中的数据需要关注每个环节的状态,关注在途业务是否能进行后续处理。