• 13
  • 13
分享
  • 数据交互驱动测试方法探索与实践——软件测试圈
  • 曼倩诙谐 2021-03-24 09:51:13 字数 2595 阅读 1554 收藏 13

  摘要:为有效开展数据报送测试,本文提出一种数据交互驱动测试的方法和经验,通过阐述数据交互的不同测试对象对应的具体测试方法和测试通过准则,为后续数据交互类测试工作提供借鉴和参考。

  一、数据报送测试面临的挑战

  数据报送系统的核心工作是满足接口要求,完成数据的报送工作。与传统的页面级-功能级-流程级的测试方法不同,数据报送系统测试更关注于交互数据流程测试、交互数据质量和交互数据的时效性测试。要求测试人员熟悉业务规则、交互规范、校验规则和SQL校验方法,既能进行数据SQL验证也能进行报文的数据测试。

  二、数据交互驱动测试方法

  针对以上挑战,结合以往项目测试方法,本文提出了一种数据交互驱动测试方法(如图1所示),该方法着眼于系统数据交互测试,按照测试对象的不同进行分类,明确测试方法和测试通过准则,并以此渗透完成系统其他相关的测试。

1-1.png

图1 数据交互驱动测试方法

  数据交互驱动测试以每轮测试为线,被测程序运行为点,依据运行前中后测试对象的差异,将测试分为运行前的设计测试、运行中的运行测试和运行后的产物测试三阶段。将测试当成一场交谊舞,测试方法就是它的舞曲,设计测试、运行测试和产物测试则是这舞曲的经典三部曲,而以此渗透的其他测试,请把他当成伴奏,一曲结束即结束一轮测试,而当所有轮测试顺利完成后,整个项目测试也就基本完成。

  现在,就让我们随着这支舞曲跳起来吧!

  1 第一部曲:设计篇

  设计测试的对象主要是开发设计文档、待测试程序以及程序相关的部署配置等内容。具体测试包括设计文档检查、待测程序检查。

  1.1 设计文档检查

  设计文档检查重点关注测试设计的规范性和设计的完整性,即确认设计的内容与约定好的交互规范内容是否一致;设计的功能与需求比对是否有遗漏;设计的功能与软需中的功能点比对是否有遗漏等。具体测试可以包括:接收数据设计文档的检查和交付数据设计文档的检查。

1-2.png

1-3.png

  1.2 待测程序检查

  待测程序检查是指测试人员依据设计文档,检查待测程序和程序部署配置相关信息。重点关注设计的脚本是否有遗漏。具体测试内容为:测试待测试程序较交付清单是否有遗漏;测试待测试程序较设计是否有遗漏;测试待测试程序部署配置是否合理。

1-4.png

1-5..png

  2 第二部曲:运行篇

  运行测试的对象为程序具体程序(作业或脚本)的运行情况,主要包括正常运行测试、强负载测试、异常测试。

  2.1 正常测试

  正常运行测试是指程序执行小并发数,模拟各类数据交互程序的正确运行,测试程序是否运行顺畅,无异常。

1-5.png

1-6.png

  2.2 强负载测试

  负载测试是在强负荷(高并发数运行)下的测试,查看程序在高压下的数据交互情况。

1-7.png

1-8.png

  2.3 异常测试

  异常测试主要验证在出现各类异常情况(工具模拟内存满,CPU满,磁盘满,操作系统重启等操作)后,程序仍可以持续运行。

1-9.png

  3 第三部曲:产物篇

  产物测试的对象为交互报文或交互文档。从数据交互角度看,运行产物包括了数据交付方和数据接收方。数据交互可大可小,大可大到与行外系统的交互,小可小到我们平常所说的系统内的每次数据表的转换。从测试角度看,测试又可包括但不限于规范性测试、完整性测试、数据准确性测试、容错性测试。

  3.1 数据交付方

  3.1.1 规范性测试

  规范性测试是指最终交互产物是否符合交互规范的验证。具体测试可以包括:文件名规范测试、数据类型测试、已确定校验规则测试、各时点数据报送约束测试、各时点数据空值约束测试、各时点数据项特性约束测试、字典表规范测试。

  (1)通用规范测试

  通用规范测试是指针对交付文件名规范、文件头规范、文件体共性规范和通用规则开展的测试。主要检查数据报送文件和数据反馈文件结构是否符合接口文件规范,以防止错误结构文件的报送和可能因报文结构不规范而造成的交互报文的打回或报文接收运行错误等现象。

1-10.png

  (2)数据类型测试

  数据类型测试指验证交互的数据类型是否符合交互规范。

1-11.png

  (3)已确定校验规则测试

  已确定校验规则测试是针对接收方特别强调需要满足的校验规则开展的测试。这类规则与交互规范文档中其他规范要求的可能有重复,也有补充内容。为保证规范完整性校验,可作为单独一项测试开展也可去重补充案例。

1-12.png

  (4)各时点数据报送约束测试

  各时点数据报送约束测试是指对不同类文档不同时点报送的信息就是否“必须报送”、“不应报送”开展专项测试。

1-13.png

  (5)各时点数据空值约束测试

  各时点数据空值约束测试是指对不同类文档不同时点报送的信息就是否不能为空开展测试。

1-14.png

  (6)各时点数据项特性约束测试

  数据项特性约束测试是指对不同类文档不同时点报送的信息针对他自身数据的具体业务规范开展的测试。

1-15.png

  (7)字典表规范测试

  字典表规范测试是指对数据库内的数据转换参考的字典表的规范性进行测试,以此确保对照转换后的数据完全符合交互约定的规范。

