提升代码测试覆盖率的方法、装置、设备及介质制造方法及图纸

技术编号:32291134 阅读:19 留言:0更新日期:2022-02-12 20:00
本申请提供了一种提升代码测试覆盖率的方法,属于数据分析技术领域,方法包括:对目标代码进行预处理,以获取目标代码的各子代码之间的拓扑结构图;调用测试用例集对目标代码进行测试,并获取各个子代码的执行情况;执行情况包括未执行以及部分执行;基于执行情况对拓扑结构图进行标记,其中,不同的执行情况采用不同的标记;对标记后的拓扑结构图进行分析,以基于分析后拓扑结构图生成新的测试用例,以对执行情况为未执行和/或部分执行的子代码进行测试。本申请的实施例能够有效提升代码测试覆盖率。覆盖率。覆盖率。

【技术实现步骤摘要】
提升代码测试覆盖率的方法、装置、设备及介质


[0001]本申请涉及代码覆盖率统计
,特别涉及一种提升代码测试覆盖率的方法、一种提升代码测试覆盖率的方法装置、一种电子设备及一种计算机可读介质。

技术介绍

[0002]随着敏捷开发模式的普及和推广,在此模式下,代码更新迭代频繁,频繁交付新的软件版本对代码测试带来了新的挑战。
[0003]代码覆盖率是用于反映被测目标代码的被执行情况。若代码覆盖率较低,则说明存在较多的代码未被执行到,不利于测试工作的开展。
[0004]因此,需要一种方式来有效提升代码测试覆盖率。
[0005]在所述
技术介绍
部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0006]本申请的目的在于提供一种能够有效提升代码测试覆盖率的方法、装置、电子设备及可读存储介质。
[0007]本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
[0008]根据本申请实施例的一个方面,提供一种提升代码测试覆盖率的方法,包括:对目标代码进行预处理,以获取目标代码的各子代码之间的拓扑结构图;调用测试用例集对目标代码进行测试,并获取各个子代码的执行情况;执行情况包括未执行以及部分执行;基于执行情况对拓扑结构图进行标记,其中,不同的执行情况采用不同的标记;对标记后的拓扑结构图进行分析,以基于分析后拓扑结构图生成新的测试用例,以对执行情况为未执行和/或部分执行的子代码进行测试。
[0009]在一些实施例中,获取目标代码的各子代码之间的拓扑结构图,包括:识别各子代码之间的调用关系;根据调用关系生成目标代码的各子代码的调用关系图。
[0010]在一些实施例中,对标记后的拓扑结构图进行分析,包括:提取执行情况为未执行的子代码对应的调用关系图;基于调用关系图,生成执行情况为未执行的子代码对应的测试用例,以对执行情况为未执行的子代码进行测试。
[0011]在一些实施例中,基于调用关系图,生成执行情况为未执行的子代码对应的测试用例,包括:基于调用关系图,从测试用例库中获取执行情况为未执行的子代码对应的测试用例。
[0012]在一些实施例中,调用测试用例集对目标代码进行测试,包括:获取目标代码以及原代码,其中,目标代码是更新原代码得到的;确定目标代码与原代码的差异代码信息;基于差异代码信息更新原代码对应的测试用例集,以得到目标代码对应的测试用例集。
[0013]在一些实施例中,拓扑结构图为树形结构;对标记后的拓扑结构图进行分析,包
括:对标记后的拓扑结构图进行溯源分析,以获取执行情况为部分执行和/或未执行的子代码对应的源级节点对应的子代码,以获取源源级节点对应的子代码,以使用测试用例进行测试。
[0014]在一些实施例中,不同的执行情况采用不同的标记,包括:获取执行情况与候选色彩之间的映射关系,并根据映射关系为不同的执行情况添加不同的色彩标记;对标记后的拓扑结构图进行可视化展示,以显示各所述子代码的测试覆盖信息。
[0015]根据本申请实施例的一个方面,提供一种提升代码测试覆盖率的装置,包括:第一获取单元,用于对目标代码进行预处理,以获取目标代码的各子代码之间的拓扑结构图;第二获取单元,用于调用测试用例集对目标代码进行测试,并获取各个子代码的执行情况;执行情况包括未执行以及部分执行;标记单元,用于基于执行情况对拓扑结构图进行标记,其中,不同的执行情况采用不同的标记;测试单元,用于对标记后的拓扑结构图进行分析,以基于分析后拓扑结构图生成新的测试用例,以对执行情况为未执行和/或部分执行的子代码进行测试。
[0016]根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的提升代码测试覆盖率的方法。
[0017]根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器被配置为经由执行可执行指令来执行如以上技术方案中的提升代码测试覆盖率的方法。
[0018]根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的提升代码测试覆盖率的方法。
[0019]在本申请实施例提供的技术方案中,通过将目标代码抽象化成拓扑结构图进行测试覆盖率管理,在拓扑结构图上使用不同的标记对测试用例执行情况进行标记,从而在一方面可对执行情况进行可视化、个性化展示,另一方面,基于未执行和/或部分执行的子代码对应的拓扑结构进行分析,以针对性的补充测试用例,使未被覆盖的代码被覆盖,从而有效地提升测试覆盖率。
[0020]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0021]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1示意性地示出了应用本申请技术方案的示例性系统架构框图。
[0023]图2示出了本申请一种提升代码测试覆盖率的方法一种流程示意图。
[0024]图3示出了本申请另一种提升代码测试覆盖率的方法一种流程示意图。
[0025]图4示出了本申请又一种提升代码测试覆盖率的方法一种流程示意图。
[0026]图5a示出了本申请又一种拓扑关系图的结构示意图。
[0027]图5b示出了图5a中未执行的子代码对应的调用关系图。
[0028]图6示出了本申请又一种提升代码测试覆盖率的装置的结构示意图。
[0029]图7示意性示出了适于用来实现本申请实施例的电子设备的计算机系统结构框图。
具体实施方式
[0030]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
[0031]此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
[0032]附图中所示的方框图仅仅是功能实体,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提升代码测试覆盖率的方法,其特征在于,包括:对目标代码进行预处理,以获取所述目标代码的各子代码之间的拓扑结构图;调用测试用例集对所述目标代码进行测试,并获取各个所述子代码的执行情况;所述执行情况包括未执行以及部分执行;基于所述执行情况对所述拓扑结构图进行标记,其中,不同的执行情况采用不同的标记;对标记后的所述拓扑结构图进行分析,以基于分析后所述拓扑结构图生成新的测试用例,以对所述执行情况为未执行和/或部分执行的子代码进行测试。2.根据权利要求1所述的方法,其特征在于,所述获取所述目标代码的各子代码之间的拓扑结构图,包括:识别各子代码之间的调用关系;根据所述调用关系生成所述目标代码的各子代码的调用关系图,并以所述调用关系图作为所述目标代码的各子代码之间的拓扑结构图。3.根据权利要求2所述的方法,其特征在于,所述对标记后的所述拓扑结构图进行分析,包括:提取所述执行情况为未执行的子代码对应的调用关系图;基于所述调用关系图,生成所述执行情况为未执行的子代码对应的测试用例,以对所述执行情况为未执行的子代码进行测试。4.根据权利要求3所述的方法,其特征在于,所述基于所述调用关系图,生成所述执行情况为未执行的子代码对应的测试用例,包括:基于所述调用关系图,从测试用例库中获取所述执行情况为未执行的子代码对应的测试用例。5.根据权利要求1所述的方法,其特征在于,在所述调用测试用例集对所述目标代码进行测试之前,所述方法还包括:获取所述目标代码以及原代码,其中,所述目标代码是更新所述原代码得到的;确定所述目标代码与所述原代码的差异代码信息;基于所述差异代码信息更新所述原代码对应的测试用例集,以得到所述目标代码对应的测试用例...

【专利技术属性】
技术研发人员:田晓姣
申请(专利权)人:中国平安人寿保险股份有限公司
类型:发明
国别省市:

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

1