The invention discloses a code coverage statistical method, a device, a storage medium, a processor and a terminal. The method comprises: a server to trigger the first message, send a notification server second the first server for version management of the modified code file, second server for coverage of statistical work, establish and update related code files of the modified set of notification messages to inform the second server to determine coverage statistics collection task; access cover the rate of statistical tasks to be tested from the coverage statistics task sets; according to the coverage of statistical tasks to be tested code to modify the code or code compiled file coverage statistics, and the code coverage results uploaded to the server second. The invention solves the technical problems of the code coverage test plan provided by related technologies, including the establishment and updating of tasks, the need for manual participation, the complex operation process and low test efficiency.
【技术实现步骤摘要】
代码覆盖率统计方法、装置、存储介质、处理器和终端
本专利技术涉及计算机领域,具体而言,涉及一种代码覆盖率统计方法、装置、存储介质、处理器和终端。
技术介绍
覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行过单元测试、组装测试、集成测试以及接口测试等诸多测试之后,便需要对测试质量进行考察。如果测试过程仅覆盖到软件产品的一小部分代码,那么无论编写多少测试用例,也难以确保测试质量。相反地,如果测试过程已覆盖到软件产品的绝大部分代码,那么则可以根据测试结果来衡量软件产品的质量。目前运用较为广泛的代码覆盖方式主要包括:语句覆盖和判断覆盖。方式一、语句覆盖(StatementCoverage),又称为行覆盖(LineCoverage)、段覆盖(SegmentCoverage)或者基本块覆盖(BasicBlockCoverage),其为一种最为常用的覆盖方式,用于度量被测试代码中的每个可执行语句是否被执行完毕。此处提到的“可执行语句”不包含诸如C++的头文件声明、代码注释、空行等,而仅统计能够执行的代码已经有多少行被执行完毕。需要注意的是,单独一行的花括号{}也时常被 ...
【技术保护点】
一种代码覆盖率统计方法,其特征在于,包括:触发第一服务器向第二服务器发送通知消息,其中,所述第一服务器用于对修改后的代码文件进行版本管理,所述第二服务器用于建立和更新与所述修改后的代码文件关联的覆盖率统计任务集合,所述通知消息用于通知所述第二服务器确定所述覆盖率统计任务集合;从所述覆盖率统计任务集合中获取待测试的覆盖率统计任务;按照所述待测试的覆盖率统计任务对所述修改后的代码或代码编译后文件进行代码覆盖率统计,并将代码覆盖率统计结果上传至所述第二服务器。
【技术特征摘要】
1.一种代码覆盖率统计方法,其特征在于,包括:触发第一服务器向第二服务器发送通知消息,其中,所述第一服务器用于对修改后的代码文件进行版本管理,所述第二服务器用于建立和更新与所述修改后的代码文件关联的覆盖率统计任务集合,所述通知消息用于通知所述第二服务器确定所述覆盖率统计任务集合;从所述覆盖率统计任务集合中获取待测试的覆盖率统计任务;按照所述待测试的覆盖率统计任务对所述修改后的代码或代码编译后文件进行代码覆盖率统计,并将代码覆盖率统计结果上传至所述第二服务器。2.根据权利要求1所述的方法,其特征在于,从所述覆盖率统计任务集合中获取所述待测试的覆盖率统计任务包括以下之一:根据接收到的任务标识从所述覆盖率统计任务集合中选取与任务标识对应的所述覆盖率统计任务;根据测试端标识将所述覆盖率统计任务集合中的部分或全部覆盖率统计任务均设置为所述待测试的覆盖率统计任务;其中,所述覆盖率统计任务集合中的每个覆盖率统计任务均满足以下条件:测试端本地处理的代码分支与每个覆盖率统计任务处理的代码分支相同,所述测试端本地处理的代码版本号大于或等于所述覆盖率统计任务集合中各个覆盖率统计任务的初始版本号,所述部分或全部覆盖率统计任务均处于测试中状态,所述初始版本号是指在每个覆盖率统计任务所归属的分支上与每个覆盖率统计任务建立时的版本号相邻的前一个版本号。3.根据权利要求1所述的方法,其特征在于,按照所述待测试的覆盖率统计任务对所述修改后的代码或代码编译后文件进行代码覆盖率统计,并将所述代码覆盖率统计结果上传至所述第二服务器包括:按照所述待测试的覆盖率统计任务对所述测试端上的代码或代码编译后文件的覆盖率检测过程进行实时监控;每间隔预设时长向所述第二服务器上报当前最新的代码覆盖率统计结果;在所述覆盖率检测过程执行完毕时,将所述代码覆盖率统计结果上传至所述第二服务器;其中,每次上报的代码覆盖率统计结果中携带的信息至少包括:所述修改后的代码文件的文件标识,所述待测试的覆盖率统计任务的任务标识、运行在测试端上代码的版本号,代码覆盖率统计涉及的覆盖范围。4.根据权利要求1所述的方法,其特征在于,按照所述待测试的覆盖率统计任务对所述修改后的代码或代码编译后文件进行代码覆盖率统计,并将所述代码覆盖率统计结果上传至所述第二服务器还包括:确定当前存在未发送至所述第一服务器的已修改代码部分;将所述已修改代码部分的文件标识、以及文件差异内容上报至所述第二服务器,其中,所述文件差异内容是将所述已修改代码部分与所述第一服务器上存储的对应文件进行比较后得到的。5.根据权利要求1所述的方法,其特征在于,在按照所述待测试的覆盖率统计任务对所述修改后的代码或代码编译后文件进行代码覆盖率统计,并将所述代码覆盖率统计结果上传至所述第二服务器之后,还包括:访问所述第二服务器,查询所述代码覆盖率统计结果,其中,在所述第二服务器上每个测试端对应的代码覆盖率统计结果相互分离,与所述代码覆盖率统计结果关联的代码文件被完整显示,与代码覆盖率统计关联的第一部分代码的背景显示为第一颜色,未与所述代码覆盖率统计关联的第二部分代码的背景显示为第二颜色,在所述第一部分代码中已覆盖的代码显示为第三颜色,在所述第一部分代码中未覆盖的代码显示为第四颜色,在所述第二部分代码中已覆盖的代码显示为第五颜色,在所述第二部分代码中未覆盖的代码显示为第六颜色。6.根据权利要求1所述的方法,其特征在于,所述第二服务器还用于在获取到所述通知消息后,从所述通知消息中提取任务标识,并根据所述任务标识从所述第一服务器获取与所述待测试的覆盖率统计任务关联的测试对象文件以及从第三服务器获取与所述待测试的覆盖率统计任务关联的测试人员信息和任务描述信息,并基于所述测试对象文件和所述测试人员信息建立所述待测试的覆盖率统计任务。7.一种代码覆盖率统计方法,其特征在于:接收测试端上传的代码覆盖率统计结果,其中,所述代码覆盖率统计结果是由所述测试端从第二服务器为所述测试端分配的任务关联的代码文件在所述测试端上运行过程中被记录下来的;对所述上传的代码覆盖率统计结果或第二服务器上存储的代码覆盖率统计结果进行调整。8.根据权利要求7所述的方法,其特征在于,对所述上传的代码覆盖率统计结果或所述第二服务器上存储的代码覆盖率统计结果进行调整包括以下之一:确定当前存在未发送至所述第一服务器的已修改代码部分,并根据所述已修改代码部分的位置信息对所述代码覆盖率统计结果进行调整;根据所述测试端上的代码文件的第一版本号与所述第二服务器上对应文件的第二版本号的同步结果对所述代码覆盖率统计结果进行调整;根据第一服务器上修改的代码文件对所述代码覆盖率统计结果进行调整,其中,所述第一服务器用于对所述修改后的代码文件进行版本管理。9.根据权利要求8所述的方法,其特征在于,根据所述测试端上的代码文件的第一版本号与所述第二服务器上对应文件的第二版本号的同步结果对所述代码覆盖率统计结果进行调整包括以下至少之一:当所述第一版本号与所述第二版本号相同时,将所述代码覆盖率统计结果加成至所述第二服务器的代码覆盖率统计结果中;当所述第一版本号小于所述第二版本号时,获取所述第二版本号与所述第一版本号之间的文件差异内容,并根据所述文件差异内容对所述代码覆盖率统计结果进行调整,再将调整后的代码覆盖率统计结果加成至所述第二服务器的代码覆盖率统计结果中;当所述第一版本号大于所述第二版本号时,获取所述第一版本号与初始版本号之间的第一文件差异内容,并根据所述第一文件差异内容对代码需要覆盖内容进行调整;以及获取所述第一版本号与所述第二版本号之间的第二文件差异内容,并根据所述第一文件差异内容和所述第二文件差异内容对所述第二服务器上的代码覆盖率统计结果进行调整,然后再将新上传代码覆盖率统计结果加成至所述第二服务器上调整后的代码覆盖率统计结果中,同时将所述第二服务器上的代码文件版本替换为所述第一版本号。10.根据权利要求8所述的方法,其特征在于,根据第一服务器上修改的代码文件对所述代码覆盖率统计结果进行调整包括:将所述第二服务器上的代码文件的版本号设置为第一版本号以及将第一服务器上更新的代码文件的版本号设置为第二版本号;获取所述第二版本号与初始版本号之间的第一文件差异内容,并根据所述第一文件差异内容对代码需要覆盖内容进行调整;以及获取所述第二版本号与所述第一版本号之间的第二文件差异内容,并根据所...
【专利技术属性】
技术研发人员:冯佳,
申请(专利权)人:网易杭州网络有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。