随着自动化测试的深入推进,通过自动化测试运行的案例数量越来越多,执行错误全部由人工分析的方式已经不能满足接口自动化测试结果的分析需求。本文介绍一种基于缺陷知识库的接口自动化测试结果分析方法,通过接口测试结果模型化方法和基于错误码库、非缺陷知识库的错误归类分析方法,辅助测试人员高效实施大规模、多系统的接口自动化测试结果分析处理,降低自动化测试的误报率。
一、接口测试结果模型化
首先,我们需要将接口自动化测试的结果模型化,模型信息包括结果标志、错误码、错误信息和返回信息。在接口测试的过程中,从通讯级到应用级提取该模型数据,方法如下:
1、在平台执行接口测试的过程中,若出现任何程序未处理的内部异常,则结果标志为I,此时错误码、错误信息和返回信息均为空。
2、在常见的http通讯、tcp通讯、webservice通讯等通讯方法中,若无法正常通讯并获得预期的返回报文,则认为在通讯级发生异常,结果标志为U,此时错误码、错误信息均为空,通讯异常的返回信息存储在返回报文中。
3、在能够正常获取返回报文的情况下,被测系统往往会返回应用级处理是否正确的信息。若应用级处理错误,则还会返回错误码和错误信息。
(1)若应用级处理正确,则结果标志为N,此时错误码、错误信息均为空,返回信息存储返回报文。
(2)若应用级处理错误,则结果标志为E,错误码、错误信息存储在返回报文中,返回信息存储在返回报文中。
(3)为保障资金安全,重要金融交易一般存在双人复核或者远程授权的过程。如缺乏授权信息,被测系统将返回“需要授权”的信息,则结果标志为A,错误码、错误信息均为空,返回信息存储在返回报文中。
4、在实际实施组织级接口测试覆盖时,一些存量系统未在公有域特定字段返回应用级处理结果。此时,自动化测试平台将进行通讯级结果判断,若正常通讯并获得预期的返回报文,则结果标志为N,此时错误码、错误信息均为空,返回信息存储在返回报文中。
二、基于错误码库、非缺陷知识库的错误归类分析方法
基于接口测试结果的模型化数据,可以通过建立错误码库和非缺陷知识库,对大规模接口回归测试的结果进一步分类、分析。对于被测应用系统,可以由用户在自动化测试平台建立错误码库,对标志为E的接口测试结果,通过以下三种匹配方式进行细分:
1、精确匹配:对于有固定错误码和错误信息的应用系统,可以采用精准匹配方式,完成错误码库与接口测试结果模型的匹配。
2、错误码模糊匹配:适用于能够从固定字段输出错误信息,但没有固定字段返回错误码或者错误码定义不规范(如错误码是中文信息)的被测系统。此类系统错误码和错误信息由测试人员自行定义,每类错误码需设计匹配表达式,通过正则匹配的方式实现错误归类。
3、返回报文模糊匹配:适用于返回错误信息无固定字段的被测系统。此类系统错误码和错误信息由测试人员自行定义,每类错误码也需对应设计对应的匹配表达式。
在接口测试中,由于被测系统配置错误、被测系统铺底数据异常等问题而出现的错误并非本次测试结果中需重点关注的内容。对于此类错误,将错误码库中的对应错误条目增加标志位,即可纳入非缺陷知识库。
三、接口测试结果归类分析方法
基于接口测试结果模型化和错误码库、非缺陷知识库,将接口测试的结果分类分析,输出概要表和错误分类表。
概要表如下:
执行错误的交易将进一步处理为错误明细表,如下:
利用该分析结果,测试人员可重点关注结果类型为“执行错误”的分类,确认为缺陷的应提交给开发人员修复。对于“执行错误非缺陷”的分类,则往往不是被测系统自身缺陷导致的报错。通过这种方法,为测试人员提供“智能”分析结果,辅助测试人员快速完成对自动化测试结果的判断和分析。
四、总结
本方法将不同系统、不同通讯方式、不同报文协议的接口测试结果标准化为的统一数据模型,并依据组织级错误码库和非缺陷知识库对标准化的测试结果进行分类分析,大大降低测试结果的人工分析工作量,使得结果分析处理不再是接口自动化测试大规模开展的瓶颈。在实际应用过程中,本方法取得了良好的效果,在较大幅度上降低了接口自动化测试的误报率。
作者:孙辉 曹祯 曹睿 王唤宇 何肖蓉
来源:http://www.51testing.com/html/24/n-4479224.html