确定测试代码覆盖率的方法、装置和电子设备制造方法及图纸

技术编号:33287797 阅读:10 留言:0更新日期:2022-04-30 23:58
本申请实施例提出一种确定测试代码覆盖率的方法、装置和电子设备,该方法包括:获取覆盖测试任务的轨迹文件,所述覆盖测试任务包括对多个应用进行覆盖测试的任务,所述轨迹文件中包括所述多个应用分别在对应的服务器中进行覆盖测试得到的代码覆盖标记,一个应用对应至少一个服务器;确定所述多个应用中各目标应用对应的测试版本代码与各目标应用对应的基准版本代码之间的差异代码;根据所述多个应用中各目标应用对应的差异代码和所述轨迹文件,确定所述覆盖测试任务的测试覆盖率。本申请实施例的方法、装置和电子设备,能够提高获取测试覆盖率的效率。试覆盖率的效率。试覆盖率的效率。

【技术实现步骤摘要】
确定测试代码覆盖率的方法、装置和电子设备


[0001]本申请属于计算机信息处理领域,具体涉及一种确定测试代码覆盖率的方法、装置和电子设备。

技术介绍

[0002]代码覆盖(Code coverage)是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。代码覆盖率是衡量测试质量的一个重要指标。在软件产品开发过程中,需要通过对产品代码覆盖率进行测试,以验证软件产品的质量。如果测试结果表明仅覆盖了代码的一小部分,那么无法保证软件产品质量是有保证的;相反,如果测试覆盖到了软件的绝大部分代码,才能够确保软件产品的测试是有效的。
[0003]目前,一般使用开源的覆盖率工具jacoco统计测试白盒覆盖率,获取应用代码的覆盖率情况,但现有技术中如果应用代码只修改了一部分,在每次覆盖率测试时仍需要全部重新测试所有应用,比较浪费时间;另外,目前对覆盖率的测试需要基于同一环境执行,不能分布式从多套环境中获取覆盖率数据,需要分别进行不同环境中的覆盖率测试,效率较低。
[0004]因此,目前亟需一种确定测试代码覆盖率的方法及系统,以提高获取测试覆盖率的效率。

技术实现思路

