• 13
  • 13
分享
  • 数据交互驱动测试方法探索与实践——软件测试圈
  • 曼倩诙谐 2021-03-24 09:51:13 字数 2595 阅读 1782 收藏 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   支持人工智能的个人电脑正在缓慢但稳步地渗透市场。根据 Canalys 的最新数据,2024 年第二季度全球人工智能 PC 出货量为 880 万台。在截至 6 月 30 日的三个月期间,这相当于所有笔记本电脑和台式机出货量的 14%,虽然数量不多,但意义重大。  该市场分析公司称,在人工智能个人电脑中,60%是使用苹果公司带有神经引擎的M系列芯片的Mac电脑。Windows占其余大部分份额(39%),运行微软操作系统的AI PC连续增长127%。  其中,联想凭借 Yoga Slim 7x 和 ThinkPad T14s 等产品成为本季度领先的个人电脑供应商,惠普也凭借 Omnibook X...
            0 0 453
            分享
          • 三角形三边面试题,是一个经典的很老的题了,在2011年的时候,华为面试遇到过,今天无意中搜到了,加上自己理解和思路汇总下,这个题主要是等价类划分的应用对一个三角形三边如何设计测试用例假设三边分别为A、B、C,那么根据现有条件,我们可以设计以下功能点先来看看构成三角形的条件1、任意两边相加之和大于第三边a + b > c a + c > b b + c > a2、两条边相等,两条边的平方和等于第三边的平方和a = b >&n...
            14 14 5195
            分享
          • 目录大数据测试的是什么 大数据测试的优势有哪些 适合转行大数据测试有哪几类人1. 大数据测试的是什么先看看我们熟悉的传统测试是什么:传统测试就是利用测试思维以及一些相关的测试工具对系统的功能、性能、安全、易用等方面进行质量保证。那么大数据测试是在测试什么呢? 打个比方:我们需要修一条管道,确保源头a的水利用该管道能正常运送到目标b, 那么传统测试则需要保证几下点:确保管道的水能正常传输 ————这是传统的功能测试。确保在大量水流量情况下管道不被阻塞 ————这是传统的性能测试。确保管道不修在危险的山崖上 ————这是传统的安全测试。确保用户拧开水龙头放水时,不花费太大的力气...
            10 10 1932
            分享
          • 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。测试的策略:接口测试也是属于功能测试,所以跟我们以往的功能测试流程并没有太大区别,测试流程依旧是:评审测试接口文档(需求文档);根据接口文档编写测试用例(用例编写完全可以按照以往规则来编写,例如等价类划分,边界值等设计方法);执行测试,查看不同的参数请求,接口的返回的数据是否达到预期。那么设计测试用例时我们主要考虑如下几个方面:功能测试:接口的功能是否正确实现了;接口是否按照设计文档中来实现(比如user...
            12 12 2962
            分享
          •   使用背景概述:  在客户端项目中,测试同学经常需要使用VMWare虚拟机进行兼容性测试。随着操作系统从Win7到Win10的普及,笔者发现Win10自带的虚拟机Hyper-V就很好用。比如需要分别测试Win7、Win8、Win10等系统上的客户端系统,在虚拟机Hyper-V单独安装这些系统,这样既不影响本机系统软件使用,又可以完成兼容性测试工作。  对于从事Selenium分布式测试的同学也可以参考下:  1、Hyper-V安装系统要求  根据官网提示:  1).Intel或者AMD64位处理器  2).Windows Server 2008 R2及以上(服务器操作系统);  Window...
            11 11 3052
            分享
      • 51testing软件测试圈微信