一种覆盖率采集方法、装置、电子设备和存储介质制造方法及图纸

技术编号:39251385 阅读:9 留言:0更新日期:2023-10-30 12:03
本申请涉及计算机技术领域,尤其涉及一种覆盖率采集方法、装置、电子设备和存储介质,用于降低确定代码覆盖率的执行复杂度。该方法为:获得对应待测试程序预设的多个插桩部署信息,每个插桩部署信息包含:在待测试程序中的一段源代码中插入的信息采集代码的位置信息;基于多个插桩部署信息,对待测试程序进行测试,每执行一个位置信息对应的信息采集代码时,将获得的已执行的代码数据更新至目标数据集;当待测试程序完成测试时,从目标数据集中获取已执行的代码数据,并基于已执行的代码数据,确定待测试程序的覆盖率。这样,可以自动执行对应的信息采集代码,从而确定待测试程序的覆盖率,进而降低了确定代码覆盖率的执行复杂度。度。度。

【技术实现步骤摘要】
一种覆盖率采集方法、装置、电子设备和存储介质


[0001]本申请涉及计算机
,尤其涉及一种覆盖率采集方法、装置、电子设备和存储介质。

技术介绍

[0002]随着电子计算机的普及和其应用范围的不断扩展,计算机程序的使用需求和使用量随之快速增长。
[0003]为了满足多种不同的使用需求,需要设计并生成新的计算机程序,且新的计算机程序的生成过程是一个包括开发阶段、冒烟阶段(即对计算机程序的基本功能进行预测试的阶段)、详细测试阶段以及发布阶段的流水线。
[0004]在计算机程序的详细测试阶段中,代码覆盖率是对新的计算机程序的测试质量进行评价的重要指标。具体的,代码覆盖率是基于已执行的代码行数与总代码行数的比值所确定的;显然,通过代码覆盖率,对象可以了解清楚的了解到待测试的计算机程序有多少代码被执行了,有哪些代码还未被执行等信息。
[0005]具体的,由于需要开发阶段所确定的程序的总代码信息,和详细测试阶段所确定的已执行的代码信息,来确定程序的覆盖率,因此,相关技术下,测试对象不仅需要在详细测试阶段设置获取已执行代码信息的程序,还需要在开发阶段设置获取总代码信息的程序,才可以获得详细测试阶段已执行的代码信息和程序的总代码信息,从而确定代码覆盖率。
[0006]显然,这样的方式,不仅对测试对象提出了较高的要求,且在确定原始程序的不同测试版本对应的代码覆盖率时,需要多次设置不同的获取已执行代码信息的程序,导致确定原始程序的代码覆盖率的过程较为繁琐。
[0007]综上,相关技术下,存在确定代码覆盖率的执行复杂度高的技术问题。

技术实现思路

