前期准备工作数据迁移范围确定
在做数据迁移测试前需要和开发部门确认好数据迁移范围,主要包含以下几点:
基本数据迁移
基本数据迁移就是从老库中把一些老表直接复制到新库的新表中,或是:
1.拆表:老库的老表拆分到新库的其他几张新表中去,
2.合表:老库中的几张老表的字段合并到新库的一张新表中去

所以需要提前和开发部门确认好以下问题:
要和和开发一起确认要迁移的是那几张表?弄清楚老库中的老表对应要迁移到新库中的哪几张表?
迁移的表中,哪些数据字段需要迁移,哪些数据字段不需要迁移?
老表要迁移的数据记录条数是多少?

新老系统数据库表结构变化
1.新增字段和老系统表完全不存在关系老表迁移到新表中,新表中有些必填字段在老表中没有的,需要和开发确认这些数据的填写规则(给什么默认值)2.新增字段是由老系统特定字段转换而来新系统中的一些字段可能是老系统中的一些字段通过一些规则转化而来的,所以需要和开发部门确认这些转换规则迁移范围统计方法
基本数据迁移1.直接复制表

2.非直接复制表(拆表&合表)

新老系统数据库表结构变化1.新增字段和老系统表完全不存在关系

2.新增字段是由老系统特定字段

测试方案

测试类型分以上几大块,下文会对每种类型的测试做详细的说明基本数据迁移测试
要保证老系统到新系统的无缝切换,必须要保证数据的正确性,而将老系统中数据迁移到新系统,首先就要保证所迁移的数据量是一致的,只有在保证数据量一致的情况下,才能进行其他方面到测试,如果数据量都不一致,说明迁移方法或者脚本就是错误的,需要寻找原因。方法1:
测试工具:Navicat,文本比较工具(以 Beyond Compare为例)测试流程:

迁移范围确定:开发部门统计好本次的数据迁移范围给到测试部门数据表导出:1.对于直接复制的表根据“迁移范围确定”中的库名、表名、条数,通过Navicat工具以txt格式,分别导出对应的迁移前的老表和迁移后的新表,如果不是全表的数据,可以通过SQL语句选择需要的条数以上文中的“表1”为例,导出老库old中的老表hxuser,保存到 hxuser老.txt 中以及新库new中的新表hxuser,保存到 hxuser新.txt 中

2.对于非直接复制的表需要在Navicat中先用SQL语句查询到对应的迁移前的老表数据和迁移后的新表数据,然后再用txt格式导出以上文的“表(2)”为例1) 先用SQL查询迁移前的老表数据,并导出

  1. 再用SQL查询迁移后的新表数据,并导出

3.新旧数据比对使用Beyond Compare比较老数据和新数据是否一致,一致则说明迁移正确,不一致则说明迁移中存在问题继续用上文的“表1”为例,比较上一个步骤导出的 “hxuser老.txt” 和“hxuser新.txt”如果数据一致,则在Beyond Compare中不会有数据差异

如果数据不一致,则在Beyond Compare中能比较出差异数据,并且能直接能定位到差异数据所在,可以统计到新旧数据所有的差异点

方法2:

测试工具:Navicat,文件MD5生成工具(以Hash为例)测试流程测试流程基本和方法1一致,只有在进行第三步“新旧数据比对”有区别,这里是使用Hash工具。使用Hash,为新老数据文本生成 MD5 值,并比较2个MD5值是否一致,一致则说明迁移正确,不一致则说明迁移中存在问题(MD5可以为任何文件(不管其大小、格式、数量)产生一个独一无二的md5“数字指纹”,如果任何人对文件做了任何改动,其MD5也就是对应的“数字指纹”都会发生变化,MD5只会对文件内容进行运算,并不对创建时间,文件名等进行比对)继续用上文的“表1”为例,分别用Hash为 “hxuser老.txt” 和“hxuser新.txt”生成MD5值

可以看到如果数据一致的时候,MD5值是一致的

当数据不一致时,MD5值也会不同方法3

测试工具:代码脚本(任何一种语言都可以,Python和Java优选)测试流程:这里可以开发自动化测试脚本,来完成整个测试,这里因为都是在做字段的比对动作,所以尽量开发可以复用的测试脚本几种方法比较:

