CN116932373A - 测试用例筛选方法、设备、存储介质及程序产品 - Google Patents
测试用例筛选方法、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN116932373A CN116932373A CN202210351872.7A CN202210351872A CN116932373A CN 116932373 A CN116932373 A CN 116932373A CN 202210351872 A CN202210351872 A CN 202210351872A CN 116932373 A CN116932373 A CN 116932373A
- Authority
- CN
- China
- Prior art keywords
- test case
- code coverage
- alternative
- alternative test
- coverage rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 648
- 238000012216 screening Methods 0.000 title claims abstract description 126
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000012549 training Methods 0.000 claims description 29
- 239000006185 dispersion Substances 0.000 claims description 19
- 239000013598 vector Substances 0.000 claims description 19
- 230000032683 aging Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开实施例提供一种测试用例筛选方法、设备、存储介质及程序产品,通过采集服务端目标接口的多个服务请求确定为备选测试用例;根据预设的代码覆盖率指标预测模型获取备选测试用例的代码覆盖率指标;根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中测试用例集合各测试用例用于对服务端目标接口进行测试。基于代码覆盖率指标预测模型预测备选测试用例的代码覆盖率指标筛选,精简测试用例,减轻测试时服务端压力,保留对代码覆盖率贡献更大的备选测试用例,保证对目标接口代码覆盖,最大化接口测试的有效性以及问题检出率。
Description
技术领域
本公开实施例涉及计算机与网络通信技术领域,尤其涉及一种测试用例筛选方法、设备、存储介质及程序产品。
背景技术
目前,对服务端接口的检测,通常采用流量采集、回放、断言比较的方式进行,即通过对服务端接口在各种环境下的服务请求流量的持续采集获得数据源,再基于不同的回放策略进行流量回放验收,进而基于回放阶段的响应结果与预期是否一致判断接口相关功能是否与预期相符。
对于服务请求流量较大的服务端接口而言,采集阶段会获得大量服务请求,现有技术中通常直接将采集到的服务请求作为测试用例进行全量回放验收,会对服务端造成很大压力;并且其中存在大量冗余或无效的测试用例,对回放验收的实际意义不大,还有可能造成回放验收时的误报、甚至造成对应服务的误报警。
发明内容
本公开实施例提供一种测试用例筛选方法、设备、存储介质及程序产品,以对服务端接口采集的测试用例进行筛选,有效的精简测试用例,减轻服务端压力。
第一方面,本公开实施例提供一种测试用例筛选方法,包括:
采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;
对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;
根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中所述测试用例集合各测试用例用于对所述服务端目标接口进行测试。
第二方面,本公开实施例提供一种测试用例筛选设备,包括:
采集单元,用于采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;
预测单元,用于对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;
判断单元,用于根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中所述测试用例集合各测试用例用于对所述服务端目标接口进行测试。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的测试用例筛选方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的测试用例筛选方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的测试用例筛选方法。
本公开实施例提供的测试用例筛选方法、设备、存储介质及程序产品,通过采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中测试用例集合各测试用例用于对服务端目标接口进行测试。通过代码覆盖率指标预测模型预测备选测试用例的代码覆盖率指标,基于代码覆盖率指标筛选,可保留对代码覆盖率贡献更大的备选测试用例,可精简测试用例,减轻测试时服务端压力,并保证测试用例对目标接口被测代码的覆盖,基于精简后的测试用例进行回放测试,可最大化接口测试的有效性以及问题检出率。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一实施例提供的测试用例筛选方法的系统示例图;
图2为本公开一实施例提供的测试用例筛选方法流程示意图;
图3为本公开另一实施例提供的测试用例筛选方法流程示意图;
图4为本公开另一实施例提供的测试用例筛选方法流程示意图;
图5为本公开另一实施例提供的测试用例筛选方法流程示意图;
图6为本公开另一实施例提供的测试用例筛选方法流程示意图;
图7为本公开一实施例提供的测试用例筛选设备的结构框图;
图8为本公开一实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
目前,对服务端接口的检测,通常采用流量采集、回放、断言比较的方式进行,即通过对服务端接口在各种环境下的服务请求流量的持续采集获得数据源,再基于不同的回放策略进行流量回放验收,进而基于回放阶段的响应结果与预期是否一致判断接口相关功能是否与预期相符。
对于服务请求流量较大的服务端接口而言,采集阶段会获得大量服务请求,现有技术中通常直接将采集到的服务请求作为测试用例进行全量回放验收,全量回放验收会对服务端造成很大压力、容易触发监控侧的误报警,尤其对于生产环境而言更是不可取的;此外,采集到的服务请求流量中存在大量重复且冗余的数据,对于接口验收而言,大量冗余的测试用例并无法进一步提升代码(或方法)覆盖率,即这部分冗余的测试用例并无法发挥很大验收检测价值。
除了上述问题外,对于一些特殊的服务端接口,服务请求流量数据中存在与时间强相关的字段参数,这些与时间强相关的字段参数直接决定了测试用例的有效生存时间。举例来讲,对于直播场景核心接口的流量请求均强依赖于直播间号(roomID)而直播间的有效时间受到直播间的实际开播情况决定,通常某个直播间的开播时间在几十分钟至几小时不等,对于在这期间所采集到的服务请求流量而言,如果未在直播房间关播前及时进行回放,则会造成全部服务请求流量的失效,无法实际对相应的接口起到检测验收的作用。更广泛的来讲,如果采集服务请求流量获取到测试用例后未及时进行回放验收检测,则会直接影响测试用例的有效性,无法有效对接口时间功能验收、造成测试验收时的误报、甚至造成对应服务的误报警。
为了解决上述技术问题,本公开提供一种测试用例筛选方法,通过采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中测试用例集合各测试用例用于对服务端目标接口进行测试。通过代码覆盖率指标预测模型预测备选测试用例的代码覆盖率指标,基于代码覆盖率指标筛选,可保留对代码覆盖率贡献更大的备选测试用例,可精简测试用例,减轻测试时服务端压力,并保证测试用例对目标接口被测代码的覆盖,基于精简后的测试用例进行回放测试,可最大化接口测试的有效性以及问题检出率。
可选的,在根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标前,还对各备选测试用例进行初步筛选,筛除无效和/或重复的备选测试用例,通过初步筛选筛除无效和/或重复的备选测试用例,也可进一步有效的精简测试用例,减轻测试时服务端压力,并且保证测试用例的有效性、避免测试用例失效导致测试失败。
本公开提供一种测试用例筛选方法适用于如图1所示的系统,包括网关101、服务端102、用于测试用例筛选的服务器103、以及数据库104,其中用户通过网关101向服务端102目标接口发送服务请求,服务器103可从网关101采集目标接口的多个服务请求,将各服务请求确定为备选测试用例;对各备选测试用例进行初步筛选,筛除无效和/或重复的备选测试用例;对于经过初步筛选后的任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;根据代码覆盖率指标判断是否淘汰该备选测试用例,若确定不淘汰该备选测试用例,则将该备选测试用例加入测试用例集合,存储到数据库104中,以用于基于测试用例进行回放测试。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
参考图2,图2为本公开一实施例提供的测试用例筛选方法流程示意图。本实施例的方法可以应用在终端设备或服务器中,该测试用例筛选方法包括:
S201、采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例。
在本实施例中,可以仅针对服务端的目标接口的服务请求(user request)流量进行采集,也可对服务端所有接口的服务请求流量进行采集,再按照接口粒度从中提取出目标接口的服务请求,并将目标接口的服务请求确定为备选测试用例,经过下述过程的筛选后,最终的测试用例可用于通过回放的方式对服务端的目标接口进行测试。可选的,可从与服务端连接的网关设备采集服务端目标接口的多个服务请求。
S202、对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标。
在本实施例中,预先训练一个代码覆盖率指标预测模型,用于预测备选测试用例的代码覆盖率指标,进而基于预测的代码覆盖率指标来判断备选测试用例的是否需要被淘汰。其中,代码覆盖率是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。
S203、根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中所述测试用例集合各测试用例用于对所述服务端目标接口进行测试。
在本实施例中,可根据代码覆盖率指标判断是否淘汰备选测试用例,也即筛选满足特定条件的目标测试用例,通过根据代码覆盖率指标的筛选,可以保留对代码覆盖率贡献更大的备选测试用例,可更加有效的精简测试用例,减轻服务端压力集合。
可选的,可将各备选测试用例的代码覆盖率指标与阈值进行比较,将高于阈值的备选测试用例作为目标测试用例加入测试用例集合,淘汰不高于阈值的备选测试用例;或者,可以对各备选测试用例的代码覆盖率指标进行排序,根据排序选择代码覆盖率指标最高的预定数量的备选测试用例作为目标测试用例加入测试用例集合,淘汰剩余备选测试用例。
本实施例提供的测试用例筛选方法,通过采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中所述测试用例集合各测试用例用于对所述服务端目标接口进行测试。通过代码覆盖率指标预测模型预测备选测试用例的代码覆盖率指标,基于代码覆盖率指标筛选,可保留对代码覆盖率贡献更大的备选测试用例,可进一步精简测试用例,减轻服务端压力,并保证测试用例对目标接口被测代码的覆盖,基于精简后的测试用例进行回放测试,可最大化接口测试的有效性以及问题检出率。
在上述任一实施例的基础上,在S202所述的根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标之前,还可对各备选测试用例进行初步筛选,筛除无效和/或重复的备选测试用例。
在本实施例中,由于采集到的备选测试用例数量众多,且可能存在一些无效的或者冗余重复的备选测试用例,其中无效的备选测试用例包括执行失败和时效已过(失效)的备选测试用例。为了筛选得到较为精简、高效的测试用例集合,可先对各备选测试用例进行初步筛选,筛除无效和/或重复的备选测试用例,避免每一个备选测试用例都经过代码覆盖率指标预测模型预测,浪费资源。经过初步筛选后虽然筛除了一些无效和/或重复的备选测试用例,剩余的备选测试用例仍然存在一定的冗余,尤其是某些备选测试用例虽然有效且不重复,但是其代码覆盖与其他备选测试用例重叠,对于测试用例集合的代码覆盖率没有贡献或贡献较小,因此经过初步筛选后的备选测试用例再通过代码覆盖率指标预测模型获取代码覆盖率指标,基于代码覆盖率指标对备选测试用例进行进一步的精简,提高代码覆盖率指标预测模型的处理效率。
可选的,在筛除执行失败的备选测试用例时,可根据备选测试用例在当前版本的服务端中执行时的执行结果进行筛除;在筛除时效已过的备选测试用例时,可根据备选测试用例的时效进行筛除,或者考虑到时效已过的备选测试用例无法执行,因此可重新在当前版本的服务端中执行,根据执行结果是否失败来筛除一些时效已过的备选测试用例;在筛除冗余重复的备选测试用例时,可获取任意两个备选测试用例之间的相似度和/或离散度,根据相似度和/或离散度筛除重复的备选测试用例,保留尽可能离散的备选测试用例。当然,初步筛选并不限于上述举例,还可根据其他筛选策略进行筛选,此处不再赘述。
在上述任一实施例的基础上,如图3所示,所述对各备选测试用例进行初步筛选,具体可包括:
S301、确定各备选测试用例对应的服务端版本。
在本实施例中,在采集阶段即可确定各备选测试用例对应的服务端版本,并按照服务端版本进行区分。可选的,可将备选测试用例的服务请求在采集时服务端的实际编译版本确定为该备选测试用例对应的服务端版本,其中选择实际编译版本是考虑到服务端代码的一次编译即代表服务端的代码或配置发生一次变更,而代码或配置变更是极易引入问题的环节,因此以采集时服务端的实际编译版本确定为该备选测试用例对应的服务端版本,可有效的区分每一次服务端的代码或配置变更前后的备选测试用例。
由于一些服务请求是具有时效性的,过了时效后服务请求也将失效(目标接口不再响应),尤其是服务端版本更新前的一些服务请求可能再服务端版本更新后失效,将过了时效的服务请求作为测试用例无法对目标接口起到检测验收的作用,可能造成测试验收时的误报、甚至造成对应服务的误报警;此外,对于一些执行失败的服务请求(目标接口无响应)作为测试用例也无法对目标接口起到检测验收的作用。针对上述无效的备选测试用例,可根据服务端版本的不同分别执行S302或S303。
S302、对于旧版本的第一类备选测试用例,获取各第一类备选测试用例的时效和/或各第一类备选测试用例在当前版本的服务端中执行时的执行结果,筛除时效已过和/或执行失败的第一类备选测试用例。
在本实施例中,对于旧版本的第一类备选测试用例,可以获取每一第一类备选测试用例的时效,根据时效判断是否时效已过,进而筛除时效已过的第一类备选测试用例;或者,对于旧版本的第一类备选测试用例,可以重新在当前版本的服务端中执行,根据执行结果判断是否时效已过,若执行成功则说明时效未过,若执行失败则说明时效已过。通过筛除时效已过的备选测试用例,可保留弱时间关联的备选测试用例,有效避免时效已过的备选测试用例造成测试验收时的误报、甚至造成对应服务的误报警。
此外,对于一些旧版本的第一类备选测试用例在旧版本的服务端中就已经执行失败,可直接筛除,当然也可重新在当前版本的服务端中执行判断是否能够执行成功。
S303、对于当前版本的第二类备选测试用例,获取各第二类备选测试用例在当前版本的服务端中执行时的执行结果,筛除执行失败的第二类备选测试用例。
在本实施例中,对于当前版本的第二类备选测试用例,可直接获取其在当前版本的服务端中执行时的执行结果,执行结果在采集时即可获取到,进而可根据执行结果直接筛除执行失败的第二类备选测试用例。
在上述任一实施例的基础上,如图4所示,所述对各备选测试用例进行初步筛选,具体还可包括:
S401、获取任意两个备选测试用例之间的相似度和/或离散度;
S402、根据相似度和/或离散度对各备选测试用例进行筛选。
在本实施例中,为了对测试用例集合进行精简,需要筛除相似或者重复的测试用例,保留尽可能离散的测试用例,因此本实施例中需要获取任意两个备选测试用例之间的相似度和/或离散度,进而基于相似度和/或离散度对各备选测试用例进行筛选。
具体的,本实施例中可先将备选测试用例进行矢量化抽象,可采用自然语言处理(Natural Language Processing,NLP)将备选测试用例转换为矢量(词向量)形式,例如采用Word2vec将备选测试用例转换为词向量;进而基于备选测试用例转换为词向量可计算任意两个备选测试用例之间的相似度和/或离散度,其中相似度用于衡量两个备选测试用例之间的相似程度,离散度用于衡量两个备选测试用例之间的差异程度。进一步的,在获取到任意两个备选测试用例之间的相似度后,可选择相似度最高的预定数量的多对备选测试用例,或者选择相似度高于阈值的多对备选测试用例,删除其中一个备选测试用例,实现筛除相似或者重复的测试用例。在获取到任意两个备选测试用例之间的离散度后,可选择离散度最低的预定数量的多对备选测试用例,或者选择离散度低于阈值的多对备选测试用例,删除其中一个备选测试用例,实现筛除相似或者重复的测试用例,保留尽可能离散的测试用例。
在上述任一实施例的基础上,所述对各备选测试用例进行初步筛选,具体还可包括:
按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例,其中,服务端版本越新的备选测试用例所占比例越大。
在本实施例中,考虑到越近的备选测试用例其可能更重要、被用户请求的热点,因此保留尽可能近、服务端版本尽可能新的备选测试用例,本实施例中可配置不同服务端版本的备选测试用例所占的比例,服务端版本越新的备选测试用例所占比例越大,例如当前版本的备选测试用例占70%,上一版本的备选测试用例占20%,更早版本的备选测试用例占10%。本实施例中,考虑得到服务端版本更新可能引入问题,因此通过保留上一版本以及更早版本的备选测试用例,可检出当前服务端版本在代码修改时引入的问题,不会出现由于当前服务端版本在代码修改错误造成当前版本的备选测试用例有误,使得错误无法得到检出的情况;此外,上一版本以及更早版本的备选测试用例还丰富了测试用例集合,有效的提升测试用例集合的代码覆盖率。
进一步的,如图5所示,所述按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例,具体可包括:
S501、按照预设比例多次从不同服务端版本的备选测试用例中筛选备选测试用例,得到不同的备选测试用例组合;
S502、将任一种备选测试用例组合中的备选测试用例在当前版本的服务端中执行,获取备选测试用例组合对应的代码覆盖率;
S503、根据各备选测试用例组合对应的代码覆盖率,选择代码覆盖率最大的备选测试用例组合。
在本实施例中,在按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例时,对于某一个服务端版本的备选测试用例具体选择哪些备选测试用例,可通过组合的方式进行确定,可得到不同的备选测试用例组合,每一种备选测试用例组合中各服务端版本的备选测试用例的数量不变,但不同备选测试用例组合中至少存在一个服务端版本的备选测试用例不同。本实施例中可不穷举所有的组合方式,可给出一定数量的组合方式即可。
对于任一种备选测试用例组合中的备选测试用例在当前版本的服务端中执行,获取备选测试用例组合对应的代码覆盖率,进一步的,将各备选测试用例组合对应的代码覆盖率进行横向比较,从中选择代码覆盖率最大的备选测试用例组合,实现对备选测试用例按照服务端版本筛选。
需要说明的是,上述各种初步筛选的方式在不冲突的情况下可任一组合,例如,可以先执行S301-S303,再执行S401-S402,再执行S501-S503,通过多维度过滤可有效的精简测试用例,其他的组合方式此处不再赘述。
在上述任一实施例的基础上,本实施例中可对于经过初步筛选后的任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标,进而基于代码覆盖率指标判断是否淘汰该备选测试用例。
其中,如图6所示,预设的代码覆盖率指标预测模型是通过如下过程训练得到的:
S601、获取服务端目标接口的多个历史测试用例,将多个历史测试用例划分不同的历史测试用例子集;
S602、将任一历史测试用例子集中的历史测试用例在当前版本的服务端中执行,获取该历史测试用例子集对应的代码覆盖率,并将该历史测试用例子集中的各历史测试用例的词向量以及该历史测试用例子集对应的代码覆盖率,确定为一组训练数据;
S603、根据各训练数据对代码覆盖率指标预测模型的初始模型进行训练,得到所述预设的代码覆盖率指标预测模型。
在本实施例中,获取服务端目标接口的多个历史测试用例,将多个历史测试用例划分不同的历史测试用例子集,例如历史测试用例共有10000条,每200条一组分为多个历史测试用例子集(batch),对于任一个历史测试用例子集,将中该历史测试用例子集的历史测试用例在当前版本的服务端中执行,获取该历史测试用例子集对应的代码覆盖率。
对该历史测试用例子集中的历史测试用例进行矢量化,得到各历史测试用例的词向量,将该历史测试用例子集对应的代码覆盖率作为该历史测试用例子集中的历史测试用例的词向量的标签,也即将该历史测试用例子集中的各历史测试用例的词向量以及该历史测试用例子集对应的代码覆盖率,确定为一组训练数据。对于每一历史测试用例子集都进行上述的处理,得到多组训练数据。
进一步的,基于训练数据对代码覆盖率指标预测模型的初始模型进行训练,在每一轮训练中,模型输入为一组训练数据中所有历史测试用例的词向量,模型输出为预测的代码覆盖率指标,根据预测的代码覆盖率指标以及该组训练数据的历史测试用例子集对应的代码覆盖率计算损失,进行模型参数优化。经过的多轮训练后,得到最终的代码覆盖率指标预测模型,该模型能够对输入的任一测试用例的词向量,预测对应的代码覆盖率指标,该代码覆盖率指标可用于衡量该测试用例对代码覆盖率的贡献大小,基于代码覆盖率指标预测模型,建立了测试用例与代码覆盖率指标的关联,可有效保证接口测试时被测代码的覆盖率。
需要说明的是,模型训练过程的执行主体可以与模型应用过程的执行主体相同,当然也可不同。此外代码覆盖率指标预测模型可以为任意的机器学习模型,本实施例不做限制。
在此基础上,针对于经过初步筛选后剩余的任一备选测试用例,可将备选测试用例的词向量输入到代码覆盖率指标预测模型进行处理,到该备选测试用例的代码覆盖率指标。
进一步的,S203所述的根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,具体可包括:
将备选测试用例的代码覆盖率指标与测试用例集合的代码覆盖率进行比较;若备选测试用例的代码覆盖率指标高于测试用例集合的代码覆盖率,则确定不淘汰该备选测试用例;若备选测试用例的代码覆盖率指标不高于测试用例集合的代码覆盖率,则确定淘汰该备选测试用例。
在本实施例中,若备选测试用例的代码覆盖率指标高于测试用例集合的代码覆盖率,说明将该备选测试用例加入测试用例集合能够进一步优化测试用例集合的代码覆盖率,可加入测试用例集合;若备选测试用例的代码覆盖率指标不高于测试用例集合的代码覆盖率,说明将该备选测试用例加入测试用例集合不能够进一步优化测试用例集合的代码覆盖率,加入测试用例集合没有意义,可将其丢弃。
对应于上文实施例的测试用例筛选方法,图7为本公开实施例提供的测试用例筛选设备的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图7,所述测试用例筛选设备700包括:采集单元701、预测单元703、判断单元704。
采集单元701,用于采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;
预测单元703,用于对于经过任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;
判断单元704,用于根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中所述测试用例集合各测试用例用于对所述服务端目标接口进行测试。
在本公开的一个或多个实施例中,所述预测单元703在对于经过任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标时,用于:
将任一备选测试用例的词向量输入到所述代码覆盖率指标预测模型进行处理,得到该备选测试用例的代码覆盖率指标。
在本公开的一个或多个实施例中,所述判断单元704在根据代码覆盖率指标判断该备选测试用例是否为目标测试用例时,用于:
将备选测试用例的代码覆盖率指标与测试用例集合的代码覆盖率进行比较;
若备选测试用例的代码覆盖率指标高于测试用例集合的代码覆盖率,则确定不淘汰该备选测试用例;
若备选测试用例的代码覆盖率指标不高于测试用例集合的代码覆盖率,则确定淘汰该备选测试用例。
在本公开的一个或多个实施例中,所述设备还包括初筛单元702,用于在根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标前,对各备选测试用例进行筛选,筛除无效和/或重复的备选测试用例。
在本公开的一个或多个实施例中,所述初筛单元702在对各备选测试用例进行初步筛选时,用于:
确定各备选测试用例对应的服务端版本;
对于旧版本的第一类备选测试用例,获取各第一类备选测试用例的时效和/或各第一类备选测试用例在当前版本的服务端中执行时的执行结果,筛除时效已过和/或执行失败的第一类备选测试用例;和/或
对于当前版本的第二类备选测试用例,获取各第二类备选测试用例在当前版本的服务端中执行时的执行结果,筛除执行失败的第二类备选测试用例。
在本公开的一个或多个实施例中,所述初筛单元702在对各备选测试用例进行初步筛选时,用于:
获取任意两个备选测试用例之间的相似度和/或离散度;
根据相似度和/或离散度对各备选测试用例进行筛选。
在本公开的一个或多个实施例中,所述初筛单元702在对各备选测试用例进行初步筛选时,用于:
按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例,其中,服务端版本越新的备选测试用例所占比例越大。
在本公开的一个或多个实施例中,所述初筛单元702在按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例时,用于:
按照预设比例多次从不同服务端版本的备选测试用例中筛选备选测试用例,得到不同的备选测试用例组合;
将任一种备选测试用例组合中的备选测试用例在当前版本的服务端中执行,获取备选测试用例组合对应的代码覆盖率;
根据各备选测试用例组合对应的代码覆盖率,选择代码覆盖率最大的备选测试用例组合。
在本公开的一个或多个实施例中,所述预设的代码覆盖率指标预测模型是通过如下过程训练得到的:
获取服务端目标接口的多个历史测试用例,将多个历史测试用例划分不同的历史测试用例子集;
将任一历史测试用例子集中的历史测试用例在当前版本的服务端中执行,获取该历史测试用例子集对应的代码覆盖率,并将该历史测试用例子集中的各历史测试用例的词向量以及该历史测试用例子集对应的代码覆盖率,确定为一组训练数据;
根据各训练数据对代码覆盖率指标预测模型的初始模型进行训练,得到所述预设的代码覆盖率指标预测模型。
需要说明的是,模型训练过程可以是在上述测试用例筛选方法的执行主体上执行,也可在另外的执行主体上执行。若模型训练过程在上述测试用例筛选方法的执行主体上执行,所述测试用例筛选设备还包括训练单元,用于执行上述的模型训练过程。
本实施例提供的测试用例筛选设备,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
参考图8,其示出了适于用来实现本公开实施例的电子设备800的结构示意图,该电子设备800可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable MediaPlayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(Read Only Memory,简称ROM)802中的程序或者从存储装置808加载到随机访问存储器(Random Access Memory,简称RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
通常,以下装置可以连接至I/O接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从ROM802被安装。在该计算机程序被处理装置801执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
第一方面,根据本公开的一个或多个实施例,提供了一种测试用例筛选方法,包括:
采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;
对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;
根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中所述测试用例集合各测试用例用于对所述服务端目标接口进行测试。
根据本公开的一个或多个实施例,所述对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标,包括:
将任一备选测试用例的词向量输入到所述代码覆盖率指标预测模型进行处理,得到该备选测试用例的代码覆盖率指标。
根据本公开的一个或多个实施例,所述根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,包括:
将备选测试用例的代码覆盖率指标与测试用例集合的代码覆盖率进行比较;
若备选测试用例的代码覆盖率指标高于测试用例集合的代码覆盖率,则确定该备选测试用例为目标测试用例;
若备选测试用例的代码覆盖率指标不高于测试用例集合的代码覆盖率,则确定淘汰该备选测试用例。
根据本公开的一个或多个实施例,所述根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标前,还包括:
对各备选测试用例进行筛选,筛除无效和/或重复的备选测试用例。
根据本公开的一个或多个实施例,所述对各备选测试用例进行初步筛选,包括:
确定各备选测试用例对应的服务端版本;
对于旧版本的第一类备选测试用例,获取各第一类备选测试用例的时效和/或各第一类备选测试用例在当前版本的服务端中执行时的执行结果,筛除时效已过和/或执行失败的第一类备选测试用例;和/或
对于当前版本的第二类备选测试用例,获取各第二类备选测试用例在当前版本的服务端中执行时的执行结果,筛除执行失败的第二类备选测试用例。
根据本公开的一个或多个实施例,所述对各备选测试用例进行初步筛选,包括:
获取任意两个备选测试用例之间的相似度和/或离散度;
根据相似度和/或离散度对各备选测试用例进行筛选。
根据本公开的一个或多个实施例,所述对各备选测试用例进行初步筛选,包括:
按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例,其中,服务端版本越新的备选测试用例所占比例越大。
根据本公开的一个或多个实施例,所述按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例,包括:
按照预设比例多次从不同服务端版本的备选测试用例中筛选备选测试用例,得到不同的备选测试用例组合;
将任一种备选测试用例组合中的备选测试用例在当前版本的服务端中执行,获取备选测试用例组合对应的代码覆盖率;
根据各备选测试用例组合对应的代码覆盖率,选择代码覆盖率最大的备选测试用例组合。
根据本公开的一个或多个实施例,所述预设的代码覆盖率指标预测模型是通过如下过程训练得到的:
获取服务端目标接口的多个历史测试用例,将多个历史测试用例划分不同的历史测试用例子集;
将任一历史测试用例子集中的历史测试用例在当前版本的服务端中执行,获取该历史测试用例子集对应的代码覆盖率,并将该历史测试用例子集中的各历史测试用例的词向量以及该历史测试用例子集对应的代码覆盖率,确定为一组训练数据;
根据各训练数据对代码覆盖率指标预测模型的初始模型进行训练,得到所述预设的代码覆盖率指标预测模型。
第二方面,根据本公开的一个或多个实施例,提供了一种测试用例筛选设备,包括:
采集单元,用于采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;
预测单元,用于对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;
判断单元,用于根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中所述测试用例集合各测试用例用于对所述服务端目标接口进行测试。
根据本公开的一个或多个实施例,所述预测单元在对于经过任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标时,用于:
将任一备选测试用例的词向量输入到所述代码覆盖率指标预测模型进行处理,得到该备选测试用例的代码覆盖率指标。
根据本公开的一个或多个实施例,所述判断单元在根据代码覆盖率指标判断该备选测试用例是否为目标测试用例时,用于:
将备选测试用例的代码覆盖率指标与测试用例集合的代码覆盖率进行比较;
若备选测试用例的代码覆盖率指标高于测试用例集合的代码覆盖率,则确定不淘汰该备选测试用例;
若备选测试用例的代码覆盖率指标不高于测试用例集合的代码覆盖率,则确定淘汰该备选测试用例。
根据本公开的一个或多个实施例,所述设备还包括初筛单元,用于在根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标前,对各备选测试用例进行筛选,筛除无效和/或重复的备选测试用例。
根据本公开的一个或多个实施例,所述初筛单元在对各备选测试用例进行初步筛选时,用于:
确定各备选测试用例对应的服务端版本;
对于旧版本的第一类备选测试用例,获取各第一类备选测试用例的时效和/或各第一类备选测试用例在当前版本的服务端中执行时的执行结果,筛除时效已过和/或执行失败的第一类备选测试用例;和/或
对于当前版本的第二类备选测试用例,获取各第二类备选测试用例在当前版本的服务端中执行时的执行结果,筛除执行失败的第二类备选测试用例。
根据本公开的一个或多个实施例,所述初筛单元在对各备选测试用例进行初步筛选时,用于:
获取任意两个备选测试用例之间的相似度和/或离散度;
根据相似度和/或离散度对各备选测试用例进行筛选。
根据本公开的一个或多个实施例,所述初筛单元在对各备选测试用例进行初步筛选时,用于:
按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例,其中,服务端版本越新的备选测试用例所占比例越大。
根据本公开的一个或多个实施例,所述初筛单元在按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例时,用于:
按照预设比例多次从不同服务端版本的备选测试用例中筛选备选测试用例,得到不同的备选测试用例组合;
将任一种备选测试用例组合中的备选测试用例在当前版本的服务端中执行,获取备选测试用例组合对应的代码覆盖率;
根据各备选测试用例组合对应的代码覆盖率,选择代码覆盖率最大的备选测试用例组合。
根据本公开的一个或多个实施例,所述预设的代码覆盖率指标预测模型是通过如下过程训练得到的:
获取服务端目标接口的多个历史测试用例,将多个历史测试用例划分不同的历史测试用例子集;
将任一历史测试用例子集中的历史测试用例在当前版本的服务端中执行,获取该历史测试用例子集对应的代码覆盖率,并将该历史测试用例子集中的各历史测试用例的词向量以及该历史测试用例子集对应的代码覆盖率,确定为一组训练数据;
根据各训练数据对代码覆盖率指标预测模型的初始模型进行训练,得到所述预设的代码覆盖率指标预测模型。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的测试用例筛选方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的测试用例筛选方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序产品,包括计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的测试用例筛选方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (13)
1.一种测试用例筛选方法,其特征在于,包括:
采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;
对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;
根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中所述测试用例集合各测试用例用于对所述服务端目标接口进行测试。
2.根据权利要求1所述的方法,其特征在于,所述对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标,包括:
将任一备选测试用例的词向量输入到所述代码覆盖率指标预测模型进行处理,得到该备选测试用例的代码覆盖率指标。
3.根据权利要求1或2所述的方法,其特征在于,所述根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,包括:
将备选测试用例的代码覆盖率指标与测试用例集合的代码覆盖率进行比较;
若备选测试用例的代码覆盖率指标高于测试用例集合的代码覆盖率,则确定该备选测试用例为目标测试用例;
若备选测试用例的代码覆盖率指标不高于测试用例集合的代码覆盖率,则确定淘汰该备选测试用例。
4.根据权利要求1所述的方法,其特征在于,所述根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标前,还包括:
对各备选测试用例进行筛选,筛除无效和/或重复的备选测试用例。
5.根据权利要求4所述的方法,其特征在于,所述对各备选测试用例进行初步筛选,包括:
确定各备选测试用例对应的服务端版本;
对于旧版本的第一类备选测试用例,获取各第一类备选测试用例的时效和/或各第一类备选测试用例在当前版本的服务端中执行时的执行结果,筛除时效已过和/或执行失败的第一类备选测试用例;和/或
对于当前版本的第二类备选测试用例,获取各第二类备选测试用例在当前版本的服务端中执行时的执行结果,筛除执行失败的第二类备选测试用例。
6.根据权利要求5所述的方法,其特征在于,所述对各备选测试用例进行初步筛选,包括:
获取任意两个备选测试用例之间的相似度和/或离散度;
根据相似度和/或离散度对各备选测试用例进行筛选。
7.根据权利要求5或6所述的方法,其特征在于,所述对各备选测试用例进行初步筛选,包括:
按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例,其中,服务端版本越新的备选测试用例所占比例越大。
8.根据权利要求7所述的方法,其特征在于,所述按照预设比例从不同服务端版本的备选测试用例中筛选备选测试用例,包括:
按照预设比例多次从不同服务端版本的备选测试用例中筛选备选测试用例,得到不同的备选测试用例组合;
将任一种备选测试用例组合中的备选测试用例在当前版本的服务端中执行,获取备选测试用例组合对应的代码覆盖率;
根据各备选测试用例组合对应的代码覆盖率,选择代码覆盖率最大的备选测试用例组合。
9.根据权利要求2所述的方法,其特征在于,所述预设的代码覆盖率指标预测模型是通过如下过程训练得到的:
获取服务端目标接口的多个历史测试用例,将多个历史测试用例划分不同的历史测试用例子集;
将任一历史测试用例子集中的历史测试用例在当前版本的服务端中执行,获取该历史测试用例子集对应的代码覆盖率,并将该历史测试用例子集中的各历史测试用例的词向量以及该历史测试用例子集对应的代码覆盖率,确定为一组训练数据;
根据各训练数据对代码覆盖率指标预测模型的初始模型进行训练,得到所述预设的代码覆盖率指标预测模型。
10.一种测试用例筛选设备,其特征在于,包括:
采集单元,用于采集服务端目标接口的多个服务请求,将各服务请求确定为备选测试用例;
预测单元,用于对于任一备选测试用例,根据预设的代码覆盖率指标预测模型,获取该备选测试用例的代码覆盖率指标;
判断单元,用于根据代码覆盖率指标判断该备选测试用例是否为目标测试用例,若是,将该备选测试用例加入测试用例集合,其中所述测试用例集合各测试用例用于对所述服务端目标接口进行测试。
11.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-9任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210351872.7A CN116932373A (zh) | 2022-04-02 | 2022-04-02 | 测试用例筛选方法、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210351872.7A CN116932373A (zh) | 2022-04-02 | 2022-04-02 | 测试用例筛选方法、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932373A true CN116932373A (zh) | 2023-10-24 |
Family
ID=88374279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210351872.7A Pending CN116932373A (zh) | 2022-04-02 | 2022-04-02 | 测试用例筛选方法、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932373A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349185A (zh) * | 2023-12-04 | 2024-01-05 | 杭银消费金融股份有限公司 | 一种基于接口强弱依赖分级的系统测试方法 |
-
2022
- 2022-04-02 CN CN202210351872.7A patent/CN116932373A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349185A (zh) * | 2023-12-04 | 2024-01-05 | 杭银消费金融股份有限公司 | 一种基于接口强弱依赖分级的系统测试方法 |
CN117349185B (zh) * | 2023-12-04 | 2024-02-23 | 杭银消费金融股份有限公司 | 一种基于接口强弱依赖分级的系统测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625473B (zh) | 接口测试用例生成方法、装置、存储介质和电子设备 | |
CN110674047A (zh) | 软件测试方法、装置及电子设备 | |
CN117056940B (zh) | 服务器系统漏洞修复方法、装置、电子设备和介质 | |
CN114780338A (zh) | 主机信息处理方法、装置、电子设备和计算机可读介质 | |
CN113392018B (zh) | 流量分发方法、装置、存储介质及电子设备 | |
CN116072108A (zh) | 模型生成方法、语音识别方法、装置、介质及设备 | |
CN116932373A (zh) | 测试用例筛选方法、设备、存储介质及程序产品 | |
CN116225886A (zh) | 测试用例生成方法、装置、设备、存储介质及程序产品 | |
CN112150033A (zh) | 一种快递柜系统管理方法、装置及电子设备 | |
CN117493150A (zh) | 代码质量检测方法、装置、设备、存储介质及程序 | |
CN116149978A (zh) | 服务接口测试方法、装置、电子设备及存储介质 | |
CN117251355A (zh) | 性能测试方法、装置、设备、计算机可读存储介质及产品 | |
CN111582456B (zh) | 用于生成网络模型信息的方法、装置、设备和介质 | |
CN116467178B (zh) | 数据库检测方法、装置、电子设备和计算机可读介质 | |
CN117907809B (zh) | 批量芯片测试方法、装置及电子设备 | |
CN116566034B (zh) | 配电网配电监测系统及方法 | |
CN114399355B (zh) | 基于用户转化率的信息推送方法、装置和电子设备 | |
CN118175056A (zh) | 通信网络数据核查方法、装置、电子设备及存储介质 | |
CN118245356A (zh) | 基于代码覆盖率的流程控制方法及电子设备 | |
CN118051417A (zh) | 一种代码检测方法、装置、电子设备及存储介质 | |
CN116048948A (zh) | 页面测试方法、装置、电子设备及存储介质 | |
CN117707916A (zh) | 代码测试方法、装置、设备、计算机可读存储介质及产品 | |
CN116361143A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN117992324A (zh) | 测试用例生成方法、设备、存储介质及程序产品 | |
CN118677821A (zh) | 一种数据处理方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |