• 0
  • 0
分享

  一、背景

  随着自动化测试的设计理念不断完善、新的技术不断应用,自动化测试资产的积累代价和维护成本不断降低,自动化测试资产的数量持续增长。同时,随着DevOps的普及,应用研发过程越来越敏捷,自动化测试能力逐步从测试部门输出至开发部门,在每日构建、制品晋级、版本发布等流程中成为必备环节。

  随着自动化测试执行能力的不断提升,自动化测试执行结果数据指数级增加,大量的结果分析处理工作成为自动化测试开展的瓶颈。本文介绍一种基于知识库的接口自动化测试结果分析方法与装置,通过接口测试结果模型化方法和基于错误码库、非缺陷知识库的错误归类分析方法,辅助测试人员高效实施大规模、多系统的接口自动化测试结果分析处理。

  二、接口测试结果模型化

  接口自动化测试,简单地说,就是按测试需求装报文,发送给被测系统,接收并解析返回报文,判断测试成功失败。

  在自动化测试平台中,对接口测试过程模型化统一封装:

  (1)通讯过程是报文发送和接收,其相关内容抽象为通讯组件;

  (2)报文是被测系统与其客户端或调用方针对具体接口约定的交互信息。其中,报文组装和解析相关内容抽象为报文组件,具体接口交互信息抽象为报文格式,对发送给被测系统的报文称为输入报文,被测系统返回的报文称为输出报文。

13-1.png

  三、对测试结果的第一级分析:根据返回标志位进行初步判断

  一般而言,符合一定开发规范的应用系统,会在返回报文公有域特定字段返回应用级处理结果。若应用级处理错误,则还会在返回报文公有域特定字段返回错误码和错误信息。

13-2.png

  因此,在接口自动化测试执行过程中,执行程序将接口测试结果预处理为统一数据模型,包括结果标志、错误码、错误信息和返回报文,便于后续处理。

  其中,结果标志分为5类:

  (1)应用级处理正确,则结果标志为N,此时错误码、错误信息均为空;

  (2)应用级处理错误,则结果标志为E,错误码、错误信息存储返回报文提取的相应信息;

  (3)在金融系统中,为保证安全,重要金融交易一般会涉及双人复核或者远程授权的过程,此时应用级处理结果为“需要授权”,则结果标志为A,错误码、错误信息均为空;

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

  (5)在常见的HTTP/HTTPS、TCP等通讯方法中,若无法正常通讯并拿到预期的返回报文,则认为在通讯级发生异常,结果标志为U,此时错误码、错误信息均为空。

  通过第一级分析,可以对接口测试结果进行初步分类,辅助测试人员判断接口测试报错类型,排除网络等环境因素造成的误报。

  四、对测试结果的第二级分析:根据错误码库和非缺陷知识库进行精准判断

  仅通过返回报文分析,对于“大幅降低接口测试误报率”的预期是不够的,需要配合错误码库和非缺陷知识库进行第二级精准分析。其实现方式是:自动化测试平台按系统名称为各系统提供错误码库,对结果标志为E的接口测试结果细分错误码,分别设置错误描述、匹配方式和匹配表达式。匹配方式分为三种:

  (1)精确匹配:该匹配方式适用于统筹设计良好的系统,项目组能够较好的归类业务错误、分配错误码,并在系统接口设计中在公有域有固定字段返回错误码和错误信息,此类系统直接采用错误码库中的错误码与接口测试结果模型中的错误码匹配;

  (2)错误信息模糊匹配:该匹配方式适用于能够从固定字段输出错误信息,但没有固定字段返回错误码或者错误码定义不规范(如错误码是中文信息)的系统,此类系统错误码和错误信息由测试人员自行定义,每类错误码需对应设计匹配表达式,即一条正则表达式,若接口测试结果模型中的错误信息能匹配该正则表达式则归为该类错误;

  (3)返回报文模糊匹配:该匹配方式适用于接口设计不规范、无固定字段返回错误信息的系统,此类系统错误码和错误信息由测试人员自行定义,每类错误码需对应设计匹配表达式,即一条正则表达式,若接口测试结果模型中的返回信息能匹配该正则表达式则归为该类错误。

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

  经过实践,在实施第二级精准分析后,往往能大幅降低接口自动化测试的误报率,减少一线测试团队的分析工作量。

  五、接口测试结果归类分析

  基于接口测试结果的模型化和两级分析,我们将接口测试的结果分类分析,输出概要表和错误分类表。

  概要表如下:

13-3.png

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

