CN117349150A - 一种覆盖率数据处理方法、装置、电子设备及存储介质 - Google Patents
一种覆盖率数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117349150A CN117349150A CN202311235017.0A CN202311235017A CN117349150A CN 117349150 A CN117349150 A CN 117349150A CN 202311235017 A CN202311235017 A CN 202311235017A CN 117349150 A CN117349150 A CN 117349150A
- Authority
- CN
- China
- Prior art keywords
- coverage rate
- coverage
- file
- data
- target
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 117
- 230000010354 integration Effects 0.000 claims abstract description 31
- 238000010276 construction Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000012360 testing method Methods 0.000 claims description 63
- 238000013507 mapping Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000000007 visual effect Effects 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/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种覆盖率数据处理方法、装置、电子设备及存储介质;方法包括:接收覆盖率获取请求,覆盖率获取请求携带请求类型和被测系统的目标版本号,请求类型包括更新请求和构建请求;响应于覆盖率请求,构建与目标版本号对应的第一覆盖率数据;在请求类型为构建请求的情况下,确定第一覆盖率数据为第一目标覆盖率数据;在请求类型为更新请求的情况下,对第一覆盖率数据和设定版本对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,设定版本号为目标版号对应的上一版本的版本号。如此,本申请实施例针对不同的请求类型能够对第一覆盖率数据进行不同的处理,且在更新请求时,充分考虑到了上一版本的第二覆盖率数据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种覆盖率数据处理方法、装置、电子设备及存储介质。
背景技术
目前,在对被测系统测试时,采用覆盖率统计工具获取被测系统的覆盖率数据,在测试完成后需要对某些代码进行修改时,覆盖率统计工具会将代码未修改之前测试得到的覆盖率数据删除,将代码修改后的覆盖率数据重置为零。上述方式未充分考虑到代码修改前的覆盖率数据中未受代码修改影响的部分覆盖率数据,提供的覆盖率数据准确率较低,且由于未被影响到的部分覆盖率也被重置为零,后续测试时还需要通过对这部分覆盖率数据对应的代码进行再次重复测试,导致后续的测试效率较低。
发明内容
本申请实施例提供了一种覆盖率数据处理方法、装置、电子设备及存储介质。
根据本申请的第一方面,提供了一种覆盖率数据处理方法,该方法包括:接收覆盖率获取请求,所述覆盖率获取请求携带请求类型和被测系统的目标版本号,所述请求类型包括更新请求和构建请求;响应于所述覆盖率请求,构建与所述目标版本号对应的第一覆盖率数据;在所述请求类型为构建请求的情况下,确定所述第一覆盖率数据为第一目标覆盖率数据;在所述请求类型为更新请求的情况下,对所述第一覆盖率数据和设定版本号对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,所述设定版本号为所述目标版号对应的上一版本的版本号。
根据本申请一实施方式,所述对所述第一覆盖率数据和设定版本号对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,包括:将所述第一覆盖率数据和所述第二覆盖率数据进行比对,得到比对结果;根据比对结果,对所述第一覆盖率数据和所述第二覆盖率数据进行数据整合,得到第二目标覆盖率数据。
根据本申请一实施方式,所述第一覆盖率数据包括所述被测系统的第一覆盖率文件和第一代码文件,所述第一代码文件包括所述被测系统的多个第一测试分支对应的多个第一分支代码文件,所述第一覆盖率文件包括与每个第一分支代码文件对应的第一分支覆盖率文件,每个第一分支覆盖率文件用于示出对应的第一分支代码文件的第一覆盖率信息;所述第二覆盖率数据包括所述被测系统的第二覆盖率文件和第二代码文件,所述第二代码文件包括所述被测系统的多个第二测试分支对应的多个第二分支代码文件,所述第二覆盖率文件包括与每个第二分支代码文件对应的第二分支覆盖率文件,每个第二分支覆盖率文件用于示出对应的第二分支代码文件的第二覆盖率信息。
根据本申请一实施方式,将所述第一覆盖率数据和所述第二覆盖率数据进行比对,得到比对结果,包括:将所述第一代码文件和所述第二代码文件进行比对,得到第一比对结果,所述比对结果用于示出所述第一代码文件和所述第二代码文件之间的第一增量代码;从所述多个第二分支代码文件中确定与所述第一增量代码对应的目标分支代码文件;从多个第二分支覆盖率文件中获取与所述目标分支代码文件对应的目标分支覆盖率文件;其中,所述比对结果包括所述目标分支覆盖率文件。
根据本申请一实施方式,根据比对结果,对所述第一覆盖率数据和所述第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,包括:将所述第二覆盖率文件中的目标分支覆盖率文件示出的目标覆盖率信息更新为设定覆盖情况,得到更新后的第一更新覆盖率文件;将所述第一更新覆盖率文件映射到所述第一覆盖率数据中的所述第一覆盖率文件中,得到所述第二目标覆盖率数据。
根据本申请一实施方式,每个第一分支代码文件包括多个第一方法对应的多个第一代码,与每个第一分支代码文件对应的第一分支覆盖率文件包括所述第一分支代码文件中的每个所述第一方法的方法覆盖率信息;每个第二分支代码文件包括多个方法对应的第二代码,与每个第二分支代码文件对应的第二分支覆盖率文件包括所述第二分支代码文件中的每个所述第二方法的方法覆盖率信息;相应的,所述将所述第一覆盖率数据和所述第二覆盖率数据进行比对,得到比对结果,包括:将所述第一代码文件中的多个第一代码与所述第二代码文件中的多个第二代码进行比对,得到第二增量代码;确定所述第二增量代码对应的目标方法;其中,所述比对结果包括所述目标方法。
根据本申请一实施方式,根据比对结果,对所述第一覆盖率数据和所述第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,包括:将所述第二覆盖率文件中的目标方法的方法覆盖率信息更新为设定覆盖率情况,得到更新后的第二更新覆盖率文件;将所述第二更新覆盖率文件映射到所述第一覆盖率数据中的所述第一覆盖率文件中,得到所述第二目标覆盖率数据。
根据本申请的第二方面,提供了一种覆盖率数据处理装置,该装置包括:接收模块,用于接收覆盖率获取请求,所述覆盖率获取请求携带请求类型和被测系统的目标版本号,所述请求类型包括更新请求和构建请求;获取模块,用于响应于所述覆盖率请求,构建与所述目标版本号对应的第一覆盖率数据;第一确定模块,用于在所述请求类型为构建请求的情况下,确定所述第一覆盖率数据为第一目标覆盖率数据;整合模块,用于在所述请求类型为更新请求的情况下,对所述第一覆盖率数据和设定版本号对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据。
根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请所述的方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请所述的方法。
本申请实施例的方法,本申请提供了一种覆盖率数据处理方法、装置、电子设备及存储介质;方法包括:接收覆盖率获取请求,覆盖率获取请求携带请求类型和被测系统的目标版本号,请求类型包括更新请求和构建请求;响应于覆盖率请求,获取与目标版本号对应的第一目标覆盖率数据;在请求类型为构建请求的情况下,确定第一覆盖率数据为第一目标覆盖率数据;在请求类型为更新请求的情况下,对第一覆盖率数据和设定版本对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,设定版本号为目标版号对应的上一版本的版本号。如此,本申请实施例针对不同的请求类型能够对第一覆盖率数据进行不同的处理,且在更新请求时,充分考虑到了上一版本的第二覆盖率数据,提高了第二目标覆盖率数据确定的准确率,为后续测试时测试效率的提升提供了更好的辅助。
需要理解的是,本申请的教导并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本申请的其他实施方式还能够实现上面未提到的有益效果。
附图说明
通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了本申请实施例提供的覆盖率数据处理方法的实现流程示意图;
图2示出了本申请实施例提供的覆盖率数据处理方法的对比操作的实现流程示意图一;
图3示出了本申请实施例提供的覆盖率数据处理方法的数据整合操作的实现流程示意图一;
图4示出了本申请实施例提供的覆盖率数据处理方法的对比操作的实现流程示意图二;
图5示出了本申请实施例提供的覆盖率数据处理方法的数据整合操作的实现流程示意图二;
图6示出了本申请实施例提供的覆盖率数据处理装置的组成结构示意图;
图7示出了本申请实施例提供的电子设备的组成结构示意图。
具体实施方式
为使本申请的目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出了本申请实施例提供的覆盖率数据处理方法的实现流程示意图。
参考图1,本申请实施例提供了一种覆盖率数据处理方法,该方法包括:操作101,接收覆盖率获取请求,覆盖率获取请求携带请求类型和被测系统的目标版本号,请求类型包括更新请求和构建请求;操作102,响应于覆盖率请求,获取与目标版本号对应的第一目标覆盖率数据;操作103,在请求类型为构建请求的情况下,确定第一覆盖率数据为第一目标覆盖率数据;操作104,在请求类型为更新请求的情况下,对第一覆盖率数据和设定版本对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,设定版本号为目标版号对应的上一版本的版本号。
在操作101中,接收覆盖率获取请求,覆盖率获取请求携带请求类型和被测系统的目标版本号,请求类型包括更新请求和构建请求。
具体的,本申请实施例提供的覆盖率数据处理方法应用于覆盖率统计工具,其中,覆盖率统计工具可以为Jacoco(Java Code Coverage,一种获取Java代码执行覆盖率的工具)。
进一步的,覆盖率统计工具提供覆盖率获取功能,在需要构建覆盖率或更新覆盖率时,可以通过覆盖率统计工具获取重新构建或更新覆盖率。
在本申请一实施方式中,请求类型为请求参数,请求参数为接口参数,构建请求和更新请求所对应的请求参数不同。其中,针对构建请求和更新请求,覆盖率统计工具可以被提前设置不同接口,以通过接口的不同区分更新请求和构建请求。覆盖率统计工具还可以被提前设置针对更新请求和构建请求统一使用相同接口,并提前为更新请求和构建请求配置接口的不同参数,以进行更新请求和构建请求的区分。
具体的,不同的接口对应不同的接口参数,相同的接口可以被配置不同的接口参数,由此,针对更新请求和构建请求可以配置不同的请求参数。在向覆盖率统计工具发送覆盖率请求时,覆盖率请求携带请求参数,请求参数即表示相应的请求类型。
在本申请这一实施方式中,覆盖率获取请求还包括被测系统的目标版本号,目标版本号即当前需要测试但还未测试的被测系统的版本号。其中,目标版本号在开发人员将被测系统的代码提交到代码仓库时,由代码仓库生成。
具体的,在对被测系统进行测试前,首先需要在代码仓库提交针对被测系统测试时需要使用的代码,代码仓库针对每次的代码提交生成一个版本号。
进一步的,在向覆盖率统计工具发送获取请求时,同步发送需要获取覆盖率的被测系统的目标版本号。由此,在覆盖率统计工具接收覆盖率获取请求时同步接收覆盖率获取请求携带的目标版本号。
在本申请一实施方式中,发送覆盖率获取请求的可以为测试终端,测试终端提供测试功能,测试终端可以在接收到测试人员或其他人员的指令时,发送覆盖率获取请求至覆盖率统计工具以调用覆盖率测试工具进行覆盖率的获取。也可以为测试终端在测试过程中每隔设定时段需要更新覆盖率时调用覆盖率统计工具获取,还可以是在某次测试完成后修改代码BUG后需要再次测试之前获取覆盖率作为参考时进行调用。需要说明的是,本申请对发送覆盖率获取请求的原因以及时间不作限定,上述仅是示例性说明,只要是能够对覆盖率统计工具发起覆盖率请求的方式均属于本申请的保护范围。
在操作102中,响应于覆盖率请求,构建与目标版本号对应的第一覆盖率数据。
具体的,覆盖率统计工具在接收到请求后,可以重新构建与目标版本号对应的第一覆盖率数据。
在本申请一实施方式中,覆盖率统计工具根据目标版本号,从代码仓库拉取目标版本号对应的代码文件,并生成与代码文件对应的覆盖率文件。其中,覆盖率文件可以包括代码的相关信息,例如,修改情况和覆盖信息,覆盖率文件和代码文件组成了第一覆盖率数据。
在本申请一实施方式中,由于覆盖率统计工具在接收到构建请求或是更新请求时均未在测试过程中,且修改后的代码还未进入测试阶段,因此,覆盖率文件示出的覆盖率信息均为未覆盖。
在本申请一实施方式中,覆盖率文件可以从分支、行、方法(或称函数)、用例等维度对代码文件中的代码的覆盖率进行记录。
具体的,被测系统在测试时可以为对多个测试分支进行测试,并获取分支维度的覆盖率情况,也可以是对被测系统的每行代码均记录覆盖率情况,还可以是对每个测试分支包括的多个方法或每个方法中的多个用例的覆盖率情况进行记录。
在操作103,在请求类型为构建请求的情况下,确定第一覆盖率数据为第一目标覆盖率数据。
具体的,由于需要重新构建覆盖率的情况,基本为之前测试得到的覆盖率数据已完全不适用于修改后的测试,无参考价值。由此,在覆盖率获取请求为构建请求的情况下,无需在获取上一版的覆盖率数据作为参考,可以直接确定重新构建的第一覆盖率数据为修改代码后测试开始前的第一目标覆盖率数据,即待测试的代码均为未覆盖,相当于覆盖率重置。
在本申请这一实施方式中,在确定第一覆盖率数据为第一目标覆盖率数据时,便是确定上一版的覆盖率数据对本次的第一目标覆盖率数据没有参考价值,因此,在确定为构建请求时,还删除覆盖率统计工具自身保存的设定版本号对应的第二覆盖率数据。其中,设定版本号为目标版本号对应的上一版的版本号,即本次接收覆盖率获取请求前的最后一次测试对应的版本号,第二覆盖率数据为接收覆盖率获取请求前的最后一次测试得到的覆盖率数据。
在操作104中,在请求类型为更新请求的情况下,对第一覆盖率数据和设定版本号对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,设定版本号为目标版号对应的上一版本的版本号。
具体的,在请求类型为更新请求时,确定本次需要获取到的覆盖率数据可以参考上一次测试时的覆盖率数据进行确定。
进一步的,在确定请求为更新请求时,覆盖率统计工具确定本次覆盖率数据的获取需要参考上一版的第二覆盖率数据。由此,覆盖率统计工具在请求类型为更新请求时,保留自身保存的上一版的第二覆盖率数据,并将第二覆盖率数据和重新构建的第一覆盖率数据进行数据整合,以得到第二目标覆盖率数据。
在本申请一实施方式中,对第一覆盖率数据和设定版本号对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,包括:将第一覆盖率数据和第二覆盖率数据进行比对,得到比对结果;根据比对结果,对第一覆盖率数据和第二覆盖率数据进行数据整合,得到第二目标覆盖率数据。
具体的,第一覆盖率数据和第二覆盖率数据均包括对应的代码文件和覆盖率文件,可以将两个数据进行比对,得到比对结果。之后根据比对结果,对两个数据进行数据整合,得到第二目标覆盖率数据。
在本申请一实施方式中,可以是将第一覆盖率数据和第二覆盖率数据的代码文件进行比对获取增量代码,根据增量代码将第一覆盖率数据和第二覆盖率数据进行数据整合,即重置第二覆盖率数据中增量代码对应的覆盖率情况为未覆盖,之后将修改后的第二覆盖率数据映射到第一覆盖率数据,得到第二目标覆盖率数据。其中,在将第二覆盖率数据映射到第一覆盖率数据时,代码文件不作映射,只从第二覆盖率数据的覆盖率文件中映射对应的覆盖率情况。
由此,本申请实施例,针对不同的请求类型能够对第一覆盖率数据进行不同的处理,且在更新请求时,充分考虑到了上一版本的第二覆盖率数据,提高了第二目标覆盖率数据确定的准确率,为后续测试时测试效率的提升提供了更好的辅助。
图2示出了本申请实施例提供的覆盖率数据处理方法的对比操作的实现流程示意图一。
参考图2,将第一覆盖率数据和第二覆盖率数据进行比对,得到比对结果,包括:操作201,将第一代码文件和第二代码文件进行比对,得到第一比对结果,比对结果用于示出第一代码文件和第二代码文件之间的第一增量代码;操作202,从多个第二分支代码文件中确定与第一增量代码对应的目标分支代码文件;操作203,从多个第二分支覆盖率文件中获取与目标分支代码文件对应的目标分支覆盖率文件;其中,比对结果包括目标分支覆盖率文件。
在操作201中,将第一代码文件和第二代码文件进行比对,得到第一比对结果,比对结果用于示出第一代码文件和第二代码文件之间的第一增量代码。
在本申请一实施方式中,第一覆盖率数据包括被测系统的第一覆盖率文件和第一代码文件,第一代码文件包括被测系统的多个第一测试分支对应的多个第一分支代码文件,第一覆盖率文件包括与每个第一分支代码文件对应的第一分支覆盖率文件,每个第一分支覆盖率文件用于示出对应的第一分支代码文件的第一覆盖率信息;第二覆盖率数据包括被测系统的第二覆盖率文件和第二代码文件,第二代码文件包括被测系统的多个第二测试分支对应的多个第二分支代码文件,第二覆盖率文件包括与每个第二分支代码文件对应的第二分支覆盖率文件,每个第二分支覆盖率文件用于示出对应的第二分支代码文件的第二覆盖率信息。
具体的,在覆盖率以分支维度进行记录时,第一覆盖率数据和第二覆盖率数据均包括对应的代码文件和覆盖率文件,即,第一覆盖率数据和第二覆盖率数据均包括不同版本号下的多个测试分支对应的多个分支代码文件,每个测试分支对应一个分支代码文件,且每个分支代码文件又对应有用于示出覆盖率信息的分支覆盖率文件。
具体的,将多个第一代码文件和多个第二代码文件进行比对,可以得到相对于第二代码文件,第一代码文件中修改的代码,即第一增量代码。
在操作202中,从多个第二分支代码文件中确定与第一增量代码对应的目标分支代码文件。
具体的,确定出第一增量代码后,可以确定第一增量代码属于对哪个第二分支代码文件进行了修改,每个测试分支对应一个分支代码文件,在覆盖率只考虑到分支维度时,确定出变化的分支代码文件即可。
进一步的,确定出增量代码所属的第二分支代码文件后,确定该第二分支代码文件为目标分支代码文件。
在操作203中,从多个第二分支覆盖率文件中获取与目标分支代码文件对应的目标分支覆盖率文件;其中,比对结果包括目标分支覆盖率文件。
具体的,覆盖率从分支维度进行分析时,可以通过目标代码文件获取到与其对应的目标分支覆盖率文件,即比对结果。其中,目标分支覆盖率文件记录着目标分支代码文件的覆盖率情况。
在本申请一实施方式中,目标分支代码文件包括多行代码,多行代码组成多个方法的代码,每个方法的代码又可能由多个用例的代码组成。分支覆盖率文件中可以记录有该分支代码文件的总覆盖率情况、每个方法对应的覆盖率情况或每个用例对应覆盖率情况。
由此,本申请实施例通过保留第二覆盖率数据,并将第二覆盖率数据中的改动的分支代码文件确定出,便能确定出覆盖率需要变化的目标分支覆盖率文件,后续只需测试出这一个目标分支覆盖率文件记录的覆盖率情况即可,避免了之前对所有分支覆盖率文件重置导致后续测试效率低的问题。
图3示出了本申请实施例提供的覆盖率数据处理方法的数据整合操作的实现流程示意图一。
参考图3,基于图2的描述,对第一覆盖率数据和第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,包括:操作301,将第二覆盖率文件中的目标分支覆盖率文件示出的目标覆盖率信息更新为设定覆盖情况,得到更新后的第一更新覆盖率文件;操作302,将第一更新覆盖率文件映射到第一覆盖率数据中的第一覆盖率文件中,得到第二目标覆盖率数据。
在操作301中,将第二覆盖率文件中的目标分支覆盖率文件示出的目标覆盖率信息更新为设定覆盖情况,得到更新后的第一更新覆盖率文件。
具体的,确定出目标分支覆盖率文件后,将第二覆盖率文件中的目标分支覆盖率文件中的覆盖率情况修改为设定覆盖率情况,即可得到更新后的第二覆盖率文件,即第一更新覆盖率文件。其中,设定覆盖率情况为未覆盖,即覆盖率为零。
在操作302中,将第一更新覆盖率文件映射到第一覆盖率数据中的第一覆盖率文件中,得到第二目标覆盖率数据。
具体的,第一覆盖率数据包括多个分支覆盖率文件和对应的分支代码文件,将第一更新覆盖率文件对应映射到多个第一分支覆盖率文件上即可。
在本申请一实施方式中,每个分支覆盖率文件均对应有分支名,第一更新覆盖率文件即为将第二覆盖率文件中的目标分支覆盖率文件修改后得到的文件,包括多个未更新的第二分支覆盖率文件以及更新的目标分支覆盖率文件,按照分支名,将第一更新覆盖率文件中的多个未更新的第二分支覆盖率文件以及更新的目标分支覆盖率文件一一映射到第一覆盖率文件中对应分支名的第一分支覆盖率文件上即可完成映射,得到第二目标覆盖率数据。
由此,本申请实施例通过确定出相对于之前的测试需要变动的目标分支覆盖率文件,将目标分支覆盖率中的目标覆盖率情况重置即可,其他的未更新的第二分支覆盖率文件均可直接作为本次覆盖率数据的相关测试分支的分支覆盖率文件,在后续测试时不再需要重复测试这些测试分支,为后续测试的测试效率提升提供了更好的辅助。
图4示出了本申请实施例提供的覆盖率数据处理方法的对比操作的实现流程示意图二。
参考图4,将第一覆盖率数据和第二覆盖率数据进行比对,得到比对结果,包括:操作401,将第一代码文件中的多个第一代码与第二代码文件中的多个第二代码进行比对,得到第二增量代码;操作402,确定第二增量代码对应的目标方法;其中,比对结果包括目标方法。
在操作401中,将第一代码文件中的多个第一代码与第二代码文件中的多个第二代码进行比对,得到第二增量代码。
在本申请一实施方式中,基于上述操作201中关于第一覆盖率数据和第二覆盖率数据的描述,每个第一分支代码文件包括多个第一方法对应的多个第一代码,与每个第一分支代码文件对应的第一分支覆盖率文件包括第一分支代码文件中的每个第一方法的方法覆盖率信息;每个第二分支代码文件包括多个方法对应的第二代码,与每个第二分支代码文件对应的第二分支覆盖率文件包括第二分支代码文件中的每个第二方法的方法覆盖率信息。
具体的,覆盖率也可以以方法维度进行记录,每个测试分支中对应多个方法,由此,每个分支代码文件包括多个方法对应的代码,且每个方法对应的代码又有对应的方法覆盖率信息。
进一步的,将第一代码文件中的多个第一代码与第二代码文件中的多个第二代码进行比对,即可得到哪个第一代码相对于其对应的第二代码是被修改过的,确定为第二增量代码。其中,每个方法对应一个方法名,第一代码和其对应方法名的第二代码为方法在被测系统不同版本时的代码,即不同版本号下的代码。
在操作402中,确定第二增量代码对应的目标方法;其中,比对结果包括目标方法。
具体的,确定出第二增量代码属于对哪个第二代码修改后得到的,确定该第二代码对应的方法为目标方法即可,其中,比对结果包括目标方法。
由此,本申请实施例在方法维度确定出变化的目标方法,之后在进行测试时,进行目标方法的测试即可,避免了对所有未变化的方法进行重复测试的操作,为后续测试的测试效率提升提供了有效的辅助作用。
图5示出了本申请实施例提供的覆盖率数据处理方法的数据整合操作的实现流程示意图二。
参考图5,基于上述图4的描述,根据比对结果,对第一覆盖率数据和第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,包括:操作501,将第二覆盖率文件中的目标方法的方法覆盖率信息更新为设定覆盖率情况,得到更新后的第二更新覆盖率文件;操作502,将第二更新覆盖率文件映射到第一覆盖率数据中的第一覆盖率文件中,得到第二目标覆盖率数据。
在操作501中,将第二覆盖率文件中的目标方法的方法覆盖率信息更新为设定覆盖率情况,得到更新后的第二更新覆盖率文件。
具体的,经第二覆盖率文件中的目标方法的方法覆盖率信息更新为设定覆盖率情况,即可得到更新后的第二更新覆盖率文件。其中,设定覆盖率情况可以表示为未覆盖,即覆盖率为零。
在操作502中,将第二更新覆盖率文件映射到第一覆盖率数据中的第一覆盖率文件中,得到第二目标覆盖率数据。
具体的,根据方法名,将第二更新覆盖率文件中的多个方法的方法覆盖率情况映射至第二覆盖率文件里的对应方法名对应的方法覆盖率情况即可。
由此,本申请实施例通过确定出相对于之前的测试需要变动的目标方法,将目标方法的方法覆盖率情况重置即可,其他的未更新方法的方法覆盖率情况均可直接作为本次覆盖率数据的相关方法的方法覆盖率情况,在后续测试时不再需要重复测试这些方法,为后续测试的测试效率提升提供了更好的辅助。
在本申请一实施方式中,在确定出目标覆盖率数据后,还根据目标覆盖率数据生成目标覆盖率报告,并对目标覆盖率报告进行展示。
具体的,目标覆盖率数据中包括目标覆盖率文件,目标覆盖率文件可以以分支、代码行、方法、用例等维度记录着覆盖率情况,将目标覆盖率文件中覆盖的情况对应的以分支、代码行、方法或用例等维度生成目标覆盖率报告即可。
举例说明,以分支维度举例说明,目标覆盖率文件中包括多个分支对应的分支覆盖率文件,每个分支覆盖率文件示出分支对应的覆盖率情况,例如,具体的覆盖率数值,或未覆盖、全覆盖、半覆盖等。按照分支对应的分支名对多个分支的覆盖率情况汇总,即得到目标覆盖率报告。
进一步的,在生成目标覆盖率报告后,还将目标覆盖率报告展示,以提供给测试人员,协助测试人员确定还需测试的分支、具体的代码行、方法等。
为进一步理解本方案,下面以本申请实施例一具体应用示例来进行说明。
本申请这一具体应用实例的覆盖率统计工具为jacoco,本申请实施例这一具体应用实例包括:
S1,接收覆盖率点击指令。
具体的,测试人员需要获取覆盖率时,可以点击jacoco工具提供的覆盖率点击按钮,以发送覆盖率点击指令。
S2,确定点击的类型。
具体的,覆盖率点击可以分为构建和更新,可以通过点击接口参数确定点击的类型。
S3,在点击类型为构建的情况下,执行S5-S7。
具体的,在构建时,重新构建覆盖率相关文件即可,具体步骤为S5-S7。
S4,在点击类型为更新的情况下,执行S8-S9。
具体的,在更新时,需要参考之前的覆盖率相关文件,具体步骤为S8-S9。
S5,清理被测系统文件名为的当前分支加环境的文件夹下的内容。
具体的,一般对被测系统的修改为针对某个分支的修改,由此,针对修改的分支和环境对应的文件夹,需要彻底清除。
S6,获取当前commid,并创建名为commid的文件夹,commid的文件夹包括jacoco.exec、class文件、代码文件。
具体的,jacoco工具将把本地各个分支的jacoco.exec清理完,重新拉取被测系统的各个模块的jacoco.exec、代码文件,并存在名为当前commitid(版本标识)的文件夹下面。其中,版本标识为代码仓库在接收到被测系统的代码时生成。
进一步的,jacoco工具通过调用maven工具获取class文件,class文件为maven工具对代码文件进行打包得到的,jacoco.exec为jacoco工具针对每个分支生成的覆盖率文件。
其中,jacoco.exec文件可以被看作一个txt,里面记录了分支下每个文件已经覆盖的行号(展示颜色为绿色),半覆盖的行号(展示颜色是黄色),未覆盖的行号(展示为红色),总的修改行数。例如,文件1:[[2,3],[5],[4,6,7,8,9,10],9]表示文件1下面一共修改了9行代码,其中,2,3行代码已经覆盖了,第5行代码是判断语句部分覆盖(只有一个判断条件覆盖),第4,6,7,8,9,10未覆盖。
S7,根据commid的文件夹生成覆盖率报告。
具体的,合并所有分支的jacoco.exec生成覆盖率报告。
S8,获取当前commid,并创建名为commid的文件夹,当前commid的文件夹包括jacoco.exec、class文件、代码文件;并拉取更新前的commid的文件夹,包括jacoco.exec、class文件、代码文件。
具体的,如果是更新,不进行清理动作,获取当前分支commid并创建文件夹,拉取被测系统的各个分支的jacoco.exec、代码文件和上一个commitid文件夹下面的jacoco.exec、代码文件。
S9、将更新前commid的文件夹和当前的commid的文件夹进行比对,确定出增量覆盖率,根据增量覆盖率生成覆盖率报告。
具体的,拉取被测系统当前各个分支的jacoco.exec、代码文件和上一个commitid文件夹下面的jacoco.exec、代码文件进行对比,获取本次代码修改后变动的文件,然后通过该文件对应的jacoco.exec获取到改动的代码行数,与上次的代码行数进行对比,精确到方法级。如果改动的在方法内,则该方法的覆盖率重置,否则不重置,然后再合并最后处理过的jacoco.exec,生成覆盖率报告。其中,增量覆盖率为改动的方法的覆盖率。
如此,本申请实施例避免了由于没有选择是否删除之前的jacoco.exec文件的功能导致之前的jacoco.exec文件均被删除的情况,通过新增新的指令来区分是清除还是合并,解决了重新部署覆盖率就重置为零的问题,使得在测试阶段能有效和精确的掌控代码调整、bug修改带来的影响范围,为掌控进度提供数据支撑;同时当在回归阶段(即构建)也可以将覆盖率重置为零,让回归的测试进度和质量能很好在覆盖率上展示,保障的测试全面性和质量。
需要说明的是,本申请实施例这一具体应用示例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。
图6示出了本申请实施例提供的覆盖率数据处理装置的组成结构示意图。
参考图6,基于上述覆盖率数据处理方法,本申请实施例还提供了一种覆盖率数据处理装置,该装置包括:接收模块601,用于接收覆盖率获取请求,覆盖率获取请求携带请求类型和被测系统的目标版本号,请求类型包括更新请求和构建请求;获取模块602,用于响应于覆盖率请求,构建与目标版本号对应的第一覆盖率数据;第一确定模块603,用于在请求类型为构建请求的情况下,确定第一覆盖率数据为第一目标覆盖率数据;整合模块604,用于在请求类型为更新请求的情况下,对第一覆盖率数据和设定版本号对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据。
在本申请一实施方式中,整合模块604包括:比对子模块,用于将第一覆盖率数据和第二覆盖率数据进行比对,得到比对结果;整合子模块,用于根据比对结果,对第一覆盖率数据和第二覆盖率数据进行数据整合,得到第二目标覆盖率数据。
在本申请一实施方式中,比对子模块包括:第一比对单元将第一代码文件和第二代码文件进行比对,得到第一比对结果,比对结果用于示出第一代码文件和第二代码文件之间的第一增量代码;第一确定单元,用于从多个第二分支代码文件中确定与第一增量代码对应的目标分支代码文件;第一获取单元,用于从多个第二分支覆盖率文件中获取与目标分支代码文件对应的目标分支覆盖率文件;其中,比对结果包括目标分支覆盖率文件。
在本申请一实施方式中,整合子模块包括:第一更新单元,用于将第二覆盖率文件中的目标分支覆盖率文件示出的目标覆盖率信息更新为设定覆盖情况,得到更新后的第一更新覆盖率文件;第一映射单元,用于将第一更新覆盖率文件映射到第一覆盖率数据中的第一覆盖率文件中,得到第二目标覆盖率数据。
在本申请一实施方式中,每个第一分支代码文件包括多个第一方法对应的多个第一代码,与每个第一分支代码文件对应的第一分支覆盖率文件包括第一分支代码文件中的每个第一方法的方法覆盖率信息;每个第二分支代码文件包括多个方法对应的第二代码,与每个第二分支代码文件对应的第二分支覆盖率文件包括第二分支代码文件中的每个第二方法的方法覆盖率信息;相应的,比对子模块包括:第二比对单元,用于将第一代码文件中的多个第一代码与第二代码文件中的多个第二代码进行比对,得到第二增量代码;第二确定单元,用于确定第二增量代码对应的目标方法;其中,比对结果包括目标方法。
在本申请一实施方式中,整合子模块包括:第二更新单元,用于将第二覆盖率文件中的目标方法的方法覆盖率信息更新为设定覆盖率情况,得到更新后的第二更新覆盖率文件;第二映射单元,用于将第二更新覆盖率文件映射到第一覆盖率数据中的第一覆盖率文件中,得到第二目标覆盖率数据。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本申请实施例提供的覆盖率数据处理装置中未尽的技术细节,可以根据图1至图5中任一附图的说明而理解。
根据本申请的实施例,本申请还提供了一种电子设备和一种非瞬时计算机可读存储介质。
图7示出了可以用来实施本申请的实施例的示例电子设备70的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,电子设备70包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储电子设备70操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
电子设备70中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许电子设备70通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如覆盖率数据处理方法。例如,在一些实施例中,覆盖率数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到电子设备70上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的覆盖率数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行覆盖率数据处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种覆盖率数据处理方法,其特征在于,所述方法包括:
接收覆盖率获取请求,所述覆盖率获取请求携带请求类型和被测系统的目标版本号,所述请求类型包括更新请求和构建请求;
响应于所述覆盖率请求,构建与所述目标版本号对应的第一覆盖率数据;
在所述请求类型为构建请求的情况下,确定所述第一覆盖率数据为第一目标覆盖率数据;
在所述请求类型为更新请求的情况下,对所述第一覆盖率数据和设定版本号对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,所述设定版本号为所述目标版号对应的上一版本的版本号。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一覆盖率数据和设定版本号对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,包括:
将所述第一覆盖率数据和所述第二覆盖率数据进行比对,得到比对结果;
根据比对结果,对所述第一覆盖率数据和所述第二覆盖率数据进行数据整合,得到第二目标覆盖率数据。
3.根据权利要求2所述的方法,其特征在于,所述第一覆盖率数据包括所述被测系统的第一覆盖率文件和第一代码文件,所述第一代码文件包括所述被测系统的多个第一测试分支对应的多个第一分支代码文件,所述第一覆盖率文件包括与每个第一分支代码文件对应的第一分支覆盖率文件,每个第一分支覆盖率文件用于示出对应的第一分支代码文件的第一覆盖率信息;
所述第二覆盖率数据包括所述被测系统的第二覆盖率文件和第二代码文件,所述第二代码文件包括所述被测系统的多个第二测试分支对应的多个第二分支代码文件,所述第二覆盖率文件包括与每个第二分支代码文件对应的第二分支覆盖率文件,每个第二分支覆盖率文件用于示出对应的第二分支代码文件的第二覆盖率信息。
4.根据权利要求3所述的方法,其特征在于,将所述第一覆盖率数据和所述第二覆盖率数据进行比对,得到比对结果,包括:
将所述第一代码文件和所述第二代码文件进行比对,得到第一比对结果,所述比对结果用于示出所述第一代码文件和所述第二代码文件之间的第一增量代码;
从所述多个第二分支代码文件中确定与所述第一增量代码对应的目标分支代码文件;
从多个第二分支覆盖率文件中获取与所述目标分支代码文件对应的目标分支覆盖率文件;
其中,所述比对结果包括所述目标分支覆盖率文件。
5.根据权利要求4所述的方法,其特征在于,根据比对结果,对所述第一覆盖率数据和所述第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,包括:
将所述第二覆盖率文件中的目标分支覆盖率文件示出的目标覆盖率信息更新为设定覆盖情况,得到更新后的第一更新覆盖率文件;
将所述第一更新覆盖率文件映射到所述第一覆盖率数据中的所述第一覆盖率文件中,得到所述第二目标覆盖率数据。
6.根据权利要求3所述的方法,其特征在于,每个第一分支代码文件包括多个第一方法对应的多个第一代码,与每个第一分支代码文件对应的第一分支覆盖率文件包括所述第一分支代码文件中的每个所述第一方法的方法覆盖率信息;每个第二分支代码文件包括多个方法对应的第二代码,与每个第二分支代码文件对应的第二分支覆盖率文件包括所述第二分支代码文件中的每个所述第二方法的方法覆盖率信息;相应的,
所述将所述第一覆盖率数据和所述第二覆盖率数据进行比对,得到比对结果,包括:
将所述第一代码文件中的多个第一代码与所述第二代码文件中的多个第二代码进行比对,得到第二增量代码;
确定所述第二增量代码对应的目标方法;
其中,所述比对结果包括所述目标方法。
7.根据权利要求6所述的方法,其特征在于,根据比对结果,对所述第一覆盖率数据和所述第二覆盖率数据进行数据整合,得到第二目标覆盖率数据,包括:
将所述第二覆盖率文件中的目标方法的方法覆盖率信息更新为设定覆盖率情况,得到更新后的第二更新覆盖率文件;
将所述第二更新覆盖率文件映射到所述第一覆盖率数据中的所述第一覆盖率文件中,得到所述第二目标覆盖率数据。
8.一种覆盖率数据处理装置,其特征在于,所述装置包括:
接收模块,用于接收覆盖率获取请求,所述覆盖率获取请求携带请求类型和被测系统的目标版本号,所述请求类型包括更新请求和构建请求;
获取模块,用于响应于所述覆盖率请求,构建与所述目标版本号对应的第一覆盖率数据;
第一确定模块,用于在所述请求类型为构建请求的情况下,确定所述第一覆盖率数据为第一目标覆盖率数据;
整合模块,用于在所述请求类型为更新请求的情况下,对所述第一覆盖率数据和设定版本号对应的第二覆盖率数据进行数据整合,得到第二目标覆盖率数据。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311235017.0A CN117349150B (zh) | 2023-09-22 | 2023-09-22 | 一种覆盖率数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311235017.0A CN117349150B (zh) | 2023-09-22 | 2023-09-22 | 一种覆盖率数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117349150A true CN117349150A (zh) | 2024-01-05 |
CN117349150B CN117349150B (zh) | 2024-08-13 |
Family
ID=89358526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311235017.0A Active CN117349150B (zh) | 2023-09-22 | 2023-09-22 | 一种覆盖率数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117349150B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093716A1 (en) * | 2001-11-13 | 2003-05-15 | International Business Machines Corporation | Method and apparatus for collecting persistent coverage data across software versions |
CN106547698A (zh) * | 2016-11-30 | 2017-03-29 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置和服务器 |
CN108519945A (zh) * | 2018-03-21 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 覆盖率测试方法、装置及存储设备 |
CN108959059A (zh) * | 2017-05-19 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种测试方法以及测试平台 |
US10402310B1 (en) * | 2018-03-30 | 2019-09-03 | Atlassian Pty Ltd | Systems and methods for reducing storage required for code coverage results |
CN110532174A (zh) * | 2019-07-24 | 2019-12-03 | 平安科技(深圳)有限公司 | 计算增量代码覆盖率的方法、装置、计算机设备及存储介质 |
CN110727602A (zh) * | 2019-10-23 | 2020-01-24 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置及存储介质 |
CN110908915A (zh) * | 2019-11-27 | 2020-03-24 | 广州品唯软件有限公司 | 一种测试覆盖率的展示方法、装置及计算机系统 |
CN111124894A (zh) * | 2019-12-06 | 2020-05-08 | 广州品唯软件有限公司 | 代码覆盖率的处理方法、装置和计算机设备 |
CN111290943A (zh) * | 2020-01-13 | 2020-06-16 | 北京三快在线科技有限公司 | 代码覆盖率处理方法、装置、服务器及存储介质 |
US10949172B1 (en) * | 2017-11-14 | 2021-03-16 | Amdocs Development Limited | System, method, and computer program for determining incremental code coverage of a software project |
CN114416545A (zh) * | 2022-01-06 | 2022-04-29 | 马上消费金融股份有限公司 | 确定测试代码覆盖率的方法、装置和电子设备 |
CN115757189A (zh) * | 2022-12-21 | 2023-03-07 | 平安银行股份有限公司 | 增量代码覆盖率分析方法及装置 |
CN116107897A (zh) * | 2023-02-17 | 2023-05-12 | 合众人寿保险股份有限公司 | 代码覆盖率统计方法及装置 |
CN116150011A (zh) * | 2023-02-23 | 2023-05-23 | 金拱门(中国)有限公司 | 代码覆盖率数据处理方法、设备、介质和计算机程序产品 |
CN116610551A (zh) * | 2022-02-09 | 2023-08-18 | 广州视臻信息科技有限公司 | 代码覆盖率计算方法、装置、设备和介质 |
CN116701182A (zh) * | 2023-05-10 | 2023-09-05 | 合芯科技有限公司 | 一种覆盖率标记文件更新方法、装置、设备及存储介质 |
-
2023
- 2023-09-22 CN CN202311235017.0A patent/CN117349150B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093716A1 (en) * | 2001-11-13 | 2003-05-15 | International Business Machines Corporation | Method and apparatus for collecting persistent coverage data across software versions |
CN106547698A (zh) * | 2016-11-30 | 2017-03-29 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置和服务器 |
CN108959059A (zh) * | 2017-05-19 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种测试方法以及测试平台 |
US10949172B1 (en) * | 2017-11-14 | 2021-03-16 | Amdocs Development Limited | System, method, and computer program for determining incremental code coverage of a software project |
CN108519945A (zh) * | 2018-03-21 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 覆盖率测试方法、装置及存储设备 |
US10402310B1 (en) * | 2018-03-30 | 2019-09-03 | Atlassian Pty Ltd | Systems and methods for reducing storage required for code coverage results |
CN110532174A (zh) * | 2019-07-24 | 2019-12-03 | 平安科技(深圳)有限公司 | 计算增量代码覆盖率的方法、装置、计算机设备及存储介质 |
CN110727602A (zh) * | 2019-10-23 | 2020-01-24 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置及存储介质 |
CN110908915A (zh) * | 2019-11-27 | 2020-03-24 | 广州品唯软件有限公司 | 一种测试覆盖率的展示方法、装置及计算机系统 |
CN111124894A (zh) * | 2019-12-06 | 2020-05-08 | 广州品唯软件有限公司 | 代码覆盖率的处理方法、装置和计算机设备 |
CN111290943A (zh) * | 2020-01-13 | 2020-06-16 | 北京三快在线科技有限公司 | 代码覆盖率处理方法、装置、服务器及存储介质 |
CN114416545A (zh) * | 2022-01-06 | 2022-04-29 | 马上消费金融股份有限公司 | 确定测试代码覆盖率的方法、装置和电子设备 |
CN116610551A (zh) * | 2022-02-09 | 2023-08-18 | 广州视臻信息科技有限公司 | 代码覆盖率计算方法、装置、设备和介质 |
CN115757189A (zh) * | 2022-12-21 | 2023-03-07 | 平安银行股份有限公司 | 增量代码覆盖率分析方法及装置 |
CN116107897A (zh) * | 2023-02-17 | 2023-05-12 | 合众人寿保险股份有限公司 | 代码覆盖率统计方法及装置 |
CN116150011A (zh) * | 2023-02-23 | 2023-05-23 | 金拱门(中国)有限公司 | 代码覆盖率数据处理方法、设备、介质和计算机程序产品 |
CN116701182A (zh) * | 2023-05-10 | 2023-09-05 | 合芯科技有限公司 | 一种覆盖率标记文件更新方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
PHINEASGUO: "基于业务测试的增量代码覆盖率实现", pages 1, Retrieved from the Internet <URL:https://blog.csdn.net/phineas123/article/details/117784178> * |
林广栋;耿锐;赵香;: "BWDSP软件代码覆盖率统计工具实现方案", 电脑知识与技术, no. 05 * |
牛青;唐宏;赵卫杰;: "RVM验证中的代码覆盖分析及其应用", 电子测试, no. 08, 5 August 2008 (2008-08-05) * |
Also Published As
Publication number | Publication date |
---|---|
CN117349150B (zh) | 2024-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9652220B2 (en) | Zero down-time deployment of new application versions | |
CN112819169B (zh) | 量子控制脉冲生成方法、装置、设备及存储介质 | |
CN111858360B (zh) | 小程序测试方法、装置、设备及存储介质 | |
CN109684188B (zh) | 测试方法和装置 | |
US8311794B2 (en) | Testing executable logic | |
CN111159039A (zh) | 一种服务模拟方法、系统、设备和存储介质 | |
CN114968817A (zh) | 代码改动影响范围的评估方法、装置、设备及存储介质 | |
CN110908899A (zh) | 应用程序的调试方法、移动终端及计算机可读存储介质 | |
CN117349150B (zh) | 一种覆盖率数据处理方法、装置、电子设备及存储介质 | |
CN111538656A (zh) | 梯度检查的监控方法、装置、设备及存储介质 | |
CN115408297A (zh) | 测试方法、装置、设备及介质 | |
CN115658478A (zh) | 测试用例的筛选方法、装置、电子设备及存储介质 | |
CN115062571A (zh) | 应用于集成电路器件的数据区域动态选取方法、系统、设备和计算机可读存储介质 | |
CN114546799A (zh) | 埋点日志校验方法、装置、电子设备、存储介质及产品 | |
US10152466B2 (en) | Comparing user interfaces | |
CN112346994A (zh) | 一种测试信息关联方法、装置、计算机设备及存储介质 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和系统 | |
CN113434382A (zh) | 数据库性能监控方法、装置、电子设备及计算机可读介质 | |
CN113836021B (zh) | 测试方法、装置、电子设备及介质 | |
CN114647578B (zh) | 一种系统测试方法、装置、设备以及存储介质 | |
CN117118879B (zh) | 网络协议漏洞挖掘方法、装置、设备以及存储介质 | |
CN116050529B (zh) | 量子电路图纠错方法、装置、设备、存储介质及程序产品 | |
CN116610582A (zh) | 一种测试范围确定方法、装置、电子设备及介质 | |
CN113836016B (zh) | 写接口存储质量测试方法、系统、电子设备及存储介质 | |
CN111831319B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |