• 0
  • 0
分享

  随着自动化测试的深入推进,通过自动化测试运行的案例数量越来越多,执行错误全部由人工分析的方式已经不能满足接口自动化测试结果的分析需求。本文介绍一种基于缺陷知识库的接口自动化测试结果分析方法,通过接口测试结果模型化方法和基于错误码库、非缺陷知识库的错误归类分析方法,辅助测试人员高效实施大规模、多系统的接口自动化测试结果分析处理,降低自动化测试的误报率。

  一、接口测试结果模型化

  首先,我们需要将接口自动化测试的结果模型化,模型信息包括结果标志、错误码、错误信息和返回信息。在接口测试的过程中,从通讯级到应用级提取该模型数据,方法如下:

  1、在平台执行接口测试的过程中,若出现任何程序未处理的内部异常,则结果标志为I,此时错误码、错误信息和返回信息均为空。

  2、在常见的http通讯、tcp通讯、webservice通讯等通讯方法中,若无法正常通讯并获得预期的返回报文,则认为在通讯级发生异常,结果标志为U,此时错误码、错误信息均为空,通讯异常的返回信息存储在返回报文中。

  3、在能够正常获取返回报文的情况下,被测系统往往会返回应用级处理是否正确的信息。若应用级处理错误,则还会返回错误码和错误信息。

  (1)若应用级处理正确,则结果标志为N,此时错误码、错误信息均为空,返回信息存储返回报文。

  (2)若应用级处理错误,则结果标志为E,错误码、错误信息存储在返回报文中,返回信息存储在返回报文中。

  (3)为保障资金安全,重要金融交易一般存在双人复核或者远程授权的过程。如缺乏授权信息,被测系统将返回“需要授权”的信息,则结果标志为A,错误码、错误信息均为空,返回信息存储在返回报文中。

  4、在实际实施组织级接口测试覆盖时,一些存量系统未在公有域特定字段返回应用级处理结果。此时,自动化测试平台将进行通讯级结果判断,若正常通讯并获得预期的返回报文,则结果标志为N,此时错误码、错误信息均为空,返回信息存储在返回报文中。

1-1.png

  二、基于错误码库、非缺陷知识库的错误归类分析方法

  基于接口测试结果的模型化数据,可以通过建立错误码库和非缺陷知识库,对大规模接口回归测试的结果进一步分类、分析。对于被测应用系统,可以由用户在自动化测试平台建立错误码库,对标志为E的接口测试结果,通过以下三种匹配方式进行细分:

  1、精确匹配:对于有固定错误码和错误信息的应用系统,可以采用精准匹配方式,完成错误码库与接口测试结果模型的匹配。

  2、错误码模糊匹配:适用于能够从固定字段输出错误信息,但没有固定字段返回错误码或者错误码定义不规范(如错误码是中文信息)的被测系统。此类系统错误码和错误信息由测试人员自行定义,每类错误码需设计匹配表达式,通过正则匹配的方式实现错误归类。

  3、返回报文模糊匹配:适用于返回错误信息无固定字段的被测系统。此类系统错误码和错误信息由测试人员自行定义,每类错误码也需对应设计对应的匹配表达式。

  在接口测试中,由于被测系统配置错误、被测系统铺底数据异常等问题而出现的错误并非本次测试结果中需重点关注的内容。对于此类错误,将错误码库中的对应错误条目增加标志位,即可纳入非缺陷知识库。

  三、接口测试结果归类分析方法

  基于接口测试结果模型化和错误码库、非缺陷知识库,将接口测试的结果分类分析,输出概要表和错误分类表。

  概要表如下:

1-2.png

  执行错误的交易将进一步处理为错误明细表,如下:

1-3.png

  利用该分析结果,测试人员可重点关注结果类型为“执行错误”的分类,确认为缺陷的应提交给开发人员修复。对于“执行错误非缺陷”的分类,则往往不是被测系统自身缺陷导致的报错。通过这种方法,为测试人员提供“智能”分析结果,辅助测试人员快速完成对自动化测试结果的判断和分析。


  四、总结

  本方法将不同系统、不同通讯方式、不同报文协议的接口测试结果标准化为的统一数据模型,并依据组织级错误码库和非缺陷知识库对标准化的测试结果进行分类分析,大大降低测试结果的人工分析工作量,使得结果分析处理不再是接口自动化测试大规模开展的瓶颈。在实际应用过程中,本方法取得了良好的效果,在较大幅度上降低了接口自动化测试的误报率。



