• 1
  • 1
分享
  • 浅谈数据库迁移类项目功能测试的基本思路——软件测试圈
  • 曼倩诙谐 2021-09-02 09:42:52 字数 1329 阅读 1008 收藏 1

  数据库迁移指的是把历史数据从A数据库迁到B数据库,可划分为同类型数据库的迁移和不同类型数据库之间进行的数据迁移。同类型数据库的迁移较为简单,而不同类型数据库之间的数据迁移就会存在一些问题:如表结构会变化,语法存在差异等,这些差异有些会直观地反映在数据库迁移类项目的功能测试中。本文将浅谈数据库迁移类项目功能测试的基本思路。

  首先,在测试前要了解数据库迁移类项目的主要关注点。通常来讲,系统级数据库规模十分庞大,许多代码都是在直接使用数据库某些表中的数据,因此在数据迁移过程中,数据的正确性、可用性是非常重要的,要保证各项服务获得的数据准确无误。在进行功能测试时,可通过新旧数据库表中数据对比的方式,来确保数据库迁移后的数据和迁移前数据表中存储的数据一致。

  在进行数据库迁移类项目的功能测试前,需要根据项目需求,和开发确认好本次项目的数据迁移内容及范围,是同类型数据库迁移还是不同类型数据库之间的迁移,具体涉及数据库中的哪些表。若是不同类型数据库之间的迁移,则需要关注新老数据库类型之间的差异,特别是基础语法差异及不同数据库的字段类型的匹配问题,这些差异可能会对数据迁移前后数据的正确性和一致性产生影响。

  由于该类项目确保数据库迁移前后数据的正确性和一致性非常重要,因此功能测试的基础方法为“比对”。首先需要确认迁移前后历史存量数据的数据量一致,此处可以通过SQL语句查询迁移前后数据库中各个表的行数、字段数、数据量并进行比对,查看数据量是否前后一致。而后需要对比迁移前后的数据内容,可在数据库管理系统软件中将数据库表导出为便于对比的格式,如Excel、TXT等,当表中数据量较大时,要进行合理抽样。而后可以通过编写Excel函数、Excel-视图-并排比较-同步滚动功能、自研对比脚本或工具、分别生成文件MD5码而后对比MD5值等方法来对数据内容进行对比核验。而前文提到的,不同类型数据库之间进行迁移的情况,需要注意二者数据库之间的差异带来的影响。比如Oracle 默认没有排序规则,而MySQL中,innoDB引擎默认查询按照id正序排序,myISAM引擎默认按照插入时间正序排序,当排序规则不同时,在使用Excel函数或自研比对脚本时,应关注此问题,不可以简单地按行进行比对。再比如语法上不同类型数据库拼接方式不同,易出现迁移后数据格式出现问题的情况。当完成上述数据迁移测试后,需要在新的系统中进行回归测试,以确保迁移过来数据的可用性。

  除了验证迁移前后的历史存量数据正确性、一致性以外,还应验证迁移后的新表中的增量数据是否有效、可用,确保系统前台功能可以正常新增数据,并且使用这些增量数据的主要业务流程可正常进行。

  总而言之,数据库迁移类项目功能测试需要重点关注数据迁移前后的正确性、一致性和可用性,进行数据库中数据的对比核验和系统回归测试。对于不同类型数据库之间的迁移,需要多积累、多了解不同数据库之间的差异并分析可能会存在的影响。此外,在数据的对比核验和系统回归测试过程中,机械性、重复性的工作较多,建议更多地使用工具自动对比、手工测试和自动化测试相结合的方式,以提升测试效率。



作者:LJY   

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 什么是报表测试?最近开始在做报表测试,故名思义,就是指测试报表,报表主要是给一些特定的群体展示一些特定数据或是汇总数据,则报表测试主要是跟一堆数据打交道,检验和确认报表展示出来的数据是否正确,取值是否有误。报表测试需要做些什么?1、测试前的准备工作报表测试之前需要准备大量的数据,针对各种业务场景的数据,数据准备一定要全面。以前王豆豆没有过多地接触过报表测试,想着觉得很难,很麻烦,等到真正开始做的时候,也没有想象中的那么难,要做好报表测试,需要将前面几步做好:第一步,弄清楚业务,对于每一张报表,它反映地是什么内容;报表的含义,谁来使用这张报表,关注这张报表,关注点是什么,将这些点一一理清楚第二步...
            2 0 2763
            分享
          •   在面试的时候,经常会遇到这样的问题:你做过UI自动化么?是怎么做的?  一般来说,我会这么回答:做过,我是用Python+Selenium+UnitTest+BeautifulReport采用POM模式来做的。  首先的话我会创建一个BasePage类把一些常用的方法重新封装下,比如元素定位,打开页面等等直接封装的简单些,例如self.driver.find_element_by_id直接封装成by_id就行了。  然后的话如果页面跑自动化的时候要登录,也把登录直接封装成一个函数,后面直接调用函数就可以了。  还有的话也会把封装读取配置文件函数,比如读取CSV配置文件,我们可以把所用到的一...
            0 0 640
            分享
          •   项目系统介绍  地质系统——主要作用进行地质数据建模、数据收集、数据计算及数据传递。  执行系统——主要根据地质系统传过来的数据,如平面地质图、巷道现状图等进行车辆调度并统计相关生产数据。  Mes系统——主要用于从相关系统获得的数据进行日报展示、大屏重点数据展示及相关数据业务数据展示。  各系统间逻辑关系:数据获取-计算-执行-展示。  项目背景:没有详细的需求文档,测试人力少 (2人)。  用例编写  用例的重要性  有时候因为时间紧张,没有编写测试用例,虽然可能会在一定程度上节省时间,但是这也可能导致关键的测试点被遗漏,从而影响测试的全面性和准确性。编写测试用例能够确保系统的各个方面...
            0 0 1636
            分享
          •   我们平常使用的网站、APP和桌面客户端等软件,都离不开一个叫做数据库的东西的助力,数据库就像一个商店的仓库,如果没有这个仓库,那么商店就不能提供给顾客任何实质性的物品。目前数据库技术已经渗透到比如政务,金融,银行,医疗,军工,互联网行业等,而随着软件体量的增长,曾经被忽略的数据库功能、性能和安全都越来越急需得到更多的质量保障。  相信很多测试小伙伴一开始做功能测试(黑盒测试)时,更多地关注的是前端UI、主要功能和逻辑的实现,而忽略了数据库的测试,或者说在数据库这块只是进行简单的增删改查检查就草草结束了。其实数据库要测试的方面有很多,今天就列举一些和大家分享。  首先我们来认识一下目前主流的...
            0 0 806
            分享
          •   为什么做金融类软件测试  举个栗子,银行里的软件测试工程师。横向跟互联网公司里的测试来说,薪资相对稳定,加班少甚至基本没有,业务稳定。实在是测试类岗位中的香饽饽!  一、什么是金融行业  金融业是指经营金融商品的特殊行业,它包括银行业、保险业、信托业、证券业和租赁业。  往往涉及证券、银行、基金、信托、保险、投行、期货等领域。  二、金融行业的业务特点  随着金融行业的业务不断增加,金融交易模式的不断变化,金融机构对信息化的要求也越来越高,高质量的金融软件对于金融机构来说显得尤为重要。如何保证金融行业软件的质量,对金融行业软件的测试人员来说,也提出了更高的要求。  1. 金融行业的业务特点...
            1 1 1184
            分享
      • 51testing软件测试圈微信