• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、重新理解测试用例今天,我们进入本次课程的第一个模块,重新理解测试用例。理解测试用例的定义对测试工程师这个职业,我们接触的第一个专业名词,大概就是测试用例了。那么,我们有没有仔细想过,什么是测试用例,测试用例的作用和意义是什么。我们先来看一下百度百科里怎么定义测试用例的:>测试用例是为某个特殊/定目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。这个定义有些过于书面化,我们尝试换一种表达方式来帮助大家理解:>测试用例指的是对需求功能每一个功能路径的输入输出结果的预期设定,用以检查程序编程设计是否符合产品需求定义。这里面有两个部分,首先,用例是一种预...
            0 0 68
            分享
          • 黑盒测试(black—box testing)又称功能测试、数据驱动测试或基于规范的测试。用这种方法进行测试时,被测程序被当作看不见内部的黑盒。在完全不考虑程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性。因此黑盒测试是从用户观点出发的测试,黑盒测试直观的想法就是既然程序被规定做某些事,那我们就看看它是不是在任何情况下都做的对。完整的“任何情况”是无法验证的,为此黑盒测试也有一套产生测试用例的方法,以产生有限的测试用例而覆盖足够多的“任何情况”。由于黑盒测试不需要了解程序内部结构,所以许多高层的测试如确认测试、系统测试、验收测试都采用黑盒测试...
            15 15 3681
            分享
          • 1、selenium 工具介绍什么是 selenium?selenium 自动化测试浏览器,它主要是用于 Web 应用程序的自动化测试,但肯定不只局限于此,同时支持所有基于 web 的管理任务自动化。selenium 的特点:开源,免费;多浏览器支持:FireFox、Chrome、IE、Opera;多平台支持:linux 、windows、MAC;多语言支持:java、python、ruby、php、C#、JavaScript;对 web 页面有良好的支持;简单(API 简单)、灵活(用开发语言驱动);支持分布式测试用例执行。selenium 经历了两个版本,selenium 1.0 和 se...
            13 13 1524
            分享
          • 作为测试人员,和我们最常打交道的,莫属bug。当你发现bug后,会采取什么样的行动?是直接报出来,亦或找找问题原因?不管是我们自己找到的,亦或是开发修复后告诉我们的,知道问题之所在总是好的。在本篇文章中,笔者试图带领大家一起梳理下,为什么测试人员定位问题很重要,以及我们可以使用什么样的定位方法。NO1.定位问题的重要性很多测试人员可能会说,我的职责就是找到bug,至于找原因并修复,那是开发的事情,关我什么事?好,我的回答是,如果您只想做一个测试人员最基本最本分的事情,那么可以这么想。但是,如果您想要在测试甚至开发的道路上长足发展,就要知其所以然。那么,为什么定位问题如此重要?1、可以明确一个问...
            0 0 1299
            分享
          •   即使毛利率和利润大幅下滑,特斯拉也将继续降价追求销量,并将今年的交付目标定在200万辆。  特斯拉尝降价“恶果”,一季度利润暴跌20%,但丝毫没有动摇特斯拉追求销量的决心,价格战可能将持续下去。  对于投资者最关注的“毛利率和利润大幅下滑,不及预期,会不会影响后续定价策略”,马斯克在财报发布后的电话会中给出了否定答案。  马斯克明确表态,车辆成本正在降低之中,特斯拉将继续调整车辆价格,追求销量而不是利润率。特斯拉CFO表示,特斯拉按每周一次的频率评估车辆价格。  4月19日周三美股盘后,特斯拉公布了2023年第一季度财报,由于报告期内特斯拉在全球主要市场轮番大幅降价,导致营收虽同比增超20...
            0 0 741
            分享
      • 51testing软件测试圈微信