13-4.png

  利用该分析结果,测试人员可重点关注结果类型为“执行错误”的分类,确认为缺陷的应提交给开发人员修复;对于“执行错误非缺陷”的分类,应在解决对应问题后再次测试相关接口。

  六、结语

  本文介绍的接口自动化测试结果分析方法,将不同系统、不同通讯方式、不同报文协议的接口测试结果标准化为的统一数据模型,并依据组织级错误码库和非缺陷知识库对标准化的测试结果进行分类分析,大大降低测试结果的人工分析工作量。其中,错误码库及配套的三种错误匹配方式,使得测试人员可以灵活自主地为被测系统定制错误归类识别方案,在不同应用系统接口设计标准化程度不一的场景下,解决了接口测试结果的错误识别问题;非缺陷知识库的设计,使得测试人员可以预设部分不关注的错误类型,以获取重点更加突出的错误分析结果,辅助测试人员更加高效地完成测试活动。

  接口自动化测试的误报率控制,是提升自动化测试效能的关键点,笔者也将继续探索相关方法,致力于自动化测试效能的不断提升。


作者:中国农业银行孙辉    

来源:http://www.51testing.com/index.php?action-viewnews-itemid-7798827-php-1

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 在我们日常测试app或者小程序的时候,经常要遇到抓包的情况,我们常用的抓包工具是fiddler或者charles,这两个工具抓http类型的包还好,但是抓https类型的日志是需要root手机的,现在的真机不是开发者是不好root的,那么这个时候模拟器就可以上场啦。做模拟器的有很多品牌,我最习惯也最常用的是夜神模拟器(雷电模拟器不太好用)首先,模拟器可以设置手机。型号,可以设置性能,屏幕尺寸等基本参数,方便页面展示,这个对于ui方面的测试有一定的帮助,可以看下页面有没有明显的拉伸或者重叠等。也可以在模拟器上面跑关于app的页面自动化这些,也是非常方便调试的,跑不通或者有报错的地方可以直接修改。...
            1 1 11272
            分享
          • 现在很多人,等不及。现在很多人,不想等。外面的广告更加夸张,我要的现在就要。真是chedan。搞什么假惺惺不懂都要付出时间。把时间这个变量狠狠地抛诸脑后,定会受到时间狠狠地鞭打,让你好好停下来,等等时间。等,本来就是行动计划的一部分。心里没数,就等不及;心里没底,就等不起;肚里没货,就等不了;胸中没有战略,就等不下。急,不是因为真的急,而是不知道该干嘛。一切尽在咫尺,不是所有的事情都尽在掌握。《孙子兵法》说先计算,看看自己有多少胜算的把握,算出来可胜,行啦,这个时候再动;算出来,把握不大,不要动,等到时机成熟的时候,再动;等到能动的时候再动。不到亮剑的时候,就摩拳擦掌,就“磨刀霍霍向猪羊”,也...
            1 1 900
            分享
          •   摘要:为有效开展数据报送测试,本文提出一种数据交互驱动测试的方法和经验,通过阐述数据交互的不同测试对象对应的具体测试方法和测试通过准则,为后续数据交互类测试工作提供借鉴和参考。  一、数据报送测试面临的挑战  数据报送系统的核心工作是满足接口要求,完成数据的报送工作。与传统的页面级-功能级-流程级的测试方法不同,数据报送系统测试更关注于交互数据流程测试、交互数据质量和交互数据的时效性测试。要求测试人员熟悉业务规则、交互规范、校验规则和SQL校验方法,既能进行数据SQL验证也能进行报文的数据测试。  二、数据交互驱动测试方法  针对以上挑战,结合以往项目测试方法,本文提出了一种数据交互驱动测...
            13 13 1782
            分享
          • 一、测试工程师:1、国内定位和发展前景:测试工程师,软件质量的把关者,工作起点高,发展空间大。我国的软件测试职业还处于一个发展的阶段,所以测试工程师具有较大发展前景。 目前传统的软件行业还是以软件测试工程师为主,但是在新兴的互联网行业大多还是以QA来命名这个职位,也就是质量保证。2、工作职责:①编写测试计划、规划详细的测试方案、编写测试用力②根据测试计划搭建和维护测试环境;③执行测试工作,提交测试报告。包括编写用于测试的自动测试脚本,完整地记录测试结果,编写完整的测试报告等相关的技术文档;④对测试中发现的问题进行详细分析和准确定位,与开发人员讨论缺陷解决方案。⑤提出对产品的进一步改进的建议,并...
            0 0 1027
            分享
          • 1.问:什么是兼容型测试?兼容性测试侧重哪些方面?答:兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。 兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。 兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了 兼容和配置测试的区别在于,做配置测试通常不是在Clean OS下做测试,而兼容测试多是在Clean OS环境下做的 ...
            11 11 1563
            分享
      • 51testing软件测试圈微信