[0008]本申请实施例中提供了一种覆盖率采集方法、装置、电子设备和存储介质,用于解决确定代码覆盖率的执行复杂度高的技术问题。
[0009]一方面,提供一种覆盖率采集方法,所述方法包括:
[0010]获得对应待测试程序预设的多个插桩部署信息,每个插桩部署信息包含:在所述待测试程序中的一段源代码中插入的信息采集代码的位置信息;
[0011]基于所述多个插桩部署信息,对所述待测试程序进行测试,其中,每执行一个位置信息对应的信息采集代码时,将获得的已执行的代码数据更新至目标数据集;
[0012]当所述待测试程序完成测试时,从所述目标数据集中获取已执行的代码数据,并基于所述已执行的代码数据,确定所述待测试程序的覆盖率。
[0013]一方面,提供一种覆盖率采集装置,所述装置包括:
[0014]获得单元,用于获得对应待测试程序预设的多个插桩部署信息,每个插桩部署信
息包含:在所述待测试程序中的一段源代码中插入的信息采集代码的位置信息;
[0015]测试单元,用于基于所述多个插桩部署信息,对所述待测试程序进行测试,其中,每执行一个位置信息对应的信息采集代码时,将获得的已执行的代码数据更新至目标数据集;
[0016]确定单元,用于当所述待测试程序完成测试时,从所述目标数据集中获取已执行的代码数据,并基于所述已执行的代码数据,确定所述待测试程序的覆盖率。
[0017]可选的,所述测试单元,用于:
[0018]分别确定所述多个插桩部署信息各自对应的任务信息,每个任务信息包括:相应的信息采集代码对应的初始状态和执行次数;
[0019]在对所述待测试程序进行测试的过程中,每执行到一个所述位置信息对应的代码位置,按照相应的任务信息,执行所述位置信息对应的信息采集代码,确定当前待测试程序中已执行的代码数据,并将所述已执行的代码数据更新至所述目标数据集。
[0020]可选的,所述装置还包括第一处理单元,用于:
[0021]确定是否接收到覆盖率获取请求;
[0022]当接收到所述覆盖率获取请求,并确定已执行过至少一个信息采集代码时,从所述目标数据集中,获取在接收所述覆盖率获取请求之前所保存的第一已执行的代码数据;
[0023]基于所述第一已执行的代码数据和所述待测试程序的总代码数据,确定所述待测试程序的第一覆盖率。
[0024]可选的,在获得对应待测试程序预设的多个插桩部署信息之前,所述装置还包括第二处理单元,用于:
[0025]获得已插入预设落地代码的所述待测试程序对应的源代码,并对所述源代码进行编译,获得所述待测试程序;
[0026]其中,所述数据落地代码用于表征:在执行任一所述信息采集代码后,将获得的已执行的代码数据落地至所述目标数据集。
[0027]可选的,所述装置还包括展示单元,用于:
[0028]接收覆盖率结果展示请求;
[0029]当所述覆盖率结果展示请求用于指示代码展示时,按已执行进度展示方式,对所述待测试程序对应的已执行代码数据和总代码数据进行展示;
[0030]当所述覆盖率结果展示请求用于指示图像展示时,按动态图像展示方式,对所述待测试程序的覆盖率进行展示。
[0031]一方面,提供的一种电子设备,包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述覆盖率采集方法。
[0032]一方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述覆盖率采集方法。
[0033]本申请实施例提供一种计算机可读存储介质,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行上述任意一种覆盖率采集方法的步骤。
[0034]本申请有益效果如下:
[0035]本申请实施例中,提出一种覆盖率采集方法、装置、电子设备和存储介质,由于可以获得对应待测试程序预设的多个插桩部署信息,即可以获得在待测试程序中的一段源代码中插入的信息采集代码的各个位置信息,也就是说,提前设置了各个信息采集代码用于采集待测试程序对应的执行信息。因此,电子设备可以每执行一个位置信息对应的信息采集代码时,将获得的已执行的代码数据更新至目标数据集,从而在确定当待测试程序完成测试时,从目标数据集中获取已执行的代码数据,并基于已执行的代码数据,确定待测试程序的覆盖率。
[0036]可见,本申请提供的覆盖率采集方法,无需测试对象进行相关操作,即可以通过电子设备自动且高效的完成对待测试程序的覆盖率,降低了确定代码覆盖率的执行复杂度。
[0037]本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
[0038]为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种覆盖率采集方法,其特征在于,所述方法包括:获得对应待测试程序预设的多个插桩部署信息,每个插桩部署信息包含:在所述待测试程序中的一段源代码中插入的信息采集代码的位置信息;基于所述多个插桩部署信息,对所述待测试程序进行测试,其中,每执行一个位置信息对应的信息采集代码时,将获得的已执行的代码数据更新至目标数据集;当所述待测试程序完成测试时,从所述目标数据集中获取已执行的代码数据,并基于所述已执行的代码数据,确定所述待测试程序的覆盖率。2.如权利要求1所述的方法,其特征在于,基于所述多个插桩部署信息,对所述待测试程序进行测试,包括:分别确定所述多个插桩部署信息各自对应的任务信息,每个任务信息包括:相应的信息采集代码对应的初始状态和执行次数;在对所述待测试程序进行测试的过程中,每执行到一个所述位置信息对应的代码位置,按照相应的任务信息,执行所述位置信息对应的信息采集代码,确定当前待测试程序中已执行的代码数据,并将所述已执行的代码数据更新至所述目标数据集。3.如权利要求1或2所述的方法,其特征在于,在对所述测试程序进行测试时,所述方法还包括:确定是否接收到覆盖率获取请求;当接收到所述覆盖率获取请求,并确定已执行过至少一个信息采集代码时,从所述目标数据集中,获取在接收所述覆盖率获取请求之前所保存的第一已执行的代码数据;基于所述第一已执行的代码数据和所述待测试程序的总代码数据,确定所述待测试程序的第一覆盖率。4.如权利要求1或2所述的方法,其特征在于,在获得对应待测试程序预设的多个插桩部署信息之前,所述方法还包括:获得已插入预设落地代码的所述待测试程序对应的源代码,并对所述源代码进行编译,获得所述待测试程序;其中,所述数据落地代码用于表征:在执行任一所述信息采集代码后,将获得的已执行的代码数据落地至所述目标数据集。5.如权利要求1或2所述的方法,其特征在于,确定所述待测试程序的覆盖率之后,所...

【专利技术属性】
技术研发人员:郭佳明
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1