首页 > 其他分享 >数据迁移测试经验

数据迁移测试经验

时间:2023-04-23 14:33:05浏览次数:33  
标签:经验 验证 数据库 业务 测试 迁移 数据

博主写的很好:

https://mp.weixin.qq.com/s/zcprBpXLjAnYAqmi-9Nd4g

 

 

兴兵乐儿”微信公众号(兴业数字金融)

作者:汪立文、黄丹,兴业数金 测试服务中心

图片

 

以下为作者观点:

 

数据迁移,是在保证新旧系统业务连续性的前提下,将数据从旧数据库迁移到新数据库的过程,测试前通过迁移策略和方案了解新旧系统数据如何重构与关联,测试过程需确保数据迁移的正确性,主要体现在技术层面,确保数据0丢失,数据库库表处理正确,字段映射正确;业务层面确保数据量、各数据转换正确,确保业务连续性,数据能向后、向前兼容性测试,同时新旧功能可以正常使用,相关报表正确。

 

迁移测试关注的重难点?风险?

 

可能有同学会问:数据迁移测试需要关注哪些点?测试过程可能存在哪些风险呢?

 

首先,需要关注数据迁移的技术细节。数据迁移通常有两种类型,同类型数据库的迁移和不同类型数据库的迁移,不同类型的数据库迁移可能涉及表结构变化、编码和语法上的差异,会加大迁移的难度。在表结构方面,有的迁移是直接复制表,有的迁移是进行表结构拆分与合并,后者测试时需关注各表字段、类型、长度、映射等变化。迁移数据规模程度也会影响到迁移的结果,数据量大,数据库表迁移准确性难度增大。

 

另外,还需要关注迁移时点的数据的业务状态。通常来说,迁移时服务器应用会提前停止服务,并进行必要的数据检查,避免迁移期间产生新的业务或操作系统带来的迁移问题。若迁移涉及表结构的变更,表字段新增、修改、删除等变化。测试时需关注各表的更正情况,数据、报表变化情况。

 

最后,需要关注迁移时点前后的业务规则变化。除了考虑新系统的规则变化,还要考虑旧数据迁移后需要进行规则适配,例如旧系统没有,新系统有的字段,验证是否给到正确的默认值。保证旧系统数据迁移后业务的可用性与连续性,避免迁移后需重新回滚测试。

 

接下来,我们将详细介绍数据迁移的测试策略及测试实施,话不多说,上干货~

 

迁移测试验证策略与计划

 

一、需要熟悉迁移方案

 

了解新老系统上线方案,以及数据如何迁移,存量兼容数据如何处理。新老系统切换时是否关闭批量处理、日终初批处理服务。上线后,旧系统设备如何处理,是废弃还是继续使用。在数据并账方面,流程如何处理,账务如何迁移。在数据同步方面,了解同步时间策略和同步范围策略,是全量同步还是增量同步。

 

以商票系统为例,迁移总体技术方案采用编写迁移shell脚本,先在旧库建立与新库业务表相同字段的临时表,在旧库进行数据的筛选、加工至临时表,再将临时表中的数据导出成表数据文件,到oracle数据库使用sqlldr导入informix数据文件。存量数据一次性迁移,增量数据实时迁移方式进行迁移。迁移时点为日初后迁移,新系统上线后,旧系统依然在使用,故测试时不仅要验证迁移数据在新系统的业务验证,还需要对旧系统进行回归验证。

 

二、需要了解迁移范围和迁移规则

 

熟悉完迁移方案后,需圈定迁移范围才能针对性进行测试验证,分析是否涉及基础数据迁移,历史业务数据迁移,是否涉及流程中的数据迁移。

 

1.关注迁移数据种类和状态,不同类型数据测试关注点不同,例如:基础数据迁移后需要关注新旧系统数据一致性,纯历史数据迁移后,除了数据一致性外,还需要关注迁移后在新系统的查询和业务是否正常。流程中的数据需要关注每个环节的状态,关注在途业务是否能进行后续处理。

 