新老系统数据库表结构变化测试
新增字段和老系统表完全不存在关系对于这种“新增字段和老系统表完全不存在关系”的测试,因为都是在新表中给新增字段一个固定的默认值,所以只需要根据开发提供的填写规则,检查该字段的所有值是否满足填写规则。测试工具:Navicat测试流程:

以上文“表3”为例,这里需要检查agent库中表hxuser的status字段的所有值是否都为“1”其实只需要4步就能完成所有的测试1.范围及规则确定开发部门统计好所有新加字段填写规则给到测试部门2.计算新字段所有行数计算表hxuser的status字段对应的所有行数,可在Navicat运行SQL语句:SELECT COUNT(status) FROM hxuser

3.计算新字段中满足规则的行数计算status字段中值为1的所有行数,可在Navicat运行SQL语句:SELECT COUNT(status) FROM hxuser WHERE status=1

4.比较两次的行数比较以上2步计算的行数是否相同,如果相同则表示测试通过,如果不相同则表示新增字段中有不满足取值规则的行,可以通过其他的SQL语句来定位不满足取值规则的行新增字段是由老系统特定字段转换而来方法1测试工具:代码脚本(任何一种语言都可以,Python和Java优选)测试流程:

以上文“表3”为例1.范围及规则确定:开发部门统计好所有转化字段以及转化规则给到测试部门2.测试脚本开发根据“范围及规则”,编写对应的测试脚本,以达到校验新老字段的所有值是否满足规定的转化规则3.实施测试运行测试脚本,检查是否测试通过,若未测试通过,可以做进一步的异常数据定位方法2如果没有条件使用测试脚本自动化测试时,可以使用人工的切片抽样测试测试工具:Navicat测试流程:

1.数据切片抽样用Navicat筛选到需要校验的新老数据,假设需要校验的数据有n行,然后对n行进行分段切片抽样,影响分段的密度,分段后每一段抽取的数量的因素很多,需要综合考虑之后,确定一个最优值,可以主要参考以下2点因素:1) n的大小,如果n在100以内,我们甚至可以对n行全量抽取,如果n的值很大,则可以把n均分为若干段,然后在每段中随机抽取相同的数量的行数2) 实际工作中可以使用到的工时及人力资源,如果很充足的话,我们可以相对高密度的分段,每段大数量的抽取;如果很紧张的话,那我们只能相对低密度的分段,每段少数量的抽取。2.数据校验针对上一步抽样得到的数据,人工检验其是否满足转换规则几种方法比较

业务逻辑测试
“基本数据迁移测试”和“数据库表结构变化测试”做完以后,需要使用从老系统中迁移过来的数据,在业务系统中进行流程测试,功能测试确保迁移后到数据可用。在做功能测试时要注意以下2点:1.需要和开发部门确认新系统会用到老表数据的业务都有哪些,但是每一张表涉及的业务会非常的多,所以想百分百的覆盖所有业务是非常困难的,只能在有限的资源下统计相对全面的的业务范围,这些业务点也就组成了针对数据迁移的功能测试范围。2.上面这点也说到了,测试的“新系统会用到老表数据的业务”肯定是不全面的,所以最后一定要做一轮全系统的功能回归测试。注意点1.账号权限,在Navicat操作数据库时,对于线上数据实施迁移,一定需要提前申请到有线上数据库操作权限的账号2.上述各种测试方法的采用,一定要结合实际的资源情况,不要盲目追求全自动化测试,我们最终目的是要达到测试效果3.业务逻辑测试中不要去追求百分百的覆盖率,只需要在现有的资源下,尽可能的提高覆盖率

转载:https://www.jianshu.com/p/9f6253e6fcc3?from=timeline

