测试用例的修复方法、装置、计算机设备和存储介质
文献发布时间:2023-06-19 09:54:18
技术领域
本申请涉及软件测试技术领域,特别是涉及一种测试用例的修复方法、装置、计算机设备和存储介质。
背景技术
随着软件测试技术的发展,在测试过程中为衡量某个特殊目标,通常采用编制测试用例的方式。但是,测试用例在执行过程中经常会发生异常,从而导致测试失败。
由于导致测试用例执行失败的原因很多,例如,用例逻辑的变动、用例数据的问题,或测试对象的变动等,针对不同的测试失败原因修复方式也很复杂多变。传统技术中,针对执行失败的测试用例,一般仅是通过简单的反馈机制,将错误反馈至测试人员,需要测试人员手动进行修正,不仅对测试人员的查错、纠错、改错能力要求极高,而且大大增加了测试用例修复的时间、降低了修复的效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高测试用例的修复效率的测试用例的修复方法、装置、计算机设备和存储介质。
一种测试用例的修复方法,该方法包括:
获取目标测试用例,目标测试用例为执行失败次数满足设定条件的测试用例;
分析目标测试用例的测试失败原因;
若分析出测试失败原因为用例数据异常时,获取目标测试用例的用例数据,并从用例数据中提取特征信息;
根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据;
利用当前替换数据替换目标测试用例的用例数据。
在一个实施例中,从用例数据中提取特征信息,包括:
从用例数据的接口请求数据中提取请求特征信息。
在一个实施例中,从用例数据中提取特征信息,包括:
从用例数据的接口响应数据中提取响应特征信息。
在一个实施例中,从用例数据中提取特征信息,包括:
从数据属性维度提取用例数据的属性特征信息。
在一个实施例中,根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据,包括:
将特征信息转化为特征向量,根据特征向量计算备用测试数据集中的备用测试数据与用例数据的相似度;
从相似度大于预设阈值的备用测试数据中选取当前替换数据。
在一个实施例中,在利用当前替换数据替换目标测试用例的用例数据之前,上述方法还包括:
将当前替换数据作为目标测试用例的用例数据,生成待验证用例,并验证待验证用例是否能够执行成功;
若是,执行利用当前替换数据替换目标测试用例的用例数据的步骤。
在一个实施例中,上述方法还包括:
若否,根据特征信息从用例数据对应的备用测试数据集中重新选取替换数据,重新选取的替换数据作为当前替换数据,进入将当前替换数据作为目标测试用例的用例数据,生成待验证用例的步骤。
在一个实施例中,上述方法还包括:
若否,生成表征有待人工修复的第一提示信息,第一提示信息包括表征测试失败原因为用例数据异常的信息。
在一个实施例中,分析目标测试用例的测试失败原因,包括:
获取目标测试用例的多个执行数据;其中,执行数据包括用例数据;
根据各执行数据分别调用对应的评分模型,利用各评分模型分别对各执行数据进行数据有效性评分;
根据各评分模型的评分结果分析目标测试用例的测试失败原因。
在一个实施例中,根据各评分模型的评分结果分析目标测试用例的测试失败原因,包括:
根据各评分模型评分的高低确定各执行数据导致目标测试用例执行失败的权重的大小;
根据所占权重最大的执行数据确定目标测试用例的测试失败原因。
在一个实施例中,上述方法还包括:
若分析出测试失败原因不是用例数据异常时,生成表征有待人工修复的第二提示信息。
在一个实施例中,第二提示信息包括测试失败原因。
在一个实施例中,上述方法还包括:若分析出测试失败原因不是用例数据异常时,调取非针对用例数据异常的其他异常修复模型对目标测试用例进行修复。
一种测试用例的修复装置,该装置包括:
目标用例获取模块,用于获取目标测试用例,目标测试用例为执行失败次数满足设定条件的测试用例;
失败原因分析模块,用于分析目标测试用例的测试失败原因;
特征信息提取模块,用于若分析出测试失败原因为用例数据异常时,获取目标测试用例的用例数据,并从用例数据中提取特征信息;
替换数据选取模块,用于根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据;
用例数据替换模块,用于利用当前替换数据替换目标测试用例的用例数据。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的测试用例的修复步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的测试用例的修复的步骤。
上述测试用例的修复方法、装置、计算机设备和存储介质,通过分析目标测试用例的测试失败原因,在分析出执行失败是由于用例数据异常而导致的时候,可以从目标测试用例的用例数据中提取特征信息并根据特征信息从备用测试数据集中筛选出替换数据,利用替换数据对异常的用例数据进行替换,从而实现高效地自动修复目标测试用例的目的。
附图说明
图1为一个实施例中测试用例的修复方法的应用环境图;
图2为一个实施例中测试用例的修复方法的流程示意图;
图3为一个实施例中分析目标测试用例的测试失败原因的步骤的流程示意图;
图4为一个应用实施例中分析测试用例的测试失败原因的技术构架图;
图5为一个应用实施例中对测试用例的用例数据进行修复的技术构架图;
图6为一个实施例中测试用例的修复装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请提供的测试用例的修复方法,可以应用于如图1所示的应用环境中。其中,服务器102从自动化测试平台104的执行结果消息队列中拉取目标测试用例,调用测试失败原因分析模型分析目标测试用例的测试失败原因,若分析出测试失败原因为用例数据异常时,获取目标测试用例的用例数据,并从用例数据中提取特征信息,根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据,利用当前替换数据替换目标测试用例的用例数据。服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种测试用例的修复方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S10:获取目标测试用例,目标测试用例为执行失败次数满足设定条件的测试用例。
其中,目标测试用例为执行失败次数满足设定条件的测试用例,设定条件可以根据测试需求进行设置。
具体地,接口自动化测试平台对执行失败的测试用例会进行失败标记,服务器从接口自动化测试平台的用例执行结果消息队列中拉取执行失败的测试用例,并根据其失败标记判断该测试用例执行失败的次数是否满足设定条件,若该测试用例执行失败的次数满足设定条件,则将该测试用例作为目标测试用例。
步骤S20:分析目标测试用例的测试失败原因。
其中,测试失败原因是导致测试用例执行失败的原因。具体地,可以通过目标测试用例中携带的数据或执行过程中产生的其他中间数据对其测试用例执行失败的原因进行分析。例如,可以根据接口请求数据、接口响应数据、执行结果数据、执行环境数据、系统连通性数据、中间件状态数据、执行端服务状态数据或响应端服务状态数据等,从至少一个维度出发对目标测试用例执行失败的测试失败原因进行分析评估。
步骤S30:若分析出测试失败原因为用例数据异常时,获取目标测试用例的用例数据,并从用例数据中提取特征信息。
其中,用例数据指的是该测试用例中用于进行接口测试的测试数据,可以包括接口请求数据和期望的接口响应数据。具体地,用例数据中包含着大量的测试信息,可以根据预设条件从用例数据的至少一个维度进行特征信息的提取,提取的方式和提取特征的数量不限,但所提取的特征信息应是能达到预设目标的反映用例数据特征的基本信息。
步骤S40:根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据。
其中,备用测试数据集中包含多个可以用作接口测试的备用测试数据,备用测试数据来源不限,可以是用户手动输入的测试数据,也可以是系统在接口历史测试过程中自动记录的测试数据。当前替换数据是服务器从备用测试数据集中选取的用于替换目标测试用例中用例数据的备用测试数据。
具体地,服务器可以根据目标测试用例的用例数据特征信息的提取方式和维度,对备用测试数据集中的各备用测试数据进行特征信息提取,并将用例数据的特征信息与各备用测试数据的特征信息进行比较和分析,从而筛选特征信息较为相近的备用测试数据作为当前替换数据。
步骤S50:利用当前替换数据替换目标测试用例的用例数据。
具体地,利用从备用测试数据中选取的当前替换数据替换目标测试用例中的用例数据,以实现对执行失败的目标测试用例的异常的用例数据的修复。
上述测试用例的修复方法,通过分析目标测试用例的测试失败原因,在分析出执行失败是由于用例数据异常而导致的时候,可以从目标测试用例的用例数据中提取特征信息并根据特征信息从备用测试数据集中筛选出替换数据,利用替换数据对异常的用例数据进行替换,从而实现高效地自动修复目标测试用例的目的。
在一个实施例中,从用例数据中提取特征信息,包括:从用例数据的接口请求数据中提取请求特征信息。
在本实施例中,可以从接口的请求维度对用例数据进行请求特征信息的提取,例如,可以从以下至少一个方面进行特征提取:1、请求头;2、请求方法(针对HTTP协议类型的数据);3、请求体字段类型;4、请求体字段内容;5、请求体字段权重。接口请求数据是用例数据的重要组成部分,从接口的请求维度出发进行特征提取,可以得到充分反映用例请求特征的信息,提高后续替换数据选取的准确性,从而提高测试用例异常用例数据修复的准确性。
在一个实施例中,从用例数据中提取特征信息,包括:从用例数据的接口响应数据中提取响应特征信息。
在本实施例中,可以从接口的响应维度对用例数据进行响应特征信息的提取,例如,可以从以下至少一个方面进行特征提取:1、响应头;2、响应编码(针对HTTP协议类型的数据);3、响应体字段类型;4、响应体字段内容;5、响应体字段权重。接口响应数据是用例数据的重要组成部分,从接口的响应维度出发进行特征提取,可以得到充分反映用例响应特征的信息,提高后续替换数据选取的准确性,从而提高测试用例异常用例数据修复的准确性。
在一个实施例中,从用例数据中提取特征信息,包括:从数据属性维度提取用例数据的属性特征信息。
在本实施例中,可以从用例数据的数据属性维度进行属性特征信息的提取,例如,可以从以下至少一个方面进行特征提取:1、数据日期;2、数据来源;3、数据使用频率;4、数据成功率。数据属性能够反映数据本身的特性,从属性相近的备用测试数据中选取替换数据可以提高替换数据选取的准确性,从而提高测试用例异常用例数据修复的准确性。
在一个实施例中,根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据,包括:将特征信息转化为特征向量,根据特征向量计算备用测试数据集中的备用测试数据与用例数据的相似度;从相似度大于预设阈值的备用测试数据中选取当前替换数据。
在本实施例中,可以将提取到的目标测试用例的特征信息转化为特征向量,基于该特征向量以及备用测试数据集中的各备用测试数据的特征向量,利用相似度计算方法,计算该用例数据与各备用测试数据的相似度。通过计算该用例数据和备用测试数据之间的相似度,可以将两者之间的特征信息数字化,使两者的关系更加清晰,从而能够更加准确地从备用测试数据中选取替换数据。其中,相似度计算方法不限,可以是皮尔逊相关系数法。
进一步地,还可以根据计算出的相似度,将相似度大于预设阈值的备用测试数据作为候选的替换数据,进一步从候选的替换数据中根据相似度从高至低的顺序选取适当的数据作为当前替换数据。
在一个实施例中,在利用当前替换数据替换目标测试用例的用例数据之前,该方法还包括:将当前替换数据作为目标测试用例的用例数据,生成待验证用例,并验证待验证用例是否能够执行成功;若是,执行利用当前替换数据替换目标测试用例的用例数据的步骤。
在本实施例中,在利用从备用测试数据中选取出的当前替换数据替换目标测试用例的用例数据之前,首先可以对当前替换数据的有效性进行验证,即验证该当前替换数据是否能够使目标测试用例恢复正常执行。具体地,可以将当前替换数据作为目标测试用例的用例数据生成待测试用例,并对待测试用例进行执行验证,如果待测试用例执行成功,则说明利用该当前替换数据替换目标测试用例的用例数据后,可以使替换后的目标测试用例恢复正常运行,因此,可以执行利用当前替换数据替换目标测试用例的用例数据的步骤。通过增加对当前替换数据进行有效性验证的步骤,可以进一步提高测试用例修复的准确性。
在一个实施例中,上述方法还包括:若否,根据特征信息从用例数据对应的备用测试数据集中重新选取替换数据,重新选取的替换数据作为当前替换数据,进入将当前替换数据作为目标测试用例的用例数据,生成待验证用例的步骤。
在本实施例中,若对当前替换数据的有效性验证失败,则说明利用该当前替换数据替换目标测试用例的用例数据后,无法使数据替换后的目标测试用例恢复正常运行,因此,需要继续从备用测试数据中重新选取新的替换数据,将重新选取的替换数据再次作为当前替换数据进行有效性验证,直至从备用测试数据集中找到符合条件的替换数据为止。
在一个实施例中,若生成的待验证用例执行失败,还可以生成表征有待人工修复的第一提示信息,第一提示信息包括表征测试失败原因为用例数据异常的信息。还可以进一步将第一提示信息发送至目标测试用例所属测试人员所登录的终端。测试人员可以依据第一提示信息进行测试用例的人工修复。由于第一提示信息中包含表征测试失败原因为用例数据异常的信息,测试人员不需要进行额外的查错工作,根据第一提示信息就可以直接进行修复,避免了因查错工作耗时长而导致的修复效率降低的问题。
优选的,在生成表征有待人工修复的警告之前,还可以判断是否备用测试数据集中相似度大于预设阈值的全部备用测试数据都无法作为替换数据替换目标测试用例的用例数据,若是,再生成表征有待人工修复的第一提示信息。
在一个实施例中,如图3所示,分析目标测试用例的测试失败原因,包括:步骤S202:获取目标测试用例的多个执行数据;其中,执行数据包括用例数据;步骤S204:根据各执行数据分别调用对应的评分模型,利用各评分模型分别对各执行数据进行数据有效性评分;步骤S206:根据各评分模型的评分结果分析目标测试用例的测试失败原因。
在本实施例中,可以利用针对各类型执行数据进行分析评估的评分模型对数据的有效性进行评分。根据各评分模型的评分结果可以更全面地了解目标测试用例的失败原因,从而更准确地选取修复策略,提高失败修复的效率。
具体地,执行数据可以包括:用例数据、执行环境数据、系统逻辑数据、中间件状态数据、执行端服务状态数据以及响应端服务状态数据等,相对应的评分模型可以包括:用例数据因子评分模型、环境因子评分模型、逻辑因子评分模型、中间件因子评分模型、执行端因子评分模型以及响应端因子评分模型。
其中,用例数据因子评分模型从下述至少一个方面对用例数据的有效性进行分析评分:1、用例数据最后一次变更日期;2、用例数据变更来源(系统自动更新或测试人员提交);3、用例数据最后一次变更后,用例的执行成功率;4、用例数据最后一次变更前,用例的执行成功率;5、用例数据最后一次变更前后的差异字段。
环境因子评分模型从下述至少一个方面对执行环境数据的有效性进行分析评分:1、测试环境类型;2、测试环境的可用性;3、接口涉及系统间的连通性。
逻辑因子评分模型从下述至少一个方面对系统逻辑数据的有效性进行分析评分:1、用例逻辑最后一次变更日期;2、用例代码当前的编译状态;3、用例逻辑最后一次变更后的执行成功率;4、用例逻辑最后一次变更前的执行成功率;5、作出用例逻辑变更的变更人;6、上一次变更用例逻辑的变更人;7、用例逻辑代码依赖包变更情况。
执行端因子评分模型从下述至少一个方面对执行端服务状态数据的有效性进行分析评分:1、执行端的服务器状态;2、执行端的网络状态;3、执行端测试用例的运行状态;4、执行端运行测试用例的测试框架版本;5、执行端运行测试用例的各依赖包版本。
响应端因子评分模型从下述至少一个方面对响应端服务状态数据的有效性进行分析评分:1、响应端服务的实例数;2、响应端服务各实例的可用性;3、响应端整体服务的响应延迟;4、响应端服务各实例的成功率;5、响应端同一接口最近一次的成功响应日期;6、响应端同一接口的响应成功率;7、响应端服务最近一次部署日期;8、响应端该接口源代码最近一次变动日期;9、响应端该接口源代码最近一次变动后,对相同请求参数最近一次成功响应的日期。
在一个实施例中,根据各评分模型的评分结果分析目标测试用例的测试失败原因,包括:根据各评分模型评分的高低确定各执行数据导致目标测试用例执行失败的权重的大小;根据所占权重最大的执行数据确定目标测试用例的测试失败原因。
在本实施例中,针对不同执行数据通过调用多个评分任务并利用对应的评分模型对各执行数据进行有效性评分后,可以得到综合、全面的评分结果。其中,有效性评分越低的执行数据其所占的导致用例执行失败的权重越大。将所占权重最大的执行数据所导致的执行失败的原因确定为测试失败原因。通过综合各评分并计算权重的方式,可以更加准确地得到失败原因,从而提高后续自动修复的准确性。
在一个实施例中,上述方法还包括:若分析出测试失败原因不是用例数据异常时,生成表征有待人工修复的第二提示信息,或调取非针对用例数据异常的其他异常修复模型对目标测试用例进行修复。
在本实施例中,若分析出测试失败原因不是用例数据异常时,可以生成表征有待人工修复的第二提示信息,以实现及时提醒测试人员进行人工修复的目的。也可以调取其他修复模型,例如,若分析出测试失败原因是中间件状态数据异常时,可以调取中间件状态数据的修复模型进行自动修复等。
在一个实施例中,第二提示信息可以包括测试失败原因。测试人员可以根据第二提示信息包含的测试失败原因针对性地进行用例修复,不需要进行额外的查错工作,根据第一提示信息就可以直接进行修复,避免了因查错工作耗时长而导致的修复效率降低的问题。
下面,结合一个应用实例,对本申请涉及的测试用例的修复方法进行进一步说明。
如图4所示,图4示出了一个应用实例中分析测试用例的测试失败原因的技术构架图,说明如下:
(1)设置用例结果监听器对自动化测试平台的测试结果消息队列进行监听,对监听到的测试用例,根据其失败标记判断其执行失败的次数。
(2)若是首次执行失败的测试用例则修改失败标记后,向自动化测试平台发送再次执行该测试用例的请求。
(3)若不是首次执行失败的测试用例,可以将该测试用例确定为目标测试用例。
(4)获取目标测试用例的执行数据,根据各执行数据调取多个分析任务,其中,分析任务可以包括:环境分析任务、中间件分析任务、执行端分析任务、响应端分析任务、用例逻辑分析任务和用例数据分析任务。
(5)各分析任务分别利用不同的评分模型对相应的执行数据进行评分,综合分析各评分模型的评分结果,可以确定出该目标测试用例执行失败的测试失败原因并存入数据库。
(6)对测试失败原因进行监控的分析结果监控任务从数据库中获取失败原因的分析结果,根据测试失败原因是否为用例数据异常调取针对用例数据异常的用例数据修复任务或针对非用例数据异常的其他修复任务对目标测试用例进行自动修复。
如图5所示,图5示出了一个应用实例中对测试用例的用例数据进行修复的技术构架图,说明如下:
(1)服务器从数据库中调取目标测试用例的用例数据,对该用例数据进行修复。
(2)从该用例数据中提取请求特征、响应特征和数据特征生成该用例数据的特征信息集。
(3)服务器从备用的测试数据集中提取各备用的测试数据的请求特征、响应特征和数据特征,组成备用测试数据的特征信息集。
(4)根据两个特征信息集,比较该用例数据和备用的其他测试数据的特征,并通过相似度的计算从备用测试数据集中挑选出与该用例数据相似度最高的测试数据作为当前替换数据。
(5)验证当前替换数据是否有效,具体地,将挑选出的当前替换数据作为目标测试用例的用例数据生成待验证用例,执行待验证用例,判断是否能够执行成功。
(6)若待验证用例执行成功,则利用该当前替换数据替换目标测试用例的用例数据,进一步还可以通知用例所属测试人员替换成功。
(7)若待验证用例执行不成功,判断备用测试数据集中是否还有相似度大于预设阈值的测试数据,若有,则从这些相似度大于预设阈值的测试数据中重新挑选测试数据作为当前替换数据,继续进行验证当前替换数据的步骤。
(8)如果备用测试数据集中相似度大于预设阈值的测试数据都验证不成功,则可以通知测试人员进行人工修复。
应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种测试用例的修复装置,包括:目标用例获取模块10、失败原因分析模块20、特征信息提取模块30、替换数据选取模块40和用例数据替换模块50,其中:
目标用例获取模块10,用于获取目标测试用例,目标测试用例为执行失败次数满足设定条件的测试用例。
失败原因分析模块20,用于分析目标测试用例的测试失败原因。
特征信息提取模块30,用于若分析出测试失败原因为用例数据异常时,获取目标测试用例的用例数据,并从用例数据中提取特征信息。
替换数据选取模块40,用于根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据。
用例数据替换模块50,用于利用当前替换数据替换目标测试用例的用例数据。
在一个实施例中,特征信息提取模块30从用例数据的接口请求数据中提取请求特征信息。
在一个实施例中,特征信息提取模块30从用例数据的接口响应数据中提取响应特征信息。
在一个实施例中,特征信息提取模块30从数据属性维度提取用例数据的属性特征信息。
在一个实施例中,替换数据选取模块40将特征信息转化为特征向量,根据特征向量计算备用测试数据集中的备用测试数据与用例数据的相似度;从相似度大于预设阈值的备用测试数据中选取当前替换数据。
在一个实施例中,替换数据选取模块40,还用于将当前替换数据作为目标测试用例的用例数据,生成待验证用例,并验证待验证用例是否能够执行成功;若是,执行利用当前替换数据替换目标测试用例的用例数据的步骤。
在一个实施例中,替换数据选取模块40,还用于若否,根据特征信息从用例数据对应的备用测试数据集中重新选取替换数据,重新选取的替换数据作为当前替换数据,进入将当前替换数据作为目标测试用例的用例数据,生成待验证用例的步骤;或,
在一个实施例中,替换数据选取模块40,还用于若否,生成表征有待人工修复的警告。
在一个实施例中,失败原因分析模块20获取目标测试用例的多个执行数据;其中,执行数据包括用例数据;根据各执行数据分别调用对应的评分模型,利用各评分模型分别对各执行数据进行数据有效性评分;根据各评分模型的评分结果分析目标测试用例的测试失败原因。
在一个实施例中,失败原因分析模块20根据各评分模型评分的高低确定各执行数据导致目标测试用例执行失败的权重的大小;根据所占权重最大的执行数据确定目标测试用例的测试失败原因。
在一个实施例中,失败原因分析模块20,还用于若分析出测试失败原因不是用例数据异常时,生成表征有待人工修复的警告。
在一个实施例中,失败原因分析模块20,还用于调取非针对用例数据异常的其他异常修复模型对目标测试用例进行修复。
关于测试用例的修复装置的具体限定可以参见上文中对于测试用例的修复方法的限定,在此不再赘述。上述测试用例的修复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储备用测试数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种测试用例的修复方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取目标测试用例,目标测试用例为执行失败次数满足设定条件的测试用例;分析目标测试用例的测试失败原因;若分析出测试失败原因为用例数据异常时,获取目标测试用例的用例数据,并从用例数据中提取特征信息;根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据;利用当前替换数据替换目标测试用例的用例数据。
在一个实施例中,处理器执行计算机程序实现从用例数据中提取特征信息时,具体实现以下步骤:从用例数据的接口请求数据中提取请求特征信息。
在一个实施例中,处理器执行计算机程序实现从用例数据中提取特征信息时,具体实现以下步骤:从用例数据的接口响应数据中提取响应特征信息。
在一个实施例中,处理器执行计算机程序实现从用例数据中提取特征信息时,具体实现以下步骤:从数据属性维度提取用例数据的属性特征信息。
在一个实施例中,处理器执行计算机程序实现根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据时,具体实现以下步骤:将特征信息转化为特征向量,根据特征向量计算备用测试数据集中的备用测试数据与用例数据的相似度;从相似度大于预设阈值的备用测试数据中选取当前替换数据。
在一个实施例中,处理器执行计算机程序实现利用当前替换数据替换目标测试用例的用例数据之前,还实现以下步骤:将当前替换数据作为目标测试用例的用例数据,生成待验证用例,并验证待验证用例是否能够执行成功;若是,执行利用当前替换数据替换目标测试用例的用例数据的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若否,根据特征信息从用例数据对应的备用测试数据集中重新选取替换数据,重新选取的替换数据作为当前替换数据,进入将当前替换数据作为目标测试用例的用例数据生成待验证用例的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若否,生成表征有待人工修复的警告。
在一个实施例中,处理器执行计算机程序实现分析目标测试用例的测试失败原因时,具体实现以下步骤:获取目标测试用例的多个执行数据;其中,执行数据包括用例数据;根据各执行数据分别调用对应的评分模型,利用各评分模型分别对各执行数据进行数据有效性评分;根据各评分模型的评分结果分析目标测试用例的测试失败原因。
在一个实施例中,处理器执行计算机程序实现根据各评分模型的评分结果分析目标测试用例的测试失败原因时,具体实现以下步骤:根据各评分模型评分的高低确定各执行数据导致目标测试用例执行失败的权重的大小;根据所占权重最大的执行数据确定目标测试用例的测试失败原因。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若分析出测试失败原因不是用例数据异常时,生成表征有待人工修复的警告。在一个实施例中,处理器执行计算机程序时还实现以下步骤:若分析出测试失败原因不是用例数据异常时,调取非针对用例数据异常的其他异常修复模型对目标测试用例进行修复。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取目标测试用例,目标测试用例为执行失败次数满足设定条件的测试用例;分析目标测试用例的测试失败原因;若分析出测试失败原因为用例数据异常时,获取目标测试用例的用例数据,并从用例数据中提取特征信息;根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据;利用当前替换数据替换目标测试用例的用例数据。
在一个实施例中,计算机程序被处理器执行实现从用例数据中提取特征信息时,具体实现以下步骤:从用例数据的接口请求数据中提取请求特征信息。
在一个实施例中,计算机程序被处理器执行实现从用例数据中提取特征信息时,具体实现以下步骤:从用例数据的接口响应数据中提取响应特征信息。
在一个实施例中,计算机程序被处理器执行实现从用例数据中提取特征信息时,具体实现以下步骤:从数据属性维度提取用例数据的属性特征信息。
在一个实施例中,计算机程序被处理器执行实现根据特征信息从用例数据对应的备用测试数据集中选取当前替换数据时,具体实现以下步骤:将特征信息转化为特征向量,根据特征向量计算备用测试数据集中的备用测试数据与用例数据的相似度;从相似度大于预设阈值的备用测试数据中选取当前替换数据。
在一个实施例中,计算机程序被处理器执行实现利用当前替换数据替换目标测试用例的用例数据之前,还实现以下步骤:将当前替换数据作为目标测试用例的用例数据,生成待验证用例,并验证待验证用例是否能够执行成功;若是,执行利用当前替换数据替换目标测试用例的用例数据的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若否,根据特征信息从用例数据对应的备用测试数据集中重新选取替换数据,重新选取的替换数据作为当前替换数据,进入将当前替换数据作为目标测试用例的用例数据,生成待验证用例的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若否,生成表征有待人工修复的警告。
在一个实施例中,计算机程序被处理器执行实现分析目标测试用例的测试失败原因时,具体实现以下步骤:获取目标测试用例的多个执行数据;其中,执行数据包括用例数据;根据各执行数据分别调用对应的评分模型,利用各评分模型分别对各执行数据进行数据有效性评分;根据各评分模型的评分结果分析目标测试用例的测试失败原因。
在一个实施例中,计算机程序被处理器执行实现根据各评分模型的评分结果分析目标测试用例的测试失败原因时,具体实现以下步骤:根据各评分模型评分的高低确定各执行数据导致目标测试用例执行失败的权重的大小;根据所占权重最大的执行数据确定目标测试用例的测试失败原因。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若分析出测试失败原因不是用例数据异常时,生成表征有待人工修复的警告。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若分析出测试失败原因不是用例数据异常时,调取非针对用例数据异常的其他异常修复模型对目标测试用例进行修复。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 测试用例的修复方法、装置、计算机设备和存储介质
- 测试用例的生成方法、装置、计算机设备及存储介质