作者:孙辉 曹祯 曹睿 王唤宇 何肖蓉   

来源:http://www.51testing.com/html/24/n-4479224.html


2021 问卷礼物图.png

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   在展开今天的内容之前,我们先来看一下,是不是任何一个测试都可以学习性能测试。  如果说需求、开发、DB、运维、测试是单一一门学科,那么性能就是综合学科,它包含了需求分析、DB、开发、测试、运维的所有学科。  所以说,学习性能测试,你前期需要懂的是需求分析、DB设计、程序开发、自动化测试、运维。  所以今天的内容是性能分析的一大重点,也是一大难点!  WebServer服务优化  对于Web服务性能优化的方向,一般是:  页面静态化:比如访问的页面,先进行静态化后提供访问,减少DB负担;  减少页面的Size:  减少尺寸、CSS合并、JS精简等;  客户端缓冲、样式等;  去掉无用请求与数...
            0 0 1083
            分享
          •   如何做Web测试?以下为大家比较全面地总结一下Web测试的要点。  一、Web应用程序  应用程序有两种模式,C/S和B/S。C/S模式,即Client/Server(客户端/服务端)模式,这类程序可独立运行。B/S模式,即Browser/Server(浏览器/服务端)模式,这类程序需借助浏览器来运行。  Web应用程序一般是B/S模式,一个Web应用程序是由完成特定任务的各种Web组件(web components)构成的并通过Web将服务展示给外界。在实际应用中,Web应用程序是由多个Servlet、JSP页面、HTML文件以及图像文件等组成。  了解了Web应用程序,该如何进行测试呢...
            0 0 1426
            分享
          •        近年来应用安全越来越受到企业的重视,安全测试的需求也随之激增。那么上手安全测试该了解哪些基础知识点呢?在这里我对常见的安全测试点进行了梳理,希望通过此文能够帮助大家普及安全测试中最常见的知识点!更希望此文能够起到抛砖引玉的作用,激发大家不断探索安全测试领域的热情!sql注入       威胁解读:Sql注入就是通过利用一些查询语句的漏洞,将sql语句传递到服务器解析并执行的一种攻击手段。当不可信的数据作为命令或查询语句的一部分被发送给解释器的时候,会发生注入漏洞,包括SQL、NoSQL、OS以及LDA...
            0 0 1830
            分享
          •   过去RPA中怎么做测试?  在项目中手工Test:单元+功能+冒烟+回归。 RPA+参数调用(29Web.Json+output),测试计划-巡检!  客户没有买Studio Pro?怎么开始?后台许可包含测试,没有OC怎么做RPA的批量测试?绑定测试数据。  1、RPA遇到挑战:变化和脆弱  2、测试的价值和意义  主动维护总是比被动维护好,从 RPA 项目开始就认真对待维护将降低成本并增加节省,在将它们部署到生产之前修复错误比在生产环境中修复错误便宜几倍。  通过适当的 RPA 测试在开发 IT 运营和生产之间实施质量门,解决常见的干扰因素,例如应用程序更改、环境问题和普通自动化问题。...
            0 0 1034
            分享
          •   Airtest简介  AirtestIDE是一款适用于游戏和应用程序的跨平台UI测试自动化集成开发环境(IDE),为移动应用程序开发人员和测试人员提供了广泛的工具,可在便利且易于使用的环境中编写全自动测试脚本。  相比较其他传统的自动化测试工具(如Appium,RF等),AirtestIDE主要具有两大优势:  1.基于图像识别的Airtest框架  Airtest是一个基于图片识别的跨平台的自动化测试框架,同时它最强大的地方在于它几乎兼容所有Android移动应用程序和Windows游戏等。  2.基于UI识别的Poco框架  Poco是一个跨引擎UI自动化框架,并且提供了独立于引擎的强...
            13 14 2565
            分享
      • 51testing软件测试圈微信