• 8
  • 9
分享
  • 迁移测试中最重要的一点,竟然经常被忽略?——软件测试圈
  • 曼倩诙谐 2022-04-21 09:43:33 字数 1620 阅读 1994 收藏 9

  目标

  以银行的核心系统从旧核心系统更换为新核心系统为基础,对导入到迁移环境的生产数据(已脱敏)进行数据的验证。

  数据迁移环境

  迁移环境需要A、B两套环境。其中,A环境为新系统环境、B环境为老系统环境。

  数据迁移小组

  迁移小组:由迁移技术人员、业务人员和测试人员组成。负责迁移规则的验证、数据的静态核对;迁移规则的验证为全部验证,而数据的静态核对,则进行抽验。

  数据迁移的验证

  迁移规则的验证

  迁移过程为源表中间表目标表,技术测试验证源表中间表、中间表目标表之间迁移测试的一致性,确保迁移数据全部符合按照迁移规则,确保老核心系统中需要迁移的数据都能全部迁移到新一代核心系统中。

  数据的静态验证

  在数据迁移成功后,迁移小组根据业务需求对关键业务数据展开源系统与目标系统的直接比对。

  比如存款账户、卡档案信息、非结清类贷款、正在使用的凭证、未解冻/解挂的信息等有效的账务业务数据汇总数据的核查和关键数据的抽验。

  对于源系统到目标系统存在这种简单关系直接进行源数据表和目标数据表的比对,这部分由程序进行。迁移小组进行核对方式包括汇总核对、明细核对、账务核对。

  例:

1.png

  汇总核对

  以中间表为参照,根据每张迁移表的特点,设计不同维度的统计条件,分别统计源表、目标表的数据量、金额等,全方位保证迁移数据的完整性。统计维度包含但不限于:网点、币种、产品、状态、业务种类、凭证种类、客户类型等。

  明细核对

  1)数据准确性

  根据迁移规则,核对源表中间表、中间表目标表的数据准确性,直接迁移或映射的字段对比字段值,有加工规则的按规则加工后核对。

  对于源表、目标表字段类型不一致的,关注类型转换是否正确。

  对于源表、目标表长度不一致的,关注是否出现截取造成数据失真。

  2)数据合法性

  检核迁移数据的合法性,对迁入目标表的迁移数据进行检核,保证迁移数据在新系统的表中的合法性以及关联关系。

  账务核对

  迁入后新系统比如新核心与中间表之间包括存款、内部资金、现金、重空等不同储种、币种、产品的余额、积数移入前后是否一致。

  数据验证的关注点

  1)单字段检核注意事项

  检查数据是固定字段的取值范围和格式。

  缺省字段的检查:如表字段不允许为空。

  标准参数的检核:如币种、账户状态、客户类型、凭证种类等。

  日期合法性检核:如日期格式合法。

  2)多字段检核注意事项

  检查表中多个字段间关联和约束关系。

  表字段中冻结止付金额有值:则检查冻结止付状态是否生效。

  销户日期有数据:则检查销户日期大于等于开户日期,状态为销户。

  活期利息:则检查利息=积数*利率。

  可用余额:则检查可用余额=余额-冻结金额-止付金额。

  3)多表间数据关联与约束性检核

  检查机构号是否存在机构信息表中;

  检查柜员是否存在机构柜员表中;

  产品码是否存在产品信息表中;

  币种是否存在币种表中;

  客户号是否存在客户信息表中;

  还款账号是否存在活期账户表中;

  凭证种类是否存在凭证种类登记薄中;

  账户冻结是否存在冻结解冻登记薄中;

  账户止付是否存在止付解付登记薄中;

  卡号是否存在卡介质登记薄中。

  业务比对验证测试

  迁移完成后,迁移小组中的业务人员,挑选有代表性的数据(如:本行每个行所挑选对公客户及其存款、贷款账户20条,或每个行所挑选50条对私客户及其账户)进行逐条比对。

  挑选数据的原则是覆盖各种业务数据种类,每种类型都需要抽样几笔,比对重要字段的正确性。

  业务人员从业务角度提出核对报表、清单,对迁移数据进行汇总核对。

  小结

  迁移测试中,数据迁移是整个迁移方案中最基础的环节,而迁移数据的正确性为整个迁移测试提供最基本的数据保障。因此,迁移数据的核检是整个迁移测试方案中最重要的一环。