数据迁移测试实施方案相关推荐

  1. sql语句在navicat中可以查询到所有数据但是在idea程序中不行_数据迁移测试实施方案...

    点击关注,我们共同每天进步一点点! 最近经历了一场大型的数据迁移测试,因为以前对数据迁移测试研究甚少,所以对测试实施方案的制定非常的棘手,在网上也查询了很多,发现相关资料很少,并且大部分都是一些理论指 ...

  2. 数据迁移测试_自动化数据迁移测试

    数据迁移测试 Data migrations are notoriously difficult to test. They take a long time to run on large data ...

  3. 数据迁移测试经验总结

    一.背景 数据迁移测试,往往涉及到功能又涉及到底层数据,在新旧版本之间都需要做兼容,需要关注的内容比较多,涉及的面比较广,可能带来的问题也比较隐蔽,本文以一个相对复杂的数据迁移测试场景为例,简单总结了 ...

  4. 达梦DM8数据库异机数据迁移测试

    达梦 DM8 数据库异机数据迁移测试 一.源库备份 源库DMOA,主机名:dm3   目标库 DMOA 主机名:db 在DMTEST模式里创建了T_EMP01.T_EMP02.T_EMP03.T_TE ...

  5. 企业数据资产管理落地实施方案

    人类社会已经悄然进人一个数据为王的时代," 数据资产"正逐步成为影响未来产业兴衰的主要决定性因素之一. 需要指出的是,尽管"数据即资产" 已经成为当前主流的产业 ...

  6. 服务器迁移虚拟化实施方案,虚拟化实施方案

    虚拟化实施方案 (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 在木期项冃小,将遵照规划和架构设计进行项冃实施.木实施方案不涉及具体 ...

  7. 中煤集团公司硬件扩容与数据库迁移项目实施方案

    目    录 目录 1.     项目背景... 4 1.1.  更换电源和控制器... 4 1.2.  华为存储系统扩容... 4 1.3.  ORACLE数据库迁移和应用重指向... 4 1.4. ...

  8. 基于内容的数据迁移计划和方案--转载

    越来越多的企业用内容管理系统来管理电子发票,电子文档,人力资源等结构化或非结构化数据内容,而且把这些业务外包到第三方的 IT 公司.外包公司的更换,或者现有内容管理系统不能满足业务增长,性能,兼容性等 ...

  9. AWS数据迁移华为云方案

    介绍 绝大多数企业迁移上云,主要需要的迁移数据为主机数据和数据库数据,而各家云厂商为了更好的争取到客户,方便客户迁移上云,都有一些迁移工具,主机迁移工具实现原理主要是通过P2V和V2V的方式,数据库迁 ...

最新文章

  1. 《社交网站界面设计(原书第2版)》——2.13 不要中断电子邮件
  2. 使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。...
  3. JSP中EL表达式失效的问题
  4. 【组合数学】生成函数 ( 正整数拆分 | 无序不重复拆分示例 )
  5. go 语言 first argument to append must be slice
  6. mybatis系列-06-输入映射
  7. 【IDEA】Cause: invalid type code: 8D
  8. 所有的营销政策都需要做局
  9. 关于echarts的疑问
  10. js-权威指南学习笔记21
  11. 攻击者利用7号信令(SS7)中的漏洞从德国银行偷取钱财
  12. qq在线客服html代码,QQ在线客服JS代码,自适应漂浮在网页右侧
  13. 叶史瓦大学计算机科学,本地知名新西兰留学咨询平台排名
  14. 国产化操作系统安装OpenJDK Icedtea插件
  15. 利用Puppeteer来标准化抓站新闻格式
  16. 高并发(水平扩展,垂直扩展)
  17. 时分秒倒计时的js实现
  18. 机器学习:simple linear iterative clustering (SLIC) 算法
  19. vscode 下编译k210
  20. 旧版android模拟器,Mrpoid2模拟器

热门文章

  1. 〈灰色系统理论及其应用〉第7版,刘思峰 P153例7.3.1
  2. NUPT_移动应用开发 android简历app
  3. 修正clear:both失效
  4. RC7M控制器存储器备份电池的更换
  5. Link Error : L1907: Fixup overflow in _FSTRUNC, to F_TOLONGK type 3, at offs
  6. win7 32位系统内存限制破解支持到128G内存
  7. UE的RRC状态切换
  8. 【5G】RRC消息学习笔记
  9. 常用数据分析工具和应用场景
  10. 寺田仓库与基地位于新加坡的LE FREEPORT公司签订使用自由港服务相关业务合作合同