2.了解数据迁移规则,数据库变化点、字段变化如字段类型、长度、映射关系,根据规则设计测试案例,确保迁移后映射正确。

 

3.关注关联系统供数相关文件,分析涉及迁移的关联系统数量,以及相应的卸数文件,验证迁移后卸数给关联系统文件数据量以及字段的正确性。需要特别注意的是,编码方式可能产生变化,需及时同上下游系统同步,制定解决方案,避免乱码产生。

 

三、需要注意备份和回滚方案

 

涉及数据备份与回滚与应用备份与回滚,若迁移失败或迁移出现问题时,能及时进行迁移回滚。迁移时特殊情况考虑,如本次商票系统,生产发现有维护错或者缺失的记录,通过新设置的维护功能进行手工维护。

 

四、制定数据迁移测试计划

 

测试主要通过技术手段和业务手段的验证来确保迁移的正确性。测试前,根据SIT各轮次测试安排,规划数据迁移验证时间。通常在SIT三个轮次中安排两轮迁移测试,如果有UAT5回归测试,可在回归环境验证一轮。迁移涉及环境的重置,如果有外部联调单位,还需根据联调单位来调整迁移测试时间安排。

 

经验总结:

 

技术层面主要验证以下几点:

 

①数据量0丢失,包含数据是否有多迁移或少迁移,测试根据根据迁移规则筛选数据量,迁移前后进行迁移前后SQL检查。②数据库测试点:数据库表、字段处理规则;字段映射,迁移规则验证。③迁移日志检查,检查迁移分步处理是否合理,数据记录是否正确。④迁移初始值,如特殊流水号、业务ID、账务ID等流水号的配置和处理。

⑤考虑异常情况,异常数据,异常交易,异常处理时情况。

 

业务层面主要验证以下几点:

 

①登记簿报表功能及数据准确性;②功能可用性;

③业务连续性。

 

迁移测试准备与测试实施

 

迁移测试准备:

 

测试数据准备:数据预埋是测试前很重要的准备环节,决定是否有足够的,完整的数据满足迁移测试。确认迁移方案与计划后,准备迁移测试的数据,对于复杂场景,一定要梳理好场景表,根据梳理好的场景表等进行数据预埋,埋数结束需确认预埋数据完整性,避免切换系统后无法再增补所需数据。这部分数据可以在进入SIT测试时优先验证,因为部分数据有时效性,例如票据可能到期结清,无法用于后续业务连续性测试。

 

迁移前数据备份:迁移前相关业务报表数据导出备份,后续迁移测试进行核对。开发也会将迁移前预埋数据库备份,预防迁移问题需回滚。

 

迁移测试实施实例:

 

还是以商票系统为例,首先进行数据量验证,涉及以下两个方面:

 

①新旧系统业务表/公共数据表的查询、统计、前后端对比来校验;

②涉及公共的机构表数据、用户数据量确保数据的准确性。

 

其次,进行数据准确性验证

 

①确保数据0丢失,根据迁移规则筛选数据量确保迁移前数量与迁移后数量一致;②数据库测试点,通过对比迁移前后的数据库表、字段处理规则,字段映射,迁移规则进行验证。

③涉及公共表的机构、用户数据量岗位的权限准确。

 

第三,登记簿报表验证,主要涉及验证总行全辖、分行等各机构买卖登记簿/日终余额登记簿数据各字段是否正确、总数是否正确;最后进行功能可用性验证和业务连续性验证。

 

功能可用性验证和业务连续性验证主要验证以下方面:

 

①旧数据、新数据在新系统操作流程是否受到阻碍;旧系统在新系统挑票界面可以正常挑到票,以及等分化的票据业务流程不受影响。②能查询老数据、也能查询新数据;涉及新数据/老数据迁移后均能在新系统登记簿查询到,以及老数据均能在老登记簿查询到。③业务连续性验证,涉及票据迁移(传统票据贴现后),能保证后手业务能正常开展;涉及公共数据,保证用户或机构下相关业务能正常开展。

④最后是特殊情况和异常校验,流程中的数据(在途业务的处理),流程中的数据需要关注每个环节的状态,关注在途业务是否能进行后续处理。