1-16.png

  3.1.2 完整性测试

  完整性测试是指最终交互产物是否有遗漏的测试。常见的测试情况有:信息类别完整性测试、业务种类完整性测试、关键信息业务量的完整性测试、关联信息数量比对测试。

1-17.png

  3.1.3 数据准确性测试

  数据准确性测试是依据数据转换规则验证待交付产物的数据是否正确。常见的测试有:端到端测试、关联信息逻辑测试、转换规则校对、反馈报文正确解析验证。

1-18.png

  3.1.4 容错性测试

  容错性测试是指模拟源文件中的各类脏数据,或模拟强负载运行,或模拟运行期间发起异常事件,验证异常运行后的产物。

1-19.png

  3.2 数据接收方

  3.2.1 规范性测试

  规范性测试是指接收方在接收到信息后反馈信息的规范性验证。具体测试可以包括:错误返回信息规范测试、正常返回信息规范测试。

1-20.png

  3.2.2 完整性测试

  完整性测试是指接收的所有表、表内的字段满足预期的数据需求,没有遗漏。具体来讲主要包括,接收方的完整性测试包括表的完整性检查、记录数完整性检查、字段完整性检查。

1-21.png

  3.2.3 一致性测试

  一致性测试是指接收入库的信息和预期数据信息一致性的校对。包括数据类型一致性校对、数据内容一致性校对。具体测试方法和通过准则如下:

1-22.png

  3.2.4 容错性测试

  容错性测试是指模拟交付文件中的各类脏数据,或模拟强负载运行,或模拟运行期间发起异常事件,验证异常运行后的产物。

1-23.png


作者:李琳 田娜 吴文锦   

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 中新网11月6日电据路透社报道,推特5日正式推出全新订阅服务,每月收费8美元,以向用户提供蓝色认证标记(“蓝V”),同时在苹果应用程序商店AppStore推出更新版本。这是马斯克对推特的第一次重大修订。据报道,在针对苹果iOS设备的更新说明中,推特表示,“立即注册”的用户可花费每月7.99美元在他们的用户名称旁边加入广受欢迎的“蓝V认证”,“就像你所追踪的名人、企业和政治人物一样”。据iOS更新通知,订阅方案的其他好处还包括广告量减半、可上传较长的影片、以及根据内容质量排列推文等。在马斯克接手推特之前,“蓝V认证”意味着推特确认该帐户的真实身份为个人或公司拥有。但推出全新订阅服务后,目前尚不清...
            0 0 789
            分享
          • 一、页面性能测试概述页面性能测试则是针对于页面性能优化而开展的一种性能测试,目的是对Web系统的页面进行测试以确认系统页面是否会影响系统的性能并为页面的优化提供依据与建议,最终提升系统的整体性能表现,提高用户体验满意度。可见,Web系统页面性能测试是相对Web系统后台测试的另外一种性能测试,是Web系统性能测试的一个重要部分。二、页面性能测试必要性相对于C/S架构的应用系统,Web应用系统所有数据都需要从服务器端下载,虽然浏览器有缓存机制,但客户每次访问仍然需要下载大量的数据。特别是用户对系统要求越来越高,除了要求功能完备,对界面的美观、易用性也提出了更高的要求,越炫的页面也就意味着页面中要包...
            1 2 1819
            分享
          •   在日常测试工作中,我们经常会听到“单元测试,集成测试,系统测试”之类的词汇,大家都知道这是按照开发阶段进行测试活动的划分。这种划分完整的分类,其实是分为四种“单元测试,集成测试,系统测试,验收测试"。这四类测试,其实是一种从局部到整体测试思想。但是市面上对这些概念的理解常常很混乱,会和“白盒测试,黑盒测试,灰盒测试”纠缠在一起傻傻分不清,那么本文就针对这几类测试展开讲解,现在车载测试如火如荼,我们就以汽车生产测试的过程为例,来分别阐述下单元测试,集成测试,系统测试,验收测试。  一、单元测试  1、汽车制造举例  在汽车的生产制造过程中肯定是先针对零部件进行测试,比如先对上图的车...
            0 0 933
            分享
          •   想必金字塔测试原理大家已经很熟悉了,近年来的测试驱动开放在各个公司开始盛行,测试代码先写的倡议被反复提及。  鉴于此,许多中大型软件公司对单元测试的要求也逐渐提高。那么,编写单元测试有哪些小技巧可以借鉴和学习的呢?  测试代码文件路径与开发代码文件路径“相同”  这里的“相同”并不是完全意义的一摸一样,测试代码和开发代码处于同一目录,而是指的测试代码文件路径你与开发代码文件路径“大体相同”。  如下图1、2所示,开发代码路径和测试代码路径都包括/java/ru/yandex/clickhouse/。图1 开发代码路径图2 测试代码路径  测试代码文件名清晰  清晰的测试代码文件名可以帮助阅...
            3 3 1508
            分享
          •   一、什么是回归测试  回归测试(regression test)是在程序被修改后启动的一个测试过程。其目的在于验证程序被修改后,程序仍然按照原有测试用例正常运行。在开发阶段,回归测试可用于发现缺陷并被修复后,重新验证带缺陷功能块这一阶段。  二、回归测试和普通测试的区别  许多人常以为回归测试只是普通测试的拓展,然而事实并非完全如此。回归测试与普通测试存在着以下几点区别。  1.测试计划有不同  普通测试的测试计划使用的测试用例全是新增未曾执行过的,常用于代码开发阶段;而回归测试测试计划中使用的测试用例为已经被执行过的。  2.测试范围不同  普通测试旨在于检测程序的正确性,包括单模块功能...
            12 12 3169
            分享
      • 51testing软件测试圈微信