CN113946515A - 代码覆盖率测试方法、装置、计算机设备及存储介质 - Google Patents
代码覆盖率测试方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113946515A CN113946515A CN202111218106.5A CN202111218106A CN113946515A CN 113946515 A CN113946515 A CN 113946515A CN 202111218106 A CN202111218106 A CN 202111218106A CN 113946515 A CN113946515 A CN 113946515A
- Authority
- CN
- China
- Prior art keywords
- code
- version
- line
- coverage rate
- test
- 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 413
- 230000008859 change Effects 0.000 claims abstract description 221
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 52
- 238000012545 processing Methods 0.000 claims description 25
- 238000009825 accumulation Methods 0.000 claims description 11
- 238000011990 functional testing Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001186 cumulative effect Effects 0.000 abstract description 9
- 238000007726 management method Methods 0.000 description 14
- 238000012790 confirmation Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
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
Abstract
本申请实施例提供了一种代码覆盖率测试方法、装置、计算机设备及存储介质,涉及测试技术领域,方法包括:在系统测试阶段,分别对第2版本的代码至第M版本的代码中每个版本的代码中的代码变更行和第一目标代码行执行测试代码变更覆盖率的任务,得到M‑1个第一测试结果以确定第M版本的代码的代码变更覆盖率;在回归测试阶段,分别对每个版本的代码中的代码变更行和第二目标代码行执行测试代码全量覆盖率的任务,得到M‑1个第二测试结果以确定代码全量覆盖率累计值;根据第M版本的代码的代码变更覆盖率和代码全量覆盖率累计值生成代码测试报告文件。采用本申请,可提升代码覆盖率数据的准确度。本申请涉及区块链技术,如将所述的文件写入区块链。
Description
技术领域
本申请涉及测试技术领域,尤其涉及一种代码覆盖率测试方法、装置、计算机设备及存储介质。
背景技术
目前市面上普遍使用一些工具来进行代码覆盖率测试。一般来讲,可以通过查看代码改动行的覆盖率是否100%,来监控改动代码是否全部被执行。在实际应用中,除了在系统测试阶段需要重点关注改动行是否全部被执行,在回归测试阶段也需要适当关注所有代码是否全部被执行。然而,当服务器缓存的服务的代码发生改动时,需要在服务器中重新部署该服务新的代码,此时服务器缓存该服务的代码将会被清空,与此同时服务器存储的代码覆盖率数据也会一并被清空,之前的测试的数据导致代码覆盖率统计的相关指标不符合标准,影响代码覆盖率数据的准确性。
发明内容
本申请实施例提供了一种代码覆盖率测试方法、装置、计算机设备及存储介质,可以提升代码覆盖率数据的准确性。
第一方面,本申请实施例提供了一种代码覆盖率测试方法,包括:
在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果,所述第一测试结果包括代码变更覆盖率;所述M为大于2的整数;所述每个版本的代码包括的所述第一目标代码行,指从所述每个版本的上一版本的代码包括的至少一个代码变更行中确定出的未执行的代码变更行;
对所述M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为所述第M版本的代码的代码变更覆盖率;
在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,所述第二测试结果包括代码全量覆盖率;所述第2版本的代码包括的至少一个第二目标代码行,指从第1版本的代码包括的多个代码行中确定出的未执行的至少一个代码行;所述第2版本之后的各版本的代码包括至少一个第二目标代码行,指从所述各版本的上一版本的代码包括的至少一个代码变更行以及所述各版本的上一版本的代码包括的至少一个第二目标代码行中确定出的未执行的至少一个代码行;
对所述M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值;
根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件。
可选的,所述方法还包括:
根据第M-2个第一测试结果包括的未执行代码变更行的行信息,从所述第M-1版本的代码包括的至少一个代码变更行中确定出未执行的至少一个代码变更行作为所述第M版本的代码包括的至少一个第一目标代码行。
可选的,所述对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,包括:
运行第一测试用例以分别对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第一目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码变更覆盖率,得到M-1个第一测试结果。
可选的,所述方法还包括:
确定所述每个版本的代码包括的所述第一目标代码行对应的功能点;
根据功能点与测试场景的对应关系以及所述第一目标代码行对应的功能点,确定所述第一目标代码行对应的第一测试场景;
当所述第一测试用例覆盖的测试场景集合不包括所述第一测试场景时,确定所述第一测试用例未覆盖到所述第一测试场景。
可选的,所述方法还包括:
根据第M-2个第二测试结果包括的未执行代码行的行信息,从第M-1版本的代码包括的至少一个代码变更行和所述第M-1版本的代码包括的至少一个第二目标代码行中确定出未执行的至少一个代码行,以作为所述第M版本的代码包括的至少一个第二目标行。
可选的,所述对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,包括:
运行第二测试用例以对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码全量覆盖率,得到M-1个第二测试结果。
可选的,所述方法还包括:
确定所述每个版本的代码包括的所述第二目标代码行对应的功能点;
根据功能点与测试场景的对应关系以及所述第二目标代码行对应的功能点,确定所述第二目标代码行对应的第二测试场景;
当所述第二测试用例覆盖的测试场景集合不包括所述第二测试场景时,确定所述第二测试用例未覆盖到所述第二测试场景。
第二方面,本申请实施例提供了一种代码覆盖率测试装置,包括:
测试模块,用于在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果,所述第一测试结果包括代码变更覆盖率;所述M为大于2的整数;所述每个版本的代码包括的所述第一目标代码行,指从所述每个版本的上一版本的代码包括的至少一个代码变更行中确定出的未执行的代码变更行;
处理模块,用于对所述M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为所述第M版本的代码的代码变更覆盖率;
所述测试模块,还用于在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,所述第二测试结果包括代码全量覆盖率;所述第2版本的代码包括的至少一个第二目标代码行,指从第1版本的代码包括的多个代码行中确定出的未执行的至少一个代码行;所述第2版本之后的各版本的代码包括至少一个第二目标代码行,指从所述各版本的上一版本的代码包括的至少一个代码变更行以及所述各版本的上一版本的代码包括的至少一个第二目标代码行中确定出的未执行的至少一个代码行;
所述处理模块,还用于对所述M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值;
所述处理模块,还用于根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件。
第三方面,本申请实施例提供了一种计算机设备,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序指令,所述处理器被配置用于执行所述程序指令,实现如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行如第一方面所述的方法。
综上所述,计算机设备可以在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果;计算机设备对所述M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为所述第M版本的代码的代码变更覆盖率;计算机设备可以在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,所述第二测试结果包括代码全量覆盖率;计算机设备对所述M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值;计算机设备根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件,该过程可以提升代码覆盖率数据的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种代码覆盖率测试方法的流程示意图;
图2是本申请再一实施例提供的一种代码覆盖率测试方法的流程示意图;
图3是本申请实施例提供的一种代码覆盖率测试装置的流程示意图;
图4是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
请参阅图1,为本申请实施例提供的一种代码覆盖率测试方法的流程示意图。该方法可以应用于计算机设备,该计算机设备可以为智能终端或服务器。该方法可以包括以下步骤:
S101、在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果,所述第一测试结果包括代码变更覆盖率。
举例来说,当M为3时,在系统测试阶段,计算机设备可以在第一时间点达到时从代码管理平台获取第2版本的代码,对第2版本的代码包括的至少一个代码变更行执行测试代码变更覆盖率的任务,得到第1个第一测试结果。其中,第2版本的代码包括的至少一个第一目标代码为空。并且,计算机设备可以在第二时间点(在第一时间点之后)到达时,从代码管理平台获取第3版本的代码,对第3版本的代码包括的至少一个代码变更行以及第3版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到第2个第一测试结果。其中,第3版本的代码包括的至少一个第一目标代码行为从第2版本代码包括的至少一个代码变更行确定出的未被执行的至少一个代码变更行。
其中,所述的系统测试,指将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行一系列严格有效的测试,以发现软件潜在的问题,从而保证系统的正常运行。代码管理平台指用于管理代码的平台,该平台可以由独立的服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。目标服务可以包括目标应用程序或目标微服务,等等。其中,M为大于2的整数。每个版本的代码包括的第一目标代码行,指从每个版本的上一版本的代码包括的至少一个代码变更行中确定出的未执行的代码变更行。代码变更行又可以称为变更代码行。其中,每个版本的代码包括的至少一个代码变更行,可以是将该版本的代码与目标版本的代码,如第1版本的代码进行比对后确定出的。在一个实施例中,第2版本的代码,可基于第1版本的代码更新后得到。第M版本的代码,可基于第M-1版本的代码进行更新后得到。或,每个版本的代码可基于目标版本的代码进行更新后得到。其中,代码变更覆盖率指根据对应版本的代码包括的至少一个代码变更行和对应版本的代码包括的至少一个第一目标代码行确定出的已执行的代码变更行的比例。
在一个实施例中,第一测试结果还可以包括未执行代码变更行的行信息,如行号。计算机设备还可以根据第1个第一测试结果包括的未执行代码变更行的行信息,从第2版本的代码包括的至少一个代码变更行中确定出未执行的至少一个代码变更行作为第3版本的代码包括的至少一个第一目标代码行。也就是说,计算机设备可以将第1个第一测试结果包括的未执行代码变更行的行信息对应的至少一个代码行确定为第3版本的代码包括的至少一个第一目标代码行。计算机设备还可以根据第M-1个第一测试结果包括的未执行代码变更行的行信息,从第M-1版本的代码包括的至少一个代码变更行中确定出的未执行的至少一个代码变更行作为第M版本的代码包括的至少一个第二目标代码行。也就是说,计算机设备还可以将第M-1个第一测试结果包括的未执行代码变更行的行信息对应的至少一个代码行作为第M版本的代码包括的至少一个第二目标代码行。
在一个实施例中,计算机设备对第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务的方式可以为计算机设备运行第一测试用例以分别对第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行以及每个版本的代码包括的至少一个第一目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码变更覆盖率,得到M-1个第一测试结果。其中,所述的代码覆盖率统计插件例如可以为jacoco插件。第一测试用例可以为一个或多个。在一个实施例中,当第一测试用例为多个时,多个第一测试用例中每个第一测试用例对应的测试场景不同。
S102、对所述M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为所述第M版本的代码的代码变更覆盖率。
举例来说,当M为3时,计算机设备可以将第1个第一测试结果包括的代码变更覆盖率与第2个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值以作为第3版本的代码的代码变更覆盖率。代码变更覆盖率的累计,使得代码部署时,无需重复执行相应测试用例,便可以达到本次版本的代码覆盖率数据统计的目的。
S103、在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,所述第二测试结果包括代码全量覆盖率。
举例来说,当M为3时,在回归测试阶段,计算机设备可以对第1版本的代码执行测试代码全量覆盖率的任务,并得到测试结果。在得到测试结果后,计算机设备可以对第2版本的代码包括的至少一个代码变更行以及第2版本的代码包括的至少一个第二目标代码行执行测试代码全量覆盖率的任务,得到第1个第二测试结果。其中,第2版本的代码包括的至少一个第2目标代码行,指从第1版本包括的多个代码行中确定出的未执行的至少一个代码行。在得到第1个第二测试结果后,计算机设备可以对第3版本的代码包括的至少一个代码变更行以及第3版本的代码包括的至少一个第二目标代码行执行测试代码全量覆盖率的任务,得到第2个第二测试结果。其中,第3版本的代码包括的至少一个第二目标代码行,指从第2版本代码包括的至少一个代码变更行以及第2版本的代码包括的至少一个第二目标代码行中,确定出的未被执行的至少一个代码变更行。
其中,回归测试,指修改了旧版本的代码后,以新版本的代码重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。由上述示例可以看出,所述第2版本的代码包括的至少一个第二目标代码行,指从第1版本的代码包括的多个代码行中确定出的未执行的至少一个代码行;所述第2版本之后的各版本的代码包括至少一个第二目标代码行,指从所述各版本的上一版本的代码包括的至少一个代码变更行以及所述各版本的上一版本的代码包括的至少一个第二目标代码行中确定出的未执行的至少一个代码行。其中,代码全量覆盖率,指第一版本的代码包括的多个代码行中已执行的代码行的比例,或指根据第2版本及第2版本之后的各版本的代码包括的至少一个代码变更行以及至少一个第二目标代码行确定出的已执行的代码行的比例。
在一个实施例中,第二测试结果还可以包括未执行代码行的行信息。计算机设备可以根据第1个第二测试结果包括的未执行的至少一个代码行的行信息,从第2版本的代码包括的至少一个代码变更行以及第2版本的代码包括的至少一个第二目标代码行确定出未执行的至少一个代码行作为第3版本的代码包括的至少一个第二目标行。也就是说,计算机设备可以将第1个第二测试结果包括的未执行的至少一个代码行的行信息对应的至少一个代码行确定为第3版本的代码包括的至少一个第二目标代码行。相应地,计算机设备还可以根据第M-1个第二测试结果包括的未执行代码行的行信息,从第M-1版本的代码包括的至少一个代码变更行以及第M-1版本的代码包括的至少一个第二目标代码行中确定出未执行的至少一个代码行作为第M版本的代码包括的至少一个第二目标行。也就是说,计算机设备可以将第M-1个第二测试结果包括的未执行的至少一个代码行的行信息对应的至少一个代码行确定为第M版本的代码包括的至少一个第二目标代码行。
在一个实施例中,计算机设备对每个版本的代码包括的至少一个代码变更行以及每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果的方式可以为计算机设备运行第二测试用例以对每个版本的代码包括的至少一个代码变更行以及每个版本的代码包括的至少一个第二目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码全量覆盖率,得到M-1个第二测试结果。在一个实施例中,第二测试用例可以包括系统测试阶段使用的部分第一测试用例和用于对第M版本的代码的所有功能进行测试的测试用例。
S104、对所述M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值。
举例来说,当M为3时,计算机设备可以将第1个第二测试结果包括的代码全量覆盖率与第2个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值以作为第3版本的代码的代码全量覆盖率。代码全量覆盖率的累计,使得代码部署时,无需重复执行相应测试用例,便可以达到本次回归测试阶段代码覆盖率的数据的统计的目的,并可以解决代码部署测试数据丢失情况。
S105、根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件。
也就是说,计算机设备可以根据代码变更覆盖率累计值以及代码全量覆盖率累计值生成代码测试报告文件。在一个实施例中,计算机设备可以根据代码变更覆盖率累计值生成第一测试报告文件,也可以根据代码全量覆盖率累计值生成第二测试文件。系统测试阶段和回归测试阶段单独进行覆盖率统计可详细确定版本需求用例覆盖情况和回归用例覆盖情况。对于测试人员,报告中的数据可用来监测用例覆盖情况,规避一些场景漏测情况,同时也可监控开发人员是否有私自移交代码情况。
可见,图1所示的实施例中,在系统测试阶段,计算机设备可以分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果,第一测试结果包括代码变更覆盖率;计算机设备对M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将代码变更覆盖率累计值确定为第M版本的代码的代码变更覆盖率;在回归测试阶段,计算机设备分别对每个版本的代码包括的至少一个代码变更行以及每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,第二测试结果包括代码全量覆盖率;计算机设备可以对M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值,并根据第M版本的代码的代码变更覆盖率和代码全量覆盖率累计值生成代码测试报告文件,采用该过程,可以最大程度的保证代码覆盖率统计数据的准确性。
请参阅图2,为本申请再一实施例提供的一种代码覆盖率测试方法的流程示意图。该方法可以应用于前述提及的计算机设备中。具体地,该方法可以包括以下步骤:
S201、在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果,所述第一测试结果包括代码变更覆盖率。
S202、对所述M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为所述第M版本的代码的代码变更覆盖率。
S203、在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,所述第二测试结果包括代码全量覆盖率。
S204、对所述M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值。
S205、根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件。
其中,步骤S201-步骤S205可以参见图1实施例中的步骤S101-步骤S105,本申请实施例在此不做赘述。
S206、确定所述每个版本的代码包括的所述第一目标代码行对应的功能点。
S207、根据功能点与测试场景的对应关系以及所述第一目标代码行对应的功能点,确定所述第一目标代码行对应的第一测试场景。
S208、当所述第一测试用例覆盖的测试场景集合不包括所述第一测试场景时,确定所述第一测试用例未覆盖到所述第一测试场景。
在步骤S206-步骤S208中,计算机设备可以确定每个版本的代码包括的第一目标代码行对应的功能点,并根据功能点与测试场景的对应关系以及第一目标代码行对应的功能点,确定第一目标代码行对应的第一测试场景;计算机设备可以当第一测试用例覆盖的测试场景集合不包括第一测试场景时,确定第一测试用例未覆盖到第一测试场景。其中,第一测试场景指第一目标代码行对应的测试场景。在一个实施例中,计算机设备确定每个版本的代码包括的第一目标代码对应的功能点的方式可以为:计算机设备确定每个版本的代码包括的第一目标代码行所在的代码段;计算机设备可以确定每个版本的代码包括的第一目标代码行所在的代码段对应的功能标记信息,并将每个版本的代码包括的第一目标代码行所在的代码段对应的功能标记信息确定为每个版本的代码包括的第一目标代码行对应的功能点。
在一个实施例中,计算机设备还可以确定每个版本的代码包括的第二目标代码行对应的功能点,并根据功能点与测试场景的对应关系以及第二目标代码行对应的功能点,确定第二目标代码行对应的第二测试场景;当第二测试用例覆盖的测试场景集合不包括第二测试场景时,计算机设备可以确定第二测试用例未覆盖到第二测试场景。其中,第二测试场景指的第二目标代码行对应的测试场景。在一个实施例中,计算机设备确定每个版本的代码包括的第二目标代码对应的功能点的方式可以为:计算机设备确定每个版本的代码包括的第二目标代码行所在的代码段;计算机设备可以确定每个版本的代码包括的第二目标代码行所在的代码段对应的功能标记信息,并将每个版本的代码包括的第二目标代码行所在的代码段对应的功能标记信息确定为每个版本的代码包括的第二目标代码行对应的功能点。
在一个实施例中,计算机设备可以判断代码变更覆盖率累计值是否小于第一数值,当代码变更覆盖率累计值小于第一数值时,触发执行所述的确定每个版本的代码包括的第一目标代码行对应的功能点的步骤。在一个实施例中,计算机设备可以判断代码全量覆盖率累计值是否小于第二数值,当代码变更覆盖率累计值小于第二数值时,触发执行所述的确定每个版本的代码包括的第二目标代码行对应的功能点的步骤。如果代码变更覆盖率累计值低以及代码全量覆盖率累计值低,说明还有很多代码未被执行,也就是很多场景未被覆盖,通过确定未覆盖到的测试场景,能够便于测试人员再次进行测试。
在一个实施例中,计算机设备可以获取覆盖到第一测试场景的测试用例,并利用覆盖到第一测试场景的测试用例更新第一测试用例,得到更新后的第一测试用例,后续再执行测试代码变更覆盖率的任务期间可以运行更新后的第一测试用例。相应地,计算机设备还可以获取覆盖到第二测试场景的测试用例,并利用覆盖到第二测试场景的测试用例更新第二测试用例,得到更新后的第二测试用例,后续再执行测试代码变更覆盖率的任务期间可以运行更新后的第二测试用例。在一个实施例中,覆盖到第一测试场景的测试用例用于测试的服务的类型与目标服务的类型一致。覆盖到第二测试场景的测试用例用于测试的服务的类型与目标服务的类型一致。
在一个实施例中,第M-1个测试结果可以包括未执行代码变更行的行信息。计算机设备确定第M-1个测试结果包括的未执行代码变更行的行信息对应的第一代码行集合,第一代码行集合包括该行信息对应的至少一个未执行的代码变更行,从第一代码行集合中筛选出错误代码变更行,将错误代码变更行作为代码生成模型的输入数据,由代码生成模型根据错误代码变更行生成目标数量个虚拟代码变更行以作为可选的正确代码行。在一个实施例中,计算机设备可以从所述可选的正确代码行中选择一个正确代码行用于替换错误代码变更行,后续可以对第M+1版本的代码包括的至少一个代码变更行、选择的正确代码行以及第一数据集合中除错误代码变更行之外的代码行执行测试代码变更覆盖率的任务,得到第M个第一测试结果。此外,计算机设备还可以根据选择的正确代码行等代码行执行测试代码全量覆盖率的任务,得到第M个第二测试结果。
在一个实施例中,计算机设备可以将第一测试用例未覆盖的第一测试场景和/或第二测试用例未覆盖的第二测试场景发送至测试人员对应的用户终端,若接收到测试人员对应的用户终端返回的已针对第一测试场景和/或第二测试场景中的目标测试场景已测试过的确认信息,则发送修改确认消息至开发人员对应的用户终端,以便开发人员对应的用户终端根据修改确认信息确认是否对目标服务的代码进行了修改并未通知给测试人员,计算机设备接收开发人员对应的用户终端返回的确认结果,并将确认结果转发至测试人员对应的用户终端。测试人员表示已经针对相应测试场景测试过,说明还是有代码未被执行,因此可能是由于开发修改了代码未通知给测试,导致修改的代码行未覆盖,因此可以通过开发进行确认来确认代码行未覆盖的原因。
现有技术通过代码覆盖率统计工具统计代码覆盖率时,若存在代码部署行为,则所有的覆盖率数据则会被清空。在系统测试阶段,代码部署是很常见的操作。在系统测试阶段,若无代码改动,已执行的测试用例大概率不会反复执行,一旦有部署行为,测试数据也会被清空,进而无法准确的对部署的代码进行代码覆盖率的分析。即便是在回归测试阶段,虽然可以适当关注所有代码的代码覆盖率,但是若存在代码部署行为,则所有的覆盖率数据会被清空,同样也无法准确的对部署的代码进行代码覆盖率的分析。对于上述造成覆盖率统计的相关指标不符合标准的情况,本申请在系统测试阶段,可以定时从代码管理平台拉取新版本的代码,并确定新版本的代码包括的代码变更行以及第一目标代码行后执行测试代码变更覆盖率任务,执行完成后,自动记录本次的代码变更覆盖率,下次再执行测试代码变更覆盖率任务时,自动累加上次的代码变更覆盖率,这样在最后一次执行测试代码变更覆盖率任务后,便可以得到代码变更覆盖率累计值以作为本次版本代码覆盖率数据统计。在回归测试阶段,代码比较稳定,本申请可以在确定新版本的代码包括的代码变更行以及第二目标代码行后执行测试代码全量覆盖率的任务,自动记录本次的代码全量覆盖率,并在下次再执行测试代码全量变更覆盖率的任务后,自动累加上次的代码全量覆盖率,这样在最后一次执行测试代码全量覆盖率的任务后,便可以得到代码全量覆盖率累计值以作为回归测试阶段的代码覆盖率数据统计。系统测试阶段和回归测试阶段单独进行覆盖率统计可详细确定版本需求用例覆盖情况和回归用例覆盖情况。对于测试人员,两个报告中的数据可用来监测用例覆盖情况,规避一些场景漏测情况,同时也可监控开发人员是否有私自移交代码情况。通过上述方法,可以最大程度的保证代码覆盖率统计数据的准确性,根据覆盖率测试报告需要再次排查是否有遗漏场景,监控测试场景和测试用例的完整性。
本申请涉及区块链技术,如可将代码测试报告文件写入区块链,或者通过区块链网络获取到各个版本的代码,或者通过区块链获取到各个版本的代码的摘要信息,然后根据摘要信息从代码管理平台查询出各个版本的代码。
可见,图2所示的实施例中,计算机设备除了可以根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件外,还可以确定所述每个版本的代码包括的所述第一目标代码行对应的功能点,并根据功能点与测试场景的对应关系以及所述第一目标代码行对应的功能点,确定所述第一目标代码行对应的第一测试场景,从而在所述第一测试用例覆盖的测试场景集合不包括所述第一测试场景时,确定所述第一测试用例未覆盖到所述第一测试场景,采用该过程快速定位导致未执行代码出现的问题所在,能够便于测试人员的再次进行测试工作,进而提升测试效率。
请参阅图3,为本申请实施例提供的一种代码覆盖率测试装置的结构示意图。该装置可以应用于前述提及的计算机设备中。具体地,该装置可以包括:
测试模块301,用于在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果,所述第一测试结果包括代码变更覆盖率;所述M为大于2的整数;所述每个版本的代码包括的所述第一目标代码行,指从所述每个版本的上一版本的代码包括的至少一个代码变更行中确定出的未执行的代码变更行。
处理模块302,用于对所述M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为所述第M版本的代码的代码变更覆盖率。
测试模块301,还用于在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,所述第二测试结果包括代码全量覆盖率;所述第2版本的代码包括的至少一个第二目标代码行,指从第1版本的代码包括的多个代码行中确定出的未执行的至少一个代码行;所述第2版本之后的各版本的代码包括至少一个第二目标代码行,指从所述各版本的上一版本的代码包括的至少一个代码变更行以及所述各版本的上一版本的代码包括的至少一个第二目标代码行中确定出的未执行的至少一个代码行。
处理模块302,还用于对所述M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值。
处理模块302,还用于根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件。
在一种可选的实施方式中,处理模块302,还用于根据第M-2个第一测试结果包括的未执行代码变更行的行信息,从所述第M-1版本的代码包括的至少一个代码变更行中确定出未执行的至少一个代码变更行作为所述第M版本的代码包括的至少一个第一目标代码行。
在一种可选的实施方式中,处理模块302,还用于运行第一测试用例以分别对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第一目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码变更覆盖率,得到M-1个第一测试结果。
在一种可选的实施方式中,处理模块302,还用于确定所述每个版本的代码包括的所述第一目标代码行对应的功能点;根据功能点与测试场景的对应关系以及所述第一目标代码行对应的功能点,确定所述第一目标代码行对应的第一测试场景;当所述第一测试用例覆盖的测试场景集合不包括所述第一测试场景时,确定所述第一测试用例未覆盖到所述第一测试场景。
在一种可选的实施方式中,处理模块302,还用于根据第M-2个第二测试结果包括的未执行代码行的行信息,从第M-1版本的代码包括的至少一个代码变更行和所述第M-1版本的代码包括的至少一个第二目标代码行中确定出未执行的至少一个代码行,以作为所述第M版本的代码包括的至少一个第二目标行。
在一种可选的实施方式中,处理模块302,还用于运行第二测试用例以对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码全量覆盖率,得到M-1个第二测试结果。
在一种可选的实施方式中,处理模块302,还用于确定所述每个版本的代码包括的所述第二目标代码行对应的功能点;根据功能点与测试场景的对应关系以及所述第二目标代码行对应的功能点,确定所述第二目标代码行对应的第二测试场景;当所述第二测试用例覆盖的测试场景集合不包括所述第二测试场景时,确定所述第二测试用例未覆盖到所述第二测试场景。
综上所述,所述的装置可以在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果;计算机设备对M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为第M版本的代码的代码变更覆盖率;所述的装置可以在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,第二测试结果包括代码全量覆盖率;所述的装置可以对M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值;计算机设备根据第M版本的代码的代码变更覆盖率和代码全量覆盖率累计值生成代码测试报告文件,该过程可以提升代码覆盖率数据的准确性。
请参阅图4,为本申请实施例提供的一种计算机设备的结构示意图。本实施例中所描述的计算机设备可以包括:一个或多个处理器1000和存储器2000。处理器1000和存储器2000可以通过总线等方式连接。
处理器1000可以是中央处理模块(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器2000可以是高速RAM存储器,也可为非不稳定的存储器(non-volatilememory),例如磁盘存储器。存储器2000用于存储一组程序代码,处理器1000可以调用存储器2000中存储的程序代码。具体地:
处理器1000,用于在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果,所述第一测试结果包括代码变更覆盖率;所述M为大于2的整数;所述每个版本的代码包括的所述第一目标代码行,指从所述每个版本的上一版本的代码包括的至少一个代码变更行中确定出的未执行的代码变更行;对所述M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为所述第M版本的代码的代码变更覆盖率;在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,所述第二测试结果包括代码全量覆盖率;所述第2版本的代码包括的至少一个第二目标代码行,指从第1版本的代码包括的多个代码行中确定出的未执行的至少一个代码行;所述第2版本之后的各版本的代码包括至少一个第二目标代码行,指从所述各版本的上一版本的代码包括的至少一个代码变更行以及所述各版本的上一版本的代码包括的至少一个第二目标代码行中确定出的未执行的至少一个代码行;对所述M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值;根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件。
在一个实施例中,处理器1000,还用于根据第M-2个第一测试结果包括的未执行代码变更行的行信息,从所述第M-1版本的代码包括的至少一个代码变更行中确定出未执行的至少一个代码变更行作为所述第M版本的代码包括的至少一个第一目标代码行。
在一个实施例中,处理器1000,具体用于运行第一测试用例以分别对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第一目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码变更覆盖率,得到M-1个第一测试结果。
在一个实施例中,处理器1000,还用于确定所述每个版本的代码包括的所述第一目标代码行对应的功能点;根据功能点与测试场景的对应关系以及所述第一目标代码行对应的功能点,确定所述第一目标代码行对应的第一测试场景;当所述第一测试用例覆盖的测试场景集合不包括所述第一测试场景时,确定所述第一测试用例未覆盖到所述第一测试场景。
在一个实施例中,处理器1000,还用于根据第M-2个第二测试结果包括的未执行代码行的行信息,从第M-1版本的代码包括的至少一个代码变更行和所述第M-1版本的代码包括的至少一个第二目标代码行中确定出未执行的至少一个代码行,以作为所述第M版本的代码包括的至少一个第二目标行。
在一个实施例中,处理器1000,还用于运行第二测试用例以对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码全量覆盖率,得到M-1个第二测试结果。
在一个实施例中,处理器1000,还用于确定所述每个版本的代码包括的所述第二目标代码行对应的功能点;根据功能点与测试场景的对应关系以及所述第二目标代码行对应的功能点,确定所述第二目标代码行对应的第二测试场景;当所述第二测试用例覆盖的测试场景集合不包括所述第二测试场景时,确定所述第二测试用例未覆盖到所述第二测试场景。
具体实现中,本申请实施例中所描述的处理器1000可执行图1实施例、图2实施例所描述的实现方式,也可执行本申请实施例所描述的实现方式,在此不再赘述。
在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采样硬件的形式实现,也可以采样软件功能模块的形式实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的计算机可读存储介质可为易失性的或非易失性的。例如,该计算机存储介质可以为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。所述的计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
其中,本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。
Claims (10)
1.一种代码覆盖率测试方法,其特征在于,包括:
在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果,所述第一测试结果包括代码变更覆盖率;所述M为大于2的整数;所述每个版本的代码包括的所述第一目标代码行,指从所述每个版本的上一版本的代码包括的至少一个代码变更行中确定出的未执行的代码变更行;
对所述M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为所述第M版本的代码的代码变更覆盖率;
在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,所述第二测试结果包括代码全量覆盖率;所述第2版本的代码包括的至少一个第二目标代码行,指从第1版本的代码包括的多个代码行中确定出的未执行的至少一个代码行;所述第2版本之后的各版本的代码包括至少一个第二目标代码行,指从所述各版本的上一版本的代码包括的至少一个代码变更行以及所述各版本的上一版本的代码包括的至少一个第二目标代码行中确定出的未执行的至少一个代码行;
对所述M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值;
根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据第M-2个第一测试结果包括的未执行代码变更行的行信息,从所述第M-1版本的代码包括的至少一个代码变更行中确定出未执行的至少一个代码变更行作为所述第M版本的代码包括的至少一个第一目标代码行。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,包括:
运行第一测试用例以分别对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第一目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码变更覆盖率,得到M-1个第一测试结果。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
确定所述每个版本的代码包括的所述第一目标代码行对应的功能点;
根据功能点与测试场景的对应关系以及所述第一目标代码行对应的功能点,确定所述第一目标代码行对应的第一测试场景;
当所述第一测试用例覆盖的测试场景集合不包括所述第一测试场景时,确定所述第一测试用例未覆盖到所述第一测试场景。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据第M-2个第二测试结果包括的未执行代码行的行信息,从第M-1版本的代码包括的至少一个代码变更行和所述第M-1版本的代码包括的至少一个第二目标代码行中确定出未执行的至少一个代码行,以作为所述第M版本的代码包括的至少一个第二目标行。
6.根据权利要求1或5所述的方法,其特征在于,所述对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行,执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,包括:
运行第二测试用例以对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行进行功能测试,并调用代码覆盖率统计插件统计代码全量覆盖率,得到M-1个第二测试结果。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
确定所述每个版本的代码包括的所述第二目标代码行对应的功能点;
根据功能点与测试场景的对应关系以及所述第二目标代码行对应的功能点,确定所述第二目标代码行对应的第二测试场景;
当所述第二测试用例覆盖的测试场景集合不包括所述第二测试场景时,确定所述第二测试用例未覆盖到所述第二测试场景。
8.一种代码覆盖率测试装置,其特征在于,包括:
测试模块,用于在系统测试阶段,分别从代码管理平台获取目标服务的第2版本的代码至第M版本的代码,并对所述第2版本的代码至第M版本的代码中每个版本的代码包括的至少一个代码变更行和所述每个版本的代码包括的至少一个第一目标代码行执行测试代码变更覆盖率的任务,得到M-1个第一测试结果,所述第一测试结果包括代码变更覆盖率;所述M为大于2的整数;所述每个版本的代码包括的所述第一目标代码行,指从所述每个版本的上一版本的代码包括的至少一个代码变更行中确定出的未执行的代码变更行;
处理模块,用于对所述M-1个第一测试结果中每个第一测试结果包括的代码变更覆盖率进行累加处理,得到代码变更覆盖率累计值,并将所述代码变更覆盖率累计值确定为所述第M版本的代码的代码变更覆盖率;
所述测试模块,还用于在回归测试阶段,分别对每个版本的代码包括的至少一个代码变更行以及所述每个版本的代码包括的至少一个第二目标代码行执行测试代码全量覆盖率的任务,得到M-1个第二测试结果,所述第二测试结果包括代码全量覆盖率;所述第2版本的代码包括的至少一个第二目标代码行,指从第1版本的代码包括的多个代码行中确定出的未执行的至少一个代码行;所述第2版本之后的各版本的代码包括至少一个第二目标代码行,指从所述各版本的上一版本的代码包括的至少一个代码变更行以及所述各版本的上一版本的代码包括的至少一个第二目标代码行中确定出的未执行的至少一个代码行;
所述处理模块,还用于对所述M-1个第二测试结果中每个第二测试结果包括的代码全量覆盖率进行累加处理,得到代码全量覆盖率累计值;
所述处理模块,还用于根据所述第M版本的代码的代码变更覆盖率和所述代码全量覆盖率累计值生成代码测试报告文件。
9.一种计算机设备,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序指令,所述处理器被配置用于执行所述程序指令,实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111218106.5A CN113946515A (zh) | 2021-10-19 | 2021-10-19 | 代码覆盖率测试方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111218106.5A CN113946515A (zh) | 2021-10-19 | 2021-10-19 | 代码覆盖率测试方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113946515A true CN113946515A (zh) | 2022-01-18 |
Family
ID=79331534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111218106.5A Pending CN113946515A (zh) | 2021-10-19 | 2021-10-19 | 代码覆盖率测试方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113946515A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627974A (zh) * | 2023-05-25 | 2023-08-22 | 成都融见软件科技有限公司 | 一种覆盖率存储系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608011A (zh) * | 2016-03-01 | 2016-05-25 | 网易(杭州)网络有限公司 | 代码测试覆盖率统计结果的确定方法及装置 |
CN106155909A (zh) * | 2016-07-26 | 2016-11-23 | 网易(杭州)网络有限公司 | 代码覆盖率测试结果的处理方法及装置 |
CN108959059A (zh) * | 2017-05-19 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种测试方法以及测试平台 |
CN109388566A (zh) * | 2018-09-27 | 2019-02-26 | 北京城市网邻信息技术有限公司 | 一种代码覆盖率分析方法、装置、设备及存储介质 |
CN111026647A (zh) * | 2019-11-21 | 2020-04-17 | 广州品唯软件有限公司 | 代码覆盖率的获取方法、装置、计算机设备和存储介质 |
CN111831564A (zh) * | 2020-07-09 | 2020-10-27 | 北京齐尔布莱特科技有限公司 | 一种回归测试方法、装置及计算设备 |
CN113094258A (zh) * | 2021-03-16 | 2021-07-09 | 平安普惠企业管理有限公司 | 精准测试方法、装置、计算机设备及介质 |
CN113342685A (zh) * | 2021-06-29 | 2021-09-03 | 平安资产管理有限责任公司 | 精准测试方法、装置、计算机设备和存储介质 |
CN113448854A (zh) * | 2021-06-30 | 2021-09-28 | 中国建设银行股份有限公司 | 一种回归测试方法和装置 |
-
2021
- 2021-10-19 CN CN202111218106.5A patent/CN113946515A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608011A (zh) * | 2016-03-01 | 2016-05-25 | 网易(杭州)网络有限公司 | 代码测试覆盖率统计结果的确定方法及装置 |
CN106155909A (zh) * | 2016-07-26 | 2016-11-23 | 网易(杭州)网络有限公司 | 代码覆盖率测试结果的处理方法及装置 |
CN108959059A (zh) * | 2017-05-19 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种测试方法以及测试平台 |
CN109388566A (zh) * | 2018-09-27 | 2019-02-26 | 北京城市网邻信息技术有限公司 | 一种代码覆盖率分析方法、装置、设备及存储介质 |
CN111026647A (zh) * | 2019-11-21 | 2020-04-17 | 广州品唯软件有限公司 | 代码覆盖率的获取方法、装置、计算机设备和存储介质 |
CN111831564A (zh) * | 2020-07-09 | 2020-10-27 | 北京齐尔布莱特科技有限公司 | 一种回归测试方法、装置及计算设备 |
CN113094258A (zh) * | 2021-03-16 | 2021-07-09 | 平安普惠企业管理有限公司 | 精准测试方法、装置、计算机设备及介质 |
CN113342685A (zh) * | 2021-06-29 | 2021-09-03 | 平安资产管理有限责任公司 | 精准测试方法、装置、计算机设备和存储介质 |
CN113448854A (zh) * | 2021-06-30 | 2021-09-28 | 中国建设银行股份有限公司 | 一种回归测试方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627974A (zh) * | 2023-05-25 | 2023-08-22 | 成都融见软件科技有限公司 | 一种覆盖率存储系统 |
CN116627974B (zh) * | 2023-05-25 | 2024-02-09 | 成都融见软件科技有限公司 | 一种覆盖率存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459962B (zh) | 代码规范性检测方法、装置、终端设备及存储介质 | |
CN107766236B (zh) | 测试任务自动化管理方法、装置、设备及存储介质 | |
AU2018367400B2 (en) | Deployment routing of clients by analytics | |
CN113067875B (zh) | 基于微服务网关动态流控的访问方法和装置以及设备 | |
CN110879781B (zh) | 程序调试方法、装置、电子设备及计算机可读存储介质 | |
CN110532021B (zh) | 分布式控制系统的组态文件的处理方法、客户端及服务装置 | |
CN111008105A (zh) | 一种分布式系统调用关系可视化方法及装置 | |
CN109462507B (zh) | 配置更新方法、装置、系统及电子设备 | |
CN113946515A (zh) | 代码覆盖率测试方法、装置、计算机设备及存储介质 | |
CN114936136A (zh) | 业务流程监控方法、装置、计算机设备及存储介质 | |
CN114528201A (zh) | 异常代码定位方法、装置、设备及介质 | |
CN114500249B (zh) | 一种根因定位方法和装置 | |
CN110457201A (zh) | 一种接口测试用例生成方法以及装置 | |
CN111552566B (zh) | 一种数据处理系统、方法、电子设备及存储介质 | |
CN113497721B (zh) | 网络故障定位方法与装置 | |
CN114416420A (zh) | 设备问题反馈方法和系统 | |
CN101894119B (zh) | 用于监控的海量数据的储存 | |
CN110020348B (zh) | 圈选事件的预警方法及装置 | |
CN111736848A (zh) | 包冲突定位方法、装置、电子设备及可读存储介质 | |
CN116760697B (zh) | 网络设备风险监测方法、计算机设备和计算机存储介质 | |
CN113778800B (zh) | 一种报错信息处理方法、装置、系统、设备及存储介质 | |
CN111711537B (zh) | 备用主节点列表更新方法、装置及设备 | |
CN117851422A (zh) | 数据处理方法和装置、电子设备和存储介质 | |
CN116433367A (zh) | 一种交易清分方法、装置及电子设备 | |
CN116010244A (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 |