• 11
  • 12
分享
  • 系统升级了,旧数据就不要了么?——软件测试圈
  • 曼倩诙谐 2020-12-04 10:52:31 字数 1765 阅读 5539 收藏 12

  软件系统中的数据移植是指将旧系统中的数据、应用程序、个性化设置等迁移到新系统,以保证新系统上线后的业务正常进行,广泛应用于系统升级、重构场景。

  数据移植测试贯穿整个测试过程,具体体现在以下几个阶段:

  一、准备阶段

  数据移植执行前,测试人员需对数据移植的各项信息进行了解分析:

  1、移植数据规模、数据类型以及数据范围

  在测试准备阶段需了解本次系统升级影响的数据规模,根据移植数据量评估数据移植时长,计算系统受影响时长;梳理移植数据类型,如合约、流水、配置等,便于分析其影响交易、制定测试范围;分析移植数据范围,如对某些省份、区划、机构所属数据进行移植,判断是否对剩余部分正常交易产生影响。

  2、数据移植方法

  一般来说,数据迁移有数据直接复制、数据抽取合并(拆表、合表)、数据处理转换等几种,测试人员通过数据移植类别,确定迁移方法,合理设计测试场景,同时还需关注数据迁移是否有新增、删除字段。

  3、新旧系统兼容性

  当新旧系统采用不同数据库、框架、编码模式时,需对新旧系统兼容性进行分析,根据迁移方案研究是否有因新旧系统不兼容导致的数据迁移问题,如将数据从Sybase数据库迁移到Oracle数据库,两个数据库字段定义类型、数据类型可能存在不兼容,Sybase对空值处理为长度为1的空格,而Oracle则为NULL,拼接报文时会因缺少字段而报错,测试时需特别关注。

  4、新旧系统业务差异性

  新旧系统存在业务差异时,分析新旧系统交易清单差异,关注存量交易、新增交易、在途交易等,判断是否需在移植前进行冗余数据治理或残缺数据补录,以保证客户的交易连续性。

  5、确定新旧系统迭代情况

  数据迁移后,如新旧存在并行期,需了解业务处理模式,确定旧系统存量数据处理方式。

  二、执行阶段

  测试人员构造场景开展模拟测试:

  1、移植过程验证

  在测试环境模拟数据迁移,验证移植脚本的有效性,分析迁移过程的风险。若移植过程中系统继续支持交易,则需在移植过程中进行功能性测试,保证移植过程中交易不受影响。

  2、移植中断场景测试

  关注移植过程异常中断时,是否会造成数据丢失,是否支持中断后继续移植。

  3、应急回退测试

  移植过程异常中断时系统应支持应急版本回退测试,测试人员需对此场景及回退版本进行功能性测试,保证回退完成后的业务处理正常。

  4、移植脚本性能测试

  在移植过程中对移植脚本性能进行监控,监测移植程序执行时长及相应服务器性能表现。

  三、验证阶段

  数据迁移完成后,需要对数据迁移质量进行检查,以确保新系统能够正常启用并代替老系统提供服务。测试主要从以下几个方面进行:

  1、后台数据验证

  当数据移植采取直接复制方法时,需对迁移前后的数据一致性进行比对,迁移数据条数应完全一致,表名、表结构、字段对应关系准确,对数据的格式、字符、长度验证确保无乱码、截断现象;若迁移过程中进行了拆表、合表等数据抽取合并操作,需要核对新旧系统表结构及字段类型对应关系无误;迁移过程中涉及数据处理转换,则需对处理结果进行验证,通过模拟数据处理过程,验证新系统数据为正确的处理输出。

1.png

  在数据处理过程中可以借助数据库操作工具通过执行SQL将旧数据按照新数据库表结构进行数据处理,生成新数据库相应格式的输出文件,在数据比对过程中,可以借助编程语言进行数据量比对,也可借助Java、Python等编程语言实现数据抽取、处理及比对,以Python为例:

  数据抽取、数据处理:

2.png

  数据比对:

3.png

  2、前台业务验证

  通过前台查询等业务判断后台数据迁移后是否有丢失、重复、乱码、截断等问题,校验移植前后数据一致性,同时对交易进行连通性回归测试,确保迁移后数据可用。

  3、业务逻辑验证

  系统升级进行业务迁移应以不影响客户业务为前提,对于业务流程复杂的交易,测试人员应该在迁移前在旧系统中设置每个步骤断点,进行埋数,迁移后在新系统中验证每个断点后可以正常继续业务,以保障业务逻辑性完备,可详细阐述为下图:

4.png

  在互联网发展日新月异的今天,软件迭代速度加快,数据移植测试更加频繁,测试人员只有关注数据移植全流程,更加准确的分析数据影响、理解移植技术,才能保证测试质量,助力系统升级。



作者:曹雅丽   

来源:51Testing软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   什么是自动化测试  在软件测试领域,有两种测试技术:手动测试和自动测试。两种方法都旨在执行测试用例,然后将实际结果与预期结果进行比较。  概括来讲手动测试是一种人工执行操作的测试技术,可确保软件代码完成应有的功能。那么什么是自动化测试呢?相反,这是一种自动运行测试技术,管理测试数据以及利用结果来提高软件质量的实践。  对于一名测试工程师而言,连续的开发周期需要重复执行相同的测试用例组成的测试套件。如果每一次都手动执行此过程,可能会非常重复且耗时,很容易让人产生疲倦感。但是通过利用测试自动化工具,可以更轻松地编写测试套件,按需重手动执行,减轻人为干预并提高测试ROI(自动化测试的投资回报率)...
            1 1 2214
            分享
          • 不管是移动端测试还是web端测试,涉及到输入框的地方有很多,而很多安全bug也是从输入框开始攻击的,为了守住软件的数据安全,输入框的校验显得格外重要。输入框用例设计原则:公司内部运营后台以正常功能校验为主,辅以常见异常校验(提示语不会产生误解即可)针对外部用户使用,需要加强校验逻辑输入框相关基础用例涉及点:输入框长度限制在长度临界值时是否可以连输(重点IOS)特殊字符的输入以及空格、换行、首尾空格输入框的复制粘贴(粘贴超文本长度的内容)输入全角/半角的数字,大小写英文提交后数据保存检查特殊字符串NULL、null必填内容为空的时候保存是否成功&提示非必填字段为空正常提交,数据保存正常安...
            8 5 7605
            分享
          •   填测试行业问卷,不仅能获得价值398元的测试资料,还可以参与我们的抽奖活动,赶快参与一下吧。链接:http://vote.51testing.com/  测试过程  在逻辑上。测试活动是按顺序进行的.但是实际测试过程中,这些活动是可以重叠或同时进行的。(比如支付宝的加好友,登录,转账等。对于加好友模块的测试,还是需要先登录这个模块的操作的。)  1、测试策划过程  测试策划分为以下三个部分:  测试策划步骤:  1)进行测试需求的分析,确定需要测试的内容或质量特征,明确测试的充分性要求。  2)提出测试的基本方法。  测试策划需要进行:  1)确定测试的资源和技术需求。  2)进行风险分析...
            0 0 1699
            分享
          • 1、性能测试常见指标内存CPU流量电量启动速度滑动速度界面切换速度与服务器交互的网络速度通常Android对上面的关注点会更多一些,毕竟… 你懂得!2、预期标准指定原则分析竞品,所期望指标与竞品的差值或超过竞品满足产品经理给出的预期性能指标符合业内标准3、工具及方法内存:        方法:使用adb shell脚本进行测试,查看Log数据        命令:adb shell dump meminfoCPU:  &nbs...
            1 0 17799
            分享
          • Linux系统的稳定、安全、免费、开源等特点,使其在软件行业中应用越来越广,越来越普遍。测试岗位的招聘要求中,也都会涉及要熟悉Linux命令,Linux也逐渐成为测试人员必不获取的一项技能。工作中用到的Linux远程管理工具有Xshell/PuTTY/SecureCRT等,使用最多的还是Xshell。基于Xshell,整理测试工作中常用的Linux命令,由于命令区分大小写,使用过程中一定注意。一、系统相关shutdown -h now或init 0:关闭系统shutdow -r now或reboot:重启系统logout:注销Ctrl+C:退出命令行date:显示系统日期ifconfig:查看...
            2 5 4449
            分享
      • 51testing软件测试圈微信