• 0
  • 1
分享
  • 数据库迁移测试——功能测试
  • 恬恬圈 2020-04-08 11:36:39 字数 1780 阅读 3077 收藏 1

有的同学可能会想,只要后台数据库表正确迁移完毕且验证完毕,那么前台程序自然不会有什么问题。但是要知道,数据库迁移测试的目标是保证数据正确、一致、可用。我们可以通过编写脚本提取新旧库表数据并使用文本对比工具(例如Beyond Compare)或MD5值对比来验证数据的正确性及一致性。但针对数据的可用性,则需要通过黑盒测试去进一步验证。因此,对于数据迁移而言,黑盒测试是十分重要的一环。我们要在后台验证数据库表正确迁移的基础上,针对性地开展功能测试。

一般而言,数据库迁移是伴随着系统功能的迭代而进行的,因此我们进行数据迁移功能测试的前提就是确保新系统本身的业务功能是可用、完善的。如果新系统本身的功能就未经测试,存在大量BUG,此时直接进行功能测试,就难以定位是系统兼容老数据的错误还是系统本身的BUG,无形中给测试增加了成本。所以,在进行针对数据迁移的功能测试之前,要首先确保新系统本身的可用性。在新系统业务功能得到充分验证前提下,我们可以从以下几个关注点出发验证迁移数据的可用性。

一、既然是数据迁移,首要目的自然是验证迁移过来的存量数据在功能上是否有效、可用。

这时候我们可以从以下几个维度考虑:

1、如果数据是前台可以展示的(直观展示或者数据字典转译到前台),那么可以验证存量数据迁移后能否在前端进行正常地查、改、删操作。如果迁移过程中新表涉及到新增或删除字段,那么还可以进一步验证改动的字段能否正常展示或修改;

2、梳理迁移的存量数据相关的业务逻辑,在迁移后,要验证存量数据涉及的主要业务流程是否可以使用存量数据跑通,关注存量数据在后续生命周期的应用。譬如迁移的是用户登陆数据,那么就需要验证登陆、以及登陆后的一系列操作能否正常进行,以此来充分确认迁移的可用性。当然,这就需要测试人员与业务、开发去进行充分沟通,准确的了解业务逻辑,完整地梳理出数据与业务的对应关系,这一点往往也是比较难的,所以可以在迁移方案制定伊始就去沟通了解,充分发挥测试前移的思想;

3、迁移过程中新表如果涉及到新增字段,还需要关注存量数据在该新增字段上是否填充了默认值或空值,以及其在系统功能上能否正常使用。再以用户数据为例,假如迁移后用户表中新增了一项权限。

此时就要区分两种情况:

(1)迁移后对该字段填充了默认值(即有或没有该权限),那需要进一步验证该默认值下,该条用户数据在业务功能上是否能进行此操作。

(2)迁移后对该字段置空,那么首先要从业务逻辑上去确定空值是有权限还是无权限,从而去做进一步地验证。

二、验证迁移后的新表中的增量数据是否有效、可用。

迁移除了存量数据地迁移,往往伴随着表结构地变化,所以在新的表结构下,增量数据地验证也是我们关注地一部分,与存量数据类似,可以从以下几个维度考虑:

1、验证系统前台功能是否可以正常新增数据,并验证其其进行查询、修改、删除功能是否可用;

2、关注增量数据涉及的主要业务流程是否能跑通,关注其在业务上的整个生命周期中的应用。

三、验证迁移后新表中存量、增量数据的功能上的交互,可以从两方面去关注:

1、存量数据是否可以管理或制造增量数据。譬如老用户可以新建用户、管控新用户。

2、增量数据是否可以管理存量数据。譬如新建用户是否可以管控老用户,对其删改等操作。当然,这个举例较为简单,实际测试中可以根据所测系统业务逻辑的去进一步挖掘两类在功能上的交互,以达到测试充分性的目的。

由于数据库迁移通常涉及底层的模块较多,除上述测试关注点外,还是建议进行全系统的回归测试。但在实际测试中回归测试工作量往往是巨大的,这时候合理安排测试人力资源尤为重要。以我们组建的测试团队为例,采取了部分测试人员绑定存量数据用户,部分测试人员绑定增量数据用户的方式,在系统中同时进行操作,验证功能时存量数据、增量数据交叉进行。同时,通过手工测试和自动化测试相结合的方式,尽可能提高测试效率和测试覆盖率。

关于数据库迁移测试,在上期和本期中我们已经从数据库结构、迁移数据、功能测试的维度进行了介绍,希望能够对大家提供测试的帮助。后续我们还会介绍关于数据库迁移性能测试内容,敬请期待~


版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、什么是接口?接口就是API(application programming interface),意思是应用程序编程接口。接口本质上是程序开发的函数和方法,提供参数和返回值。2、什么是接口测试? 接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统和内部系统之间以及各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理的过程,以及系统间的相互逻辑依赖关系等。 3、接口组成的要素有哪些?接口访问的地址、请求的方法、参数、返回值(1)接口访问的地址 协议://IP地址或域名:端口号/应用名/功能名(2)请求的方法 get、post等(3...
            9 9 2564
            分享
          •   1、正则表达式  正则表达式是 Python 中匹配模式、搜索和替换字符串、验证字符串等的最佳技术。现在,您无需为此类工作使用循环和列表。  查看以下关于验证电子邮件格式的正则表达式片段代码示例:  # Regular Expression Check Mail   import re   def Check_Mail(email):      pattern = re.compile(r'([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+...
            0 0 949
            分享
          • 1. WebSocket协议详解1.1 WebSocket的由来在《接口测试开发之:一图搞懂HTTP协议与HTTPS协议的传输过程》这篇博文,小鱼分析了一下HTTP和HTTP的协议传输过程,但是呢,没有详细的介绍WebSocket,所以,这篇就专门来介绍WebSocket的原理及并发实战。在介绍WebSocket的由来之前,我们先看一个例子,客户端:你好,MM,有没有新消息(request) 服务端:没有(response) 客户端:你好,MM,有没有新消息(request) 服务端:没有(response) 客户端:你好,MM,有没有新消息(request) 服务端:没有,没有,怎么还一直问...
            1 0 22354
            分享
          •   前言  今天几个测试圈子的大佬约了饭局,席间彼此交流了很多关于职场工作上测试相关的话题,听了他们的一些观点很有启发,我自己对于聊的话题也做了一些描述和实际的案例说明。下面是聊的一些关键话题,我将交流的内容和个人观点整理了下,供大家参考。  从测试leader的角度如何保障质量交付?  聊的第一个话题就是测试leader如何保障团队的质量交付,这个话题最近在很多地方,听很多人聊过。我会尝试从以下几点来做阐述说明,观点仅代表个人看法。  流程管理  问:流程是什么?为什么要有流程?流程能解决什么问题?流程能带来什么保障?  流程是什么?  流程是保障团队目标达成的最佳实践,因人/团队/业务类型...
            0 0 1009
            分享
          •   OpenAI 今天宣布与"常识媒体"(Common Sense Media)建立合作伙伴关系。"常识媒体"是一家非营利性组织,负责审查和评定各种媒体和技术是否适合儿童使用。希望借此通过与致力于减少科技和媒体对儿童、学龄前儿童和青少年伤害的组织合作,赢得家长和政策制定者的信任。  OpenAI 首席执行官 Sam Altman 表示,作为合作关系的一部分,OpenAI 将与 Common Sense Media 合作,根据 Common Sense 的评级和评估标准,在 OpenAI 的 GPT 市场 GPT Store 上策划"家庭友好型&...
            0 0 737
            分享
      • 51testing软件测试圈微信