测试用例的筛选方法、装置、电子设备及存储介质
文献发布时间:2024-04-18 19:58:53
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试用例的筛选方法、装置、电子设备及存储介质。
背景技术
随着软件产品版本功能愈发复杂,测试用例的筛选成为一个难题。相关技术主要通过参数权重进行用例优先级排序或通过代码层面的覆盖分析用例的权重然后进行用例优先级的排序,进而筛选出测试用例。上述方式只是通过参数权重或从代码层面分析优先级,存在测试用例覆盖不充分、无法评估缺陷影响、无法对新版本新增的用例进行测试周期评估的缺陷,测试不够科学、较低效。
发明内容
本发明提供一种测试用例的筛选方法、装置、电子设备及存储介质,用以解决现有技术中测试用例覆盖不充分、无法评估缺陷影响、无法对新版本新增的用例进行测试周期评估的缺陷,测试不够科学、较低效的缺陷。
本发明提供一种测试用例的筛选方法,包括:
获取待测产品的历史版本执行数据;
根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长,所述各个层级的权重包括:模块权重、需求权重、用例权重和缺陷权重;
基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例;
基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果。
根据本发明提供的一种测试用例的筛选方法,所述根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长,包括:
进行测试评估系统的初始化设置,所述初始化设置包括:设置模块权重的初始值、需求权重的初始值、用例权重的初始值、用例执行权重的初始值、用例未执行权重的初始值、用例执行次数加权值、用例未执行次数加权值、用例执行标识默认值、用例未执行标识默认值、缺陷权重的初始值;
将所述历史版本执行数据加载至测试评估系统,获取所述测试评估系统输出的所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长。
根据本发明提供的一种测试用例的筛选方法,所述测试评估系统通过执行以下步骤输出所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长:
针对所述待测产品的第一个历史版本,从用例管理系统中获取所述第一个历史版本的待测产品的功能模块,对各所述功能模块进行标识,并设置各所述功能模块的权重为所述模块权重的初始值;
获取所述待测产品各功能模块下的需求,对各所述需求进行标识,并设置各所述需求的权重为所述需求权重的初始值;
获取各所述需求下的用例,并对各所述用例进行标识,设置各所述用例的权重为所述用例权重的初始值,设置各所述用例的执行标识、未执行标识、执行权重和未执行权重,并获取各所述用例的执行时长;
根据所述第一个历史版本的待测产品的执行数据和缺陷数据,刷新各所述用例的执行标识、未执行标识、缺陷权重、执行权重和未执行权重;
基于各所述用例的权重、执行时长、执行标识、未执行标识、缺陷权重、执行权重和未执行权重,计算得到所述第一个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长;
针对所述待测产品的第二个历史版本,确定所述第二个历史版本相对于所述第一个历史版本新增或移除的模块、需求和用例;
基于所述新增或移除的模块、需求和用例,和所述第二个历史版本的待测产品的执行数据和缺陷数据,对所述第一个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长进行更新,得到所述第二个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长;
确定下一历史版本对应的模块权重、需求权重、用例权重以及用例执行时长,直至得到所述待测产品的所有历史版本的模块权重、需求权重、用例权重以及用例执行时长。
根据本发明提供的一种测试用例的筛选方法,所述根据所述第一个历史版本的待测产品的执行数据和缺陷数据,刷新各所述用例的执行标识、未执行标识、缺陷权重、执行权重和未执行权重,包括:
对于存在执行结果的用例,若所述用例原先的执行标识为所述用例执行标识默认值,则所述用例的执行标识和未执行标识不变化;若所述用例原先的执行标识为所述用例未执行标识默认值,则设置所述用例的执行标识为所述用例执行标识默认值,所述用例的未执行标识为所述用例未执行标识默认值,设置所述用例的执行权重为所述用例执行权重的初始值;
对于不存在执行结果的用例,若所述用例原先的执行标识为所述用例未执行标识默认值,则所述用例的执行标识和未执行标识不变化;若所述用例原先的执行标识为所述用例执行标识默认值,则设置所述用例的执行标识为所述用例未执行标识默认值,所述用例的未执行标识为所述用例执行标识默认值,设置所述用例的未执行权重为所述用例未执行权重的初始值;
根据所述缺陷数据和所述缺陷权重的初始值,确定所述用例的缺陷权重。
根据本发明提供的一种测试用例的筛选方法,所述基于各所述用例的权重、执行时长、执行标识、未执行标识、缺陷权重、执行权重和未执行权重,计算得到所述第一个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长,包括:
基于各所述用例的权重、执行权重、执行标识、缺陷权重、未执行权重和未执行标识,计算得到所述第一个历史版本的各所述用例对应的用例权重;
基于所述第一个历史版本对应的各所述需求中用例对应的用例权重之和,以及各需求中用例的数量,计算得到所述第一个历史版本的各所述需求对应的需求权重;
基于所述第一个历史版本对应的各所述模块中需求对应的需求权重之和,以及各所述模块中需求的数量,计算得到所述第一个历史版本的各所述模块对应的模块权重;
基于各所述用例的执行时长,计算得到单条用例的平均执行时长;
基于各需求内用例的平均执行时长之和以及各需求中用例的数量,计算得到各需求的平均执行时长;
基于各模块内需求的平均执行时长之和以及各模块内需求的数量,确定各模块的平均执行时长;
基于各模块的平均执行时长以及系统内的用例总数,确定系统内用例的平均执行时长。
根据本发明提供的一种测试用例的筛选方法,所述基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例,包括:
确定所述待测产品当前版本对应的历史用例和新增用例;
对于所述历史用例,按照模块权重进行筛选,在所述模块权重大于等于所述模块权重的初始值的情况下,将相应模块下的全量用例筛选出来作为所述测试用例;
在所述模块权重小于所述模块权重的初始值的情况下,按照需求权重进行筛选,在需求权重大于等于所述需求权重的初始值的情况下,将相应需求下的全量用例筛选出来作为所述测试用例;
在需求权重小于所述需求权重的初始值的情况下,将相应需求下的用例权重大于等于所述用例权重的初始值的用例筛选出来作为所述测试用例;
对于所述新增用例,将新增用例均筛选出来作为所述测试用例。
根据本发明提供的一种测试用例的筛选方法,所述基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果,包括:
基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,确定新增用例的平均执行时长;
基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,确定所述测试用例中的历史用例的平均执行时长;
基于所述新增用例的平均执行时长和历史用例的平均执行时长,得到所述测试用例对应的测试周期评估结果。
本发明还提供一种测试用例的筛选装置,包括:
历史数据获取单元,用于获取待测产品的历史版本执行数据;
确定单元,用于根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长,所述各个层级的权重包括:模块权重、需求权重、用例权重和缺陷权重;
用例筛选单元,用于基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例;
测试周期评估单元,用于基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述测试用例的筛选方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述测试用例的筛选方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述测试用例的筛选方法。
本发明提供的测试用例的筛选方法、装置、电子设备及存储介质,根据待测产品的历史版本执行数据,确定待测产品的各个历史版本的各个层级的权重和用例执行时长,从而可以依据待测产品的各个历史版本的各个层级的权重和用例执行时长,筛选出适合待测产品当前版本的测试用例,可以较为准确地预估筛选出的测试用例的执行时长,其中,各个层级的权重包括:模块权重、需求权重、用例权重和缺陷权重,本发明考虑了模块层面、需求层面以及历史版本执行数据,可大大提升识别测试用例执行范围、测试执行周期的科学性合理性,有效提高测试管理评估分析的准确性以及待测产品的测试覆盖度。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例提供的测试用例的筛选方法的流程示意图之一;
图2为本发明一个实施例提供的测试评估系统输出的待测产品的各个历史版本对应的各个层级的权重和用例执行时长的流程示意图;
图3为本发明一个实施例提供的测试用例的筛选装置的结构示意图;
图4为本发明一个实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所提供的测试用例的筛选方法的执行主体可以是测试用例的筛选装置,该装置可通过软件和/或硬件实现,该装置可集成在电子设备中,电子设备可以是终端设备(如智能手机、个人电脑、学习机等),也可以是服务器(如本地服务器或云端服务器,也可以为服务器集群等),也可以是处理器,也可以是芯片等。
图1为本发明一个实施例提供的测试用例的筛选方法的流程示意图之一,如图1所示,该方法包括以下步骤:步骤110、步骤120、步骤130和步骤140。该方法流程步骤仅仅作为本发明一个可能的实现方式。所述方法包括:
步骤110、获取待测产品的历史版本执行数据;
在本发明中,待测产品是指待测软件产品,待测产品在进行质量测试之前,需要进行测试用例的筛选,且待测产品通常会经历多次版本的更新迭代后才会正式上线,因此,本发明首先获取待测产品的历史版本执行数据。
历史版本执行数据是指对待测产品的历史版本进行测试执行所产生的数据,可选地,历史版本执行数据包括:用例执行结果、用例对应缺陷、用例执行时间、用例所属需求、需求所属模块等。
步骤120、根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长;
本发明根据所述历史版本执行数据,确定待测产品的各个历史版本对应的各个层级的权重,以及待测产品的各个历史版本对应的各个层级的用例执行时长。
可选地,首先根据第一个历史版本的执行数据,确定待测产品的第一个历史版本对应的各个层级的权重和用例执行时长。
其中,各个层级的权重包括:模块权重、需求权重、用例权重和缺陷权重。
其中,用例权重与用例执行权重、用例未执行权重、用例执行标识、用例未执行标识、用例对应的缺陷权重有关。
用例执行权重是动态变化的,根据用例执行标识和执行次数加权值确定。
然后,针对所述待测产品的第二个历史版本,确定所述第二个历史版本相对于所述第一个历史版本新增或移除的模块、需求和用例;基于新增或移除的模块、需求和用例,对第一个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长进行更新,得到所述第二个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长。
针对所述待测产品的第N个历史版本,确定所述第N个历史版本相对于所述第N-1个历史版本新增或移除的模块、需求和用例;基于新增或移除的模块、需求和用例,对第N-1个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长进行更新,得到所述第N个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长。
N加1,重复上述确定所述第N个历史版本相对于所述第N-1个历史版本新增或移除的模块、需求和用例;基于新增或移除的模块、需求和用例,对第N-1个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长进行更新,得到所述第N个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长的步骤,直至得到所述待测产品的所有历史版本的模块权重、需求权重、用例权重以及用例执行时长。
步骤130、基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例;
在得到待测产品的各个历史版本对应的各个层级的权重之后,根据所述待测产品当前版本,与各个历史版本进行比较,确定所述待测产品当前版本对应的历史用例和新增用例,对于历史用例,按照模块权重、需求权重和用例权重进行筛选,对于新增用例,均筛选出来作为所述测试用例。
步骤140、基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果。
在得到待测产品的各个历史版本对应的各个层级的用例执行时长后,还需要对筛选出的测试用例进行测试周期评估,以保证筛选出的测试用例的测试周期是合理科学的。具体地,根据待测产品的各个历史版本对应的各个层级的用例执行时长估计新增用例的平均执行时长,并计算历史用例的平均执行时长,然后,根据新增用例的平均执行时长和历史用例的平均执行时长,得到所述测试用例对应的测试周期评估结果。
现有的技术方案通过参数权重进行用例优先级排序或通过代码层面的覆盖分析用例的权重然后进行用例级的排序,然后筛选出待测试用例。没有考虑因为版本已发现的缺陷对产品的模块、需求层面的潜在风险,没有在模块层面、需求层面对测试用例的覆盖度进行评估分析,只从代码层面分析优先级,从而存在测试用例覆盖不充分导致的潜在风险,无法针对版本的新增测试用例结合历史用例进行新版本的测试周期评估。
而本发明则根据待测产品的历史版本执行数据,确定待测产品的各个历史版本的各个层级的权重和用例执行时长,从而可以依据待测产品的各个历史版本的各个层级的权重和用例执行时长,筛选出适合待测产品当前版本的测试用例,可以较为准确地预估筛选出的测试用例的执行时长,其中,各个层级的权重包括:模块权重、需求权重、用例权重和缺陷权重,本发明考虑了模块层面、需求层面以及历史版本执行数据,可大大提升识别测试用例执行范围、测试执行周期的科学性合理性,有效提高测试管理评估分析的准确性以及待测产品的测试覆盖度。
在一些实施例中,所述根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长,包括:
进行测试评估系统的初始化设置,所述初始化设置包括:设置模块权重的初始值、需求权重的初始值、用例权重的初始值、用例执行权重的初始值、用例未执行权重的初始值、用例执行次数加权值、用例未执行次数加权值、用例执行标识默认值、用例未执行标识默认值、缺陷权重的初始值;
将所述历史版本执行数据加载至测试评估系统,获取所述测试评估系统输出的所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长。
具体实施时,本发明通过利用测试评估系统来确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长。
在使用测试评估系统确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长之前,需要对测试评估系统进行初始化设置。
例如,初始化设置包括:设置模块权重的初始值为1、需求权重的初始值为1、用例权重的初始值为1、用例执行权重的初始值为0.1、用例未执行权重的初始值为0.1、用例执行次数加权值为0.01、用例未执行次数加权值为0.01、用例执行标识默认值为1、用例未执行标识默认值为0、缺陷权重的初始值,包括:致命=0.5,严重=0.3,一般=0.2,轻微=0.1。
在对测试评估系统的初始化设置完成之后,将所述历史版本执行数据加载至测试评估系统,获取所述测试评估系统输出的所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长。
图2为本发明一个实施例提供的测试评估系统输出的待测产品的各个历史版本对应的各个层级的权重和用例执行时长的流程示意图,如图2所示,所述测试评估系统通过执行以下步骤输出所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长:
步骤210、针对所述待测产品的第一个历史版本,从用例管理系统中获取所述第一个历史版本的待测产品的功能模块,对各所述功能模块进行标识,并设置各所述功能模块的权重为所述模块权重的初始值;
本发明针对所述待测产品的第一个历史版本,从用例管理系统中获取所述第一个历史版本的待测产品的功能模块,例如,存储池、卷、精简卷等,对各所述功能模块进行标识,标识为M1,M2,M3,并设置各所述功能模块的权重为所述模块权重的初始值,例如设置M1,M2,M3的权重值为1。
步骤220、获取所述待测产品各功能模块下的需求,对各所述需求进行标识,并设置各所述需求的权重为所述需求权重的初始值;
获取所述待测产品各功能模块下的需求,对各所述需求进行标识,例如,M1S1,M1S2,M1S3,并设置各所述需求的权重为所述需求权重的初始值,例如,设置M1S1,M1S2,M1S3的权重均为1。
步骤230、获取各所述需求下的用例,并对各所述用例进行标识,设置各所述用例的权重为所述用例权重的初始值,设置各所述用例的执行标识、未执行标识、执行权重和未执行权重,并获取各所述用例的执行时长;
具体地,获取各所述需求下的用例,并对各所述用例进行标识,设置各所述用例的权重为所述用例权重的初始值,并获取各所述用例的执行时长,设置各所述用例的执行标识为所述用例执行标识默认值,设置各所述用例的未执行标识为所述用例未执行标识默认值,并将各所述用例的执行权重设置为用例执行权重的初始值,将各所述用例的未执行权重设置为所述用例未执行权重的初始值;
例如,获取需求M1S1下的用例,并对各所述用例进行标识,例如,标识为M1S1C1,M1S1C2,M1S1C3,设置各所述用例的权重为所述用例权重的初始值,例如设置M1S1C1,M1S1C2,M1S1C3的权重均为1,并获取各所述用例的执行时长M1S1C1T1,M1S1C2T2,M1S1C3T3,设置各所述用例的执行标识为所述用例执行标识默认值1,设置各所述用例的未执行标识为所述用例未执行标识默认值0,并将各所述用例的执行权重设置为用例执行权重的初始值0.1,将各所述用例的未执行权重设置为所述用例未执行权重的初始值0.1。
步骤240、根据所述第一个历史版本的待测产品的执行数据和缺陷数据,刷新各所述用例的执行标识、未执行标识、缺陷权重、执行权重和未执行权重;
进一步地,步骤240包括:
步骤2401、对于存在执行结果的用例,若所述用例原先的执行标识为所述用例执行标识默认值,则所述用例的执行标识和未执行标识不变化;若所述用例原先的执行标识为所述用例未执行标识默认值,则设置所述用例的执行标识为所述用例执行标识默认值,所述用例的未执行标识为所述用例未执行标识默认值,设置所述用例的执行权重为所述用例执行权重的初始值;
例如,对于存在执行结果的用例,若用例原先的执行标识为所述用例执行标识默认值1,则所述用例的执行标识和未执行标识保持不变,该用例的执行标识为1,未执行标识为0。若用例原先的执行标识为用例未执行标识默认值0,则设置该用例的执行标识为1,未执行标识为0。需要说明的是,对于第一个历史版本的用例,将用例执行权重和未执行权重均设置为默认值0.1。
对于第N个历史版本,需要根据用例的执行次数加权值,更新用例的执行权重,即有用例的执行权重=当前的用例的执行权重+执行次数加权值。此处,N大于等于2。
步骤2402、对于不存在执行结果的用例,若所述用例原先的执行标识为所述用例未执行标识默认值,则所述用例的执行标识和未执行标识不变化;若所述用例原先的执行标识为所述用例执行标识默认值,则设置所述用例的执行标识为所述用例未执行标识默认值,所述用例的未执行标识为所述用例执行标识默认值,设置所述用例的未执行权重为所述用例未执行权重的初始值。
例如,对于不存在执行结果的用例,若原用例执行标识=0,则该用例的执行标识和未执行标识不变化;若原用例执行标识=1,则设置用例执行标识=0,用例未执行标识=1,并将用例执行权重和未执行权重均设置为默认值0.1。
步骤2403、根据所述缺陷数据和所述缺陷权重的初始值,确定所述用例的缺陷权重。
将上述刷新后的各个值记入测试评估系统的模块需求用例记录单元。
步骤250、基于各所述用例的权重、执行时长、执行标识、未执行标识、缺陷权重、执行权重和未执行权重,计算得到所述第一个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长;
进一步地,步骤250包括:
步骤2501、基于各所述用例的权重、执行权重、执行标识、缺陷权重、未执行权重和未执行标识,计算得到所述第一个历史版本的各所述用例对应的用例权重;
在本实施例中,用例权重可以通过如下公式计算得到:
用例权重=当前用例权重-用例执行权重*用例执行标识+用例对应缺陷权重+用例未执行权重*用例未执行标识。
其中,当前用例执行标识=1时,用例执行权重=当前用例执行权重+执行次数加权值;当前用例未执行标识=1时,用例未执行权重=当前用例未执行权重+未执行次数加权值。
步骤2502、基于所述第一个历史版本对应的各所述需求中用例对应的用例权重之和,以及各需求中用例的数量,计算得到所述第一个历史版本的各所述需求对应的需求权重;
在本实施例中,需求权重可以通过如下公式计算得到:
需求权重=各需求中用例权重的和/用例数量。
步骤2503、基于所述第一个历史版本对应的各所述模块中需求对应的需求权重之和,以及各所述模块中需求的数量,计算得到所述第一个历史版本的各所述模块对应的模块权重;
在本实施例中,模块权重可以通过如下公式计算得到:
模块权重=各模块内需求权重的和/需求数量。
步骤2504、基于各所述用例的执行时长,计算得到单条用例的平均执行时长;
在本实施例中,单条用例的平均执行时长可以通过如下公式计算得到:
单条用例的平均执行时长=当前版本执行用例时长+该用例平均执行时长*历史执行次数/总执行次数;
步骤2505、基于各需求内用例的平均执行时长之和以及各需求中用例的数量,计算得到各需求的平均执行时长;
在本实施例中,各需求的平均执行时长可以通过如下公式计算得到:
各需求的平均执行时=需求内用例执行平均时长的和/需求内用例总数;
步骤2506、基于各模块内需求的平均执行时长之和以及各模块内需求的数量,确定各模块的平均执行时长;
在本实施例中,各模块的平均执行时长可以通过如下公式计算得到:
各模块的平均执行时长=模块内需求平均执行时长之和/模块内需求总数;
步骤2507、基于各模块的平均执行时长以及系统内的用例总数,确定系统内用例的平均执行时长。
在本实施例中,系统内用例的平均执行时长可以通过如下公式计算得到:
系统内用例的平均执行时长=系统内用例平均执行时长之和/用例总数。此处系统指的是测试评估系统。
需要说明的是,上述各公式中的“/”表示除以。
步骤260、针对所述待测产品的第二个历史版本,确定所述第二个历史版本相对于所述第一个历史版本新增或移除的模块、需求和用例;
步骤270、基于所述新增或移除的模块、需求和用例,和所述第二个历史版本的待测产品的执行数据和缺陷数据,对所述第一个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长进行更新,得到所述第二个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长;
需要说明的是,在有模块、需求、用例新增,权重默认值设置同测试评估系统的初始化设置,可以参考上述步骤210~230。然后根据所述第二个历史版本的待测产品的执行数据和缺陷数据,刷新各新增用例的执行标识、未执行标识、缺陷权重、执行权重和未执行权重。
移除时:如模块、需求、用例移除,将已移除用例、需求、模块标识删除标记,按步骤250中的计算公式重新计算移除模块、需求、用例后的需求权重、模块权重与需求、模块平均时长等值,将结果记入测试评估系统的存储单元。
步骤280、确定下一历史版本对应的模块权重、需求权重、用例权重以及用例执行时长,直至得到所述待测产品的所有历史版本的模块权重、需求权重、用例权重以及用例执行时长。
重复上述步骤240~步骤270,但是需要注意的是,若是在确定第N个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长,则需要将步骤240~步骤270中的第一历史版本替换为第N-1个历史版本,将第二历史版本替换为第N个历史版本后执行。直至得到所述待测产品的所有历史版本的模块权重、需求权重、用例权重以及用例执行时长。
本发明可以计算出待测产品的各个历史版本的各个层级的权重和用例执行时长,用于筛选出适合待测产品当前版本的测试用例并预估筛选出的测试用例的执行时长,可大大提升识别测试用例执行范围、测试执行周期的科学性合理性,有效提高测试管理评估分析的准确性以及待测产品的测试覆盖度。
根据本发明提供的一种测试用例的筛选方法,所述基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例,包括:
确定所述待测产品当前版本对应的历史用例和新增用例;
对于所述历史用例,按照模块权重进行筛选,在所述模块权重大于等于所述模块权重的初始值的情况下,将相应模块下的全量用例筛选出来作为所述测试用例;
在所述模块权重小于所述模块权重的初始值的情况下,按照需求权重进行筛选,在需求权重大于等于所述需求权重的初始值的情况下,将相应需求下的全量用例筛选出来作为所述测试用例;
在需求权重小于所述需求权重的初始值的情况下,将相应需求下的用例权重大于等于所述用例权重的初始值的用例筛选出来作为所述测试用例;
对于所述新增用例,将新增用例均筛选出来作为所述测试用例。
可以理解的是,对于历史用例筛选:首先按模块权重筛选,模块权重>=1时,筛选用例为该模块下全量用例,模块权重<1时,则进行需求级权重分析,当需求权重>=1时,筛选该需求下所有用例,需求权重<1时,则筛选该需求下权重>=1的用例;
新增用例筛选:执行参数均设置为1,需全量筛选。
本发明根据待测产品的各个历史版本的模块权重、需求权重、用例权重和缺陷权重,筛选出适合待测产品当前版本的测试用例,在模块层面、需求层面对测试用例的覆盖度进行了评估分析,可有效提高待测产品的测试覆盖度,减少用例覆盖不充分导致的潜在风险。
根据本发明提供的一种测试用例的筛选方法,所述基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果,包括:
基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,确定新增用例的平均执行时长;
基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,确定所述测试用例中的历史用例的平均执行时长;
基于所述新增用例的平均执行时长和历史用例的平均执行时长,得到所述测试用例对应的测试周期评估结果。
可选地,对于新增用例的平均执行时长,可以通过如下方式确定:
对于新增模块新增需求,用例预估执行时间为系统平均用例执行时长;已有模块新增需求,用例预估执行时间设置为模块内用例平均执行时长;已有需求新增用例,用例预估执行时间设置为需求内用例平均执行时长。
基于所述新增用例的平均执行时长和历史用例的平均执行时长,可以得到所述测试用例对应的测试周期评估结果。
本发明可以计算出待测产品的各个历史版本的各个层级的权重和用例执行时长,用于筛选出适合待测产品当前版本的测试用例并预估筛选出的测试用例的执行时长,可大大提升识别测试用例执行范围、测试执行周期的科学性合理性,有效提高测试管理评估分析的准确性以及待测产品的测试覆盖度。
下面对本发明提供的测试用例的筛选装置进行描述,下文描述的测试用例的筛选装置与上文描述的测试用例的筛选方法可相互对应参照。
图3为本发明提供的测试用例的筛选装置的结构示意图,如图3所示,该测试用例的筛选装置300包括:
历史数据获取单元310,用于获取待测产品的历史版本执行数据;
确定单元320,用于根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长;
用例筛选单元330,用于基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例,所述各个层级的权重包括:模块权重、需求权重、用例权重和缺陷权重;
测试周期评估单元340,用于基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果。
在一些实施例中,所述根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长,包括:
进行测试评估系统的初始化设置,所述初始化设置包括:设置模块权重的初始值、需求权重的初始值、用例权重的初始值、用例执行权重的初始值、用例未执行权重的初始值、用例执行次数加权值、用例未执行次数加权值、用例执行标识默认值、用例未执行标识默认值、缺陷权重的初始值;
将所述历史版本执行数据加载至所述测试评估系统,获取所述测试评估系统输出的所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长。
在一些实施例中,所述测试评估系统通过执行以下步骤输出所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长:
针对所述待测产品的第一个历史版本,从用例管理系统中获取所述第一个历史版本的待测产品的功能模块,对各所述功能模块进行标识,并设置各所述功能模块的权重为所述模块权重的初始值;
获取所述待测产品各功能模块下的需求,对各所述需求进行标识,并设置各所述需求的权重为所述需求权重的初始值;
获取各所述需求下的用例,并对各所述用例进行标识,设置各所述用例的权重为所述用例权重的初始值,设置各所述用例的执行标识、未执行标识、执行权重和未执行权重,并获取各所述用例的执行时长;
根据所述第一个历史版本的待测产品的执行数据和缺陷数据,刷新各所述用例的执行标识、未执行标识、缺陷权重、执行权重和未执行权重;
基于各所述用例的权重、执行时长、执行标识、未执行标识、缺陷权重、执行权重和未执行权重,计算得到所述第一个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长;
针对所述待测产品的第二个历史版本,确定所述第二个历史版本相对于所述第一个历史版本新增或移除的模块、需求和用例;
基于所述新增或移除的模块、需求和用例,和所述第二个历史版本的待测产品的执行数据和缺陷数据,对所述第一个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长进行更新,得到所述第二个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长;
确定下一历史版本对应的模块权重、需求权重、用例权重以及用例执行时长,直至得到所述待测产品的所有历史版本的模块权重、需求权重、用例权重以及用例执行时长。
在一些实施例中,所述根据所述第一个历史版本的待测产品的执行数据和缺陷数据,刷新各所述用例的执行标识、未执行标识、缺陷权重、执行权重和未执行权重,包括:
对于存在执行结果的用例,若所述用例原先的执行标识为所述用例执行标识默认值,则所述用例的执行标识和未执行标识不变化;若所述用例原先的执行标识为所述用例未执行标识默认值,则设置所述用例的执行标识为所述用例执行标识默认值,所述用例的未执行标识为所述用例未执行标识默认值,设置所述用例的执行权重为所述用例执行权重的初始值;
对于不存在执行结果的用例,若所述用例原先的执行标识为所述用例未执行标识默认值,则所述用例的执行标识和未执行标识不变化;若所述用例原先的执行标识为所述用例执行标识默认值,则设置所述用例的执行标识为所述用例未执行标识默认值,所述用例的未执行标识为所述用例执行标识默认值,设置所述用例的未执行权重为所述用例未执行权重的初始值;
根据所述缺陷数据和所述缺陷权重的初始值,确定所述用例的缺陷权重。
在一些实施例中,所述基于各所述用例的权重、执行时长、执行标识、未执行标识、缺陷权重、执行权重和未执行权重,计算得到所述第一个历史版本对应的模块权重、需求权重、用例权重以及用例执行时长,包括:
基于各所述用例的权重、执行权重、执行标识、缺陷权重、未执行权重和未执行标识,计算得到所述第一个历史版本的各所述用例对应的用例权重;
基于所述第一个历史版本对应的各所述需求中用例对应的用例权重之和,以及各需求中用例的数量,计算得到所述第一个历史版本的各所述需求对应的需求权重;
基于所述第一个历史版本对应的各所述模块中需求对应的需求权重之和,以及各所述模块中需求的数量,计算得到所述第一个历史版本的各所述模块对应的模块权重;
基于各所述用例的执行时长,计算得到单条用例的平均执行时长;
基于各需求内用例的平均执行时长之和以及各需求中用例的数量,计算得到各需求的平均执行时长;
基于各模块内需求的平均执行时长之和以及各模块内需求的数量,确定各模块的平均执行时长;
基于各模块的平均执行时长以及系统内的用例总数,确定系统内用例的平均执行时长。
在一些实施例中,所述基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例,包括:
确定所述待测产品当前版本对应的历史用例和新增用例;
对于所述历史用例,按照模块权重进行筛选,在所述模块权重大于等于所述模块权重的初始值的情况下,将相应模块下的全量用例筛选出来作为所述测试用例;
在所述模块权重小于所述模块权重的初始值的情况下,按照需求权重进行筛选,在需求权重大于等于所述需求权重的初始值的情况下,将相应需求下的全量用例筛选出来作为所述测试用例;
在需求权重小于所述需求权重的初始值的情况下,将相应需求下的用例权重大于等于所述用例权重的初始值的用例筛选出来作为所述测试用例;
对于所述新增用例,将新增用例均筛选出来作为所述测试用例。
在一些实施例中,所述基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果,包括:
基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,确定新增用例的平均执行时长;
基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,确定所述测试用例中的历史用例的平均执行时长;
基于所述新增用例的平均执行时长和历史用例的平均执行时长,得到所述测试用例对应的测试周期评估结果。
在此需要说明的是,本发明实施例提供的测试用例的筛选装置,能够实现上述测试用例的筛选方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
需要说明的是,本申请每一个实施方式可以自由组合、调换顺序或者单独执行,并不需要依靠或依赖固定的执行顺序。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行测试用例的筛选方法,该方法包括:获取待测产品的历史版本执行数据;根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长,所述各个层级的权重包括:模块权重、需求权重、用例权重和缺陷权重;基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例;基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的测试用例的筛选方法,该方法包括:获取待测产品的历史版本执行数据;根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长,所述各个层级的权重包括:模块权重、需求权重、用例权重和缺陷权重;基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例;基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的测试用例的筛选方法,该方法包括:获取待测产品的历史版本执行数据;根据所述历史版本执行数据,确定所述待测产品的各个历史版本对应的各个层级的权重和用例执行时长,所述各个层级的权重包括:模块权重、需求权重、用例权重和缺陷权重;基于所述待测产品的各个历史版本对应的各个层级的权重,筛选得到所述待测产品当前版本对应的测试用例;基于所述待测产品的各个历史版本对应的各个层级的用例执行时长,对所述测试用例进行测试周期评估,得到所述测试用例对应的测试周期评估结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 接口测试用例生成方法、装置、电子设备、存储介质
- 英文单词和语句筛选方法、装置、存储介质及电子设备
- 对电子表格进行筛选的方法、装置、电子设备及存储介质
- 一种数据筛选统计方法、装置、电子设备及存储介质
- 瓜果筛选方法、瓜果筛选设备、电子设备及存储介质
- 回归测试用例的筛选方法、装置及电子设备、存储介质
- 测试用例的筛选方法、装置、电子设备及存储介质