[0005]本申请实施例的目的是提供一种确定测试代码覆盖率的方法、装置和电子设备,能够提高获取测试覆盖率的效率。
[0006]第一方面,提供一种确定测试代码覆盖率的方法,包括:获取覆盖测试任务的轨迹文件,所述覆盖测试任务包括对多个应用进行覆盖测试的任务,所述轨迹文件中包括所述多个应用分别在对应的服务器中进行覆盖测试得到的代码覆盖标记,一个应用对应至少一个服务器;确定所述多个应用中各目标应用对应的测试版本代码与各目标应用对应的基准版本代码之间的差异代码;根据所述多个应用中各目标应用对应的差异代码和所述轨迹文件,确定所述覆盖测试任务的测试覆盖率。
[0007]第二方面,提供一种确定测试代码覆盖率的装置,包括:
[0008]获取模块,获取覆盖测试任务的轨迹文件,所述覆盖测试任务包括对多个应用进行覆盖测试的任务,所述轨迹文件中包括所述多个应用分别在对应的服务器中进行覆盖测试得到的代码覆盖标记,一个应用对应至少一个服务器;
[0009]第一确定模块,确定所述多个应用中各目标应用对应的测试版本代码与各目标应用对应的基准版本代码之间的差异代码;
[0010]第二确定模块,根据所述多个应用中各目标应用对应的差异代码和所述轨迹文件,确定所述覆盖测试任务的测试覆盖率。
[0011]应理解,该用于确定测试代码覆盖率的装置可以执行如第一方面所述的方法的步
骤。
[0012]第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
[0013]第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
[0014]本申请提出了一种确定测试代码覆盖率的方法、装置和电子设备,通过获取对测试版本代码与基准版本代码之间的差异代码,并统计差异代码的测试覆盖率,针对性地对差异代码进行测试覆盖率统计,从而提高了获取测试代码覆盖率的效率。
附图说明
[0015]图1示出了本申请一个实施例确定测试代码覆盖率的方法流程图。
[0016]图2示出了本申请另一个实施例的测试代码覆盖率的方法流程图。
[0017]图3提供了本申请一个实施例的用于测试代码覆盖率的系统的示意性结构图。
[0018]图4提供了本申请一个实施例提供的一种电子设备的示意性结构图。
具体实施方式
[0019]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
[0020]本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
[0021]下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的测试覆盖率的方法及系统进行详细地说明。
[0022]应理解,在本申请各实施例中提到的覆盖率或测试覆盖率,均指白盒测试覆盖率,后续不再赘述。
[0023]图1示出了本申请一个实施例确定测试代码覆盖率的方法流程图,该方法的执行主体为用于确定测试代码覆盖率的装置,例如可以为测试工具平台所在的服务器,或者是测试覆盖率的服务,等等。如图1所示,该方法包括:
[0024]S110,获取覆盖测试任务的轨迹文件,其中,所述覆盖测试任务包括对多个应用进行覆盖测试的任务,所述轨迹文件中包括所述多个应用分别在对应的服务器中进行覆盖测试得到的代码覆盖标记,一个应用对应至少一个服务器。
[0025]应理解,在本申请实施例中,每个应用可配置一个或多个服务器,不同的服务器中的测试环境可以相同,也可以不同。例如,对应用A配置了服务器B和服务器C,其中,服务器B可部署有运行环境D,服务器C可部署运行环境D,也可部署运行环境E。
[0026]可选地,所述多个应用中目标应用的代码覆盖标记包括目标应用的加入的字节码增强技术所存储的执行信息数据,步骤S110具体可实现为:
[0027]获取所述多个应用中目标应用的端口信息和目标应用所属服务器的地址信息;
[0028]根据所述多个应用中各目标应用的端口信息和各目标应用对应的服务器的地址信息,分别建立与所述多个应用中各目标应用的长连接;
[0029]分别通过所述多个应用中各目标应用对应的长连接,获取所述多个应用中各目标应用加入的字节码增强技术所存储的执行信息数据;
[0030]根据所述多个应用中各目标应用的加入的字节码增强技术所存储的执行信息数据,生成所述轨迹文件。
[0031]下面以开源测试工具jacoco为例对本申请实施例获取轨迹文件的过程进行解释说明。
[0032]在本申请实施例中,测试覆盖率服务在查询到覆盖率测试任务对应的环境配置信息后,可根据应用的端口号和应用对应的服务器的IP地址,连接到服务器。具体地,可利用定制化的jaocococli.jar的dump命令同时创建多个socket连接各服务器中应用的端口的jacocoAgent,然后通过socket读取应用中加入的字节码增强技术(ExecutionDataStore本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种确定测试代码覆盖率的方法,其特征在于,包括:获取覆盖测试任务的轨迹文件,所述覆盖测试任务包括对多个应用进行覆盖测试的任务,所述轨迹文件中包括所述多个应用分别在对应的服务器中进行覆盖测试得到的代码覆盖标记,一个应用对应至少一个服务器;确定所述多个应用中各目标应用对应的测试版本代码与各目标应用对应的基准版本代码之间的差异代码;根据所述多个应用中各目标应用对应的差异代码和所述轨迹文件,确定所述覆盖测试任务的测试覆盖率。2.根据权利要求1所述的方法,其特征在于,所述多个应用中目标应用的代码覆盖标记包括目标应用的加入的字节码增强技术所存储的执行信息数据;所述获取覆盖测试任务的轨迹文件,包括:获取所述多个应用中目标应用的端口信息和目标应用所属服务器的地址信息;根据所述多个应用中各目标应用的端口信息和各目标应用对应的服务器的地址信息,分别建立与所述多个应用中各目标应用的长连接;分别通过所述多个应用中各目标应用对应的长连接,获取所述多个应用中各目标应用加入的字节码增强技术所存储的执行信息数据;根据所述多个应用中各目标应用的加入的字节码增强技术所存储的执行信息数据,生成所述轨迹文件。3.根据权利要求2所述的方法,其特征在于,在通过所述多个应用中的任一个目标应用对应的长链接,获取目标应用的加入的字节码增强技术所存储的执行信息数据之前,所述方法还包括:向所述多个应用中的目标应用对应的服务器上传目标应用对应的覆盖率工具包,其中,目标应用对应的覆盖率工具包用于对目标应用进行覆盖率测试。4.根据权利要求1所述的方法,其特征在于,根据所述多个应用中各应用对应的差异代码和所述轨迹文件,确定所述覆盖测试任务的测试覆盖率,包括:根据所述多个应用中目标应用对应的差异代码,以及所述轨迹文件中目标应用对应的测试代码标记,确定目标应用的测试版本代码相对于基准版本代码的增量测试覆盖率;根据所述多个应用中各目标应用的增量测试覆盖率及各目标应用的基准版本代码的全量测试覆盖率,确定根据所述多个应用中各目标应用的测试版本代码的全量测试覆盖率,其中,所述覆盖测试任务的测试覆盖率为全量测试覆盖率;或者根据所述多个应用中目标应用对应的差异代码,以及所述轨迹文件中目标应用对应的测试代码标记,确定目标应用的测试版本代码相对于基准版本代码的增量测试覆盖率,其中,所述覆盖测试任务的测试覆盖率为增量测试覆盖率。5.根据权利要求4所述的方法,其特征在于,所述确定所述多个应用中各目标应用对应的测试版本代码与各目标应用对应的基准版本代码之间的差异代码,包括:使用版本差异工具对所述多个目标应用的测试版本代码与所述目标应用的基准版本代码进行比较,以生成各所述目标应用对应的差异数组,所述差异素组中存储目标应用的测试版本代码与基准版本代码之间的差异代码对应的差异代
码标识和差异类型;根据所述多个应用中目标应用对应的差异代码,以及所述轨迹文件...

【专利技术属性】
技术研发人员:陈学涛周林孙磊吴海英吴鹏刘洪政
申请(专利权)人:马上消费金融股份有限公司
类型:发明
国别省市:

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

1