作者:陆空   

来源:http://www.51testing.com/html/00/n-6127800.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   背景  单元测试是项目研发的重要阶段。相比接口测试、界面测试,单元测试外部依赖最少、颗粒度最细,可以在开发阶段更快、更直接地发现Bug,适合开发团队快速排查错误,是保障研发质量的重要手段之一。  但是,随着单元测试用例数量的增加,执行速度也会逐渐变长。我们经常看到一个现象:在研发人员的研发终端上,运行数千条单元测试脚本,时间超过1个小时。  本文主要是总结了笔者近年来的单元测试经验,分享如何有效提升单元测试的运行速度,节约开发时间。  提升妙招  1、优化单元测试代码  例如:    @Test     pub...
            0 0 1058
            分享
          • 工作久了发现,在互联网这个圈子里,软件测试工程师和产品经理是两个"水分"较大的岗位,在招人的时候如果不擦亮眼睛,稍有不慎就可能会踩雷。前不久面试了两位同学,面试过程有点让我大跌眼镜,为了让大家能避免相同的误区,所以才写一篇文章,分享一些我个人的经验。面试经历之前面试的一位同学简历相当漂亮,看完之后我觉得能力绝对在我之上,大致信息如下:工作时间8年 。在一家做AI的公司,从事算法测试。对持续集成及其工具比较熟悉。自己开发了测试工具平台。面试之前,我还特地的准备了几道算法题,总之是觉得碰上大牛的心态。面试过程大致如下:问:"介绍工作情况,及都做了哪些事情"。...
            0 1 3050
            分享
          • 最近有个同事问:一个功能API自动化做了,UI自动化还需要做吗?刚接到这个问题的时候我愣了一下。因为这两个自动化主要覆盖的场景完全不同。为啥是互斥的?一般情况下:这2个都是需要的。打个比方:过滤沙子的时候,不同颗粒度的沙子就需要不同类型的滤网去过滤。首先我们看下UI自动化优点:它主要覆盖场景就是用户使用场景。模拟用户操作来进行自动化。根据用户操作方法来使用脚本替代用户操作。一般是在功能测试后期代码稳定后实现。UI自动化缺点:UI自动化缺点也很明显,依赖开发UI界面的稳定性。所以UI自动化相对来说比较脆弱,维护成本比较高。运行时间长,质量反馈稍微有点慢。而且脚本需要添加等待时间来模拟页面操作后台...
            0 0 719
            分享
          •   js是单线程的语言,单线程是指所有的程序路径按照一定的顺序执行,只有前面的程序执行了,后面的程序才会执行。  也就是说在同一时间,js只能做一件事情,为了协调浏览器产生的各种事件、网络处理、前端渲染等行为,js的事件循环机制,即EventLoop应运而生。  JavaScript是单线程的原因  js的设计初衷是作为浏览器的脚本语言,浏览器中涉及到与用户互动、频繁操作DOM等动作,如果js设计为多线程,会有很复杂的线程同步问题,即使同步问题被解决,也会降低浏览器的响应效率,得不偿失,因此,JavaScript被设计为单线程保证浏览器动作的一致性。  事件循环(EventLoop)  Jav...
            0 0 1549
            分享
          • 看了这篇文章,再也不会有人说有没有测试都一样了。测试和开发的工作方式是不太一样的,开发属于开创型,从无到有,可能我写一天代码,一个功能就写完了。是0分到60分的开创。但是测试工作是属于提升型的,测一轮,软件好用加一个度,再测一轮再加一个度,是60分到90分的进阶。很显然,不能用开发的工作方式来度量测试的存在。测试的工作产物,简单分为四个方向:【测试用例】版本测试用例,公共测试用例,都是项目的宝贵资产,甚至在参加一些大型的cmmi项目认证时,都是需要提供测试用例的。【测试报告】测试时间,测试内容,发现的问题,存在的问题,对测试过程形成的总结也可以对版本质量形成佐证。【bug分析】bug分析中,哪...
            5 5 6425
            分享
      • 51testing软件测试圈微信