标签:经验,验证,数据库,业务,测试,迁移,数据
From: https://www.cnblogs.com/ling7/p/17346482.html

相关文章

  • 软件开发工作总体流程图 、软件测试活动分布图、软件测试流程关系图
     软件测试的流程软件测试的流程一般要考虑3点:软件测试工作总体流程图、软件测试活动分布图和软件测试流程关系图。1.4.1软件开发工作总体流程图软件测试的流程图分为软件测试工作总体流程图、需求阶段测试工作流程图、设计与编码阶段测试工作流程图、集成测试和系统测试阶段工......
  • 模型动态测试工具TPT 19 新特性速览
    TPT19亮点    形式化需求:自动生成测试用例  在TPT19中,测试用例可以通过形式化需求自动创建—只需要按下按钮。 此前,形式化需求已经自动评估。现在我们对此进行了更深一步的改进。  参数集的混合执行  TPT19中可以更容易地创建参数集,可以多次执行,当......
  • 自动化测试框架pytest教程
    快速入门准备安装推荐安装anaconda,默认带pytest#pip3installpytest...$pytest-h#查看帮助...参考资料:https://pytest.orghttps://pypi.org/project/pytest第一个实例(通过)deftest_passing():assert(1,2,3)==(1,2,3)函数test_passing()......
  • 软件测试常见风险分析
    风险表现有以下几点:需求风险。对软件需求理解不准确,导致测试范围存在误差,遗漏部分需求或者执行了错误的测试方式;另外需求变更导致测试用例变更,同步时存在误差。测试用例风险。测试用例设计不完整,忽视了边界条件、异常处理等情况,用例没有完全覆盖需求;测试用例没有得到全部执行,有些......
  • 软件测试工程师具体工作内容是什么?
    使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。测试技术主要分为黑盒测试和白盒测试两大类。其中黑盒测试技术主要有等价类划分法、边界值法、因果图法、状态图法、测试大纲法以及各类典型的软件故障模型等;白盒测试的主要技术有语句覆盖、分支覆盖,判定覆盖、基本路径覆......
  • 测试环境服务器配置、生成环境服务器配置、测试机配置
    测试环境服务器配置:CPU:2核  内存:4GB(I/O优化)带宽5Mbps生产环境服务器配置:前端服务器3台配置CPU:4核  内存:4GB 带宽20Mbps;后端2台配置 CPU:4核  内存:8GB 带宽5Mbps测试机配置:CPU:8核内存:16G Speed:1000Mb/s......
  • 从应用看火山引擎 AB 测试 (DataTester) 的最佳实践
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群本文将从外部用户的角度介绍A/B测试平台的最佳实践。分享分为四部分,首先整体介绍A/B测试的应用场景,接下来结合字节内部和外部的一些应用来介绍各行业的最佳实践,最后分享在实际工作过程中,为......
  • linux中使用jmeter进行压力测试执行篇及遇到的问题
    上传jmx格式的脚本,修改权限chmod777XX.jmx 执行脚本 jmeter-n-tdenglu200.jmx-ldenglu200.jtl  -n代表nogui格式 -t代表执行的脚本 -l代表日志文件在linux里用vim编辑XX.jmx脚本,可以直接修改线程数循环次数,线程启动时间,测试链接,参数化的文件要上传到服......
  • 开发测试平台(六),组件化
    使用bootstrap,复制之前的bootstrap表格,在templates下新建一个component包,并且新建一个模板componentList.ftl,然后引入layout模板和<@body></@body>,把bootstrap表格复制到component.ftl里面2、在controller里新建一个ComponentController,component方法,启动component.ftl,3、修改第......
  • 我所了解的测试工具
    Selenium:用于Web应用程序测试的自动化测试工具。JMeter:用于压力测试、性能测试、负载测试的开源工具。Appium:适用于移动应用程序自动化测试的开源工具。TestNG:用于Java编程语言的测试框架。Postman:用于测试和管理API的工具。SoapUI:用于Web服务测试的开源工具。......