一种覆盖率确定方法、装置及存储介质制造方法及图纸

技术编号:24352925 阅读:26 留言:0更新日期:2020-06-03 01:58
本申请公开了一种覆盖率确定方法,包括:获取测试用例运行的第一块信息;基于所述第一块信息所属的函数,确定所述测试用例对应的第二块信息;基于所述第一块信息和所述第二块信息,确定所述测试用例的覆盖率;本申请还公开了一种覆盖率确定装置及存储介质;通过本申请实施例,可以获得源代码中一个测试用例的测试状态。

A method, device and storage medium for determining coverage

【技术实现步骤摘要】
一种覆盖率确定方法、装置及存储介质
本申请涉及计算机
,尤其涉及一种覆盖率确定方法、装置及存储介质。
技术介绍
大型高复杂度的软件在敏捷迭代的过程中,为了检测新版本中是否存在漏洞,需要对新版本中的代码进行测试。常用的代码测试方法是覆盖测评,代码测试过程中覆盖率越高,表示源代码中被测试的比例越高。相关技术中,覆盖率反应的是代码整体的测试状态,如何获得源代码中一个测试用例的测试状态尚未明确。
技术实现思路
本申请实施例提供一种覆盖率确定方法、装置及存储介质,能够获得源代码中一个测试用例的覆盖率,进而获得所述用例的测试状态。本申请实施例的技术方案是这样实现的:获取测试用例运行的第一块信息;基于所述第一块信息所属的函数,确定所述测试用例对应的第二块信息;基于所述第一块信息和所述第二块信息,确定所述测试用例的覆盖率。上述方案中,所述方法还包括:选取一个测试用例类别,从源代码中筛选出与所述测试用例类别相关的所有测试用例。上述方案中,所述获取测试用例运行的第一块信息包括:在源代码分析的过程中植入探针,获取所述源代码运行过程中运行的块信息;和/或,在源代码的每一个函数包含的块中,分别植入一个探针,获取在所述源代码运行的过程中所述探针采集到的运行的块信息。上述方案中,所述方法还包括:确定所述第一块信息所属的函数。上述方案中,所述确定所述第一块信息所属的函数包括:根据静态分析数据,确定所述第一块信息所属的函数。上述方案中,所述确定所述测试用例对应的第二块信息包括:确定所述第一块信息所属的函数中包含的全部块信息为第二块信息。上述方案中,所述确定所述测试用例的覆盖率包括:确定所述第一块信息除以所述第二块信息得到的商为所述测试用例的覆盖率。本申请实施例还提供一种覆盖率确定装置,包括:获取单元,用于获取测试用例运行的第一块信息;确定单元,用于基于所述第一块信息所属的函数,确定所述测试用例对应的第二块信息;用于基于所述第一块信息和所述第二块信息,确定所述测试用例的覆盖率。上述方案中,所述装置还包括:筛选单元,用于选取一个测试用例类别,从源代码中筛选出与所述测试用例类别相关的所有测试用例。上述方案中,所述获取单元还用于:在源代码分析的过程中植入探针,获取所述源代码运行过程中运行的块信息;和/或,在源代码的每一个函数包含的块中,分别植入一个探针,获取在所述源代码运行的过程中所述探针采集到的运行的块信息。上述方案中,所述确定单元还用于:确定所述第一块信息所属的函数。上述方案中,所述确定单元还用于:根据静态分析数据,确定所述第一块信息所属的函数。上述方案中,确定单元还用于:确定所述第一块信息所属的函数中包含的全部块信息为第二块信息。上述方案中,确定单元还用于:确定所述第一块信息除以所述第二块信息得到的商为所述测试用例的覆盖率。本申请实施例提供的覆盖率确定方法、装置及存储介质,获取测试用例运行的第一块信息;基于所述第一块信息所属的函数,确定所述测试用例对应的第二块信息;基于所述第一块信息和所述第二块信息,确定所述测试用例的覆盖率。如此,可以挑选出与被测试用例相关的函数,过滤掉与被测试用例不相关的函数,只统计所述测试用例相关函数的覆盖率,从而得到相对较高的覆盖率,有利于进行后续的覆盖率分析。在测试用例的覆盖率较低的情况下,可以对所述测试用例进行针对性的测试用例补充,从而有效提升测试效率。附图说明图1为本申请实施例提供的覆盖率确定方法的可选流程示意图一;图2为本申请实施例提供的覆盖率确定方法的可选流程示意图二;图3为本申请实施例提供的覆盖率确定方法的可选示意图一;图4为本申请实施例提供的覆盖率确定方法的可选示意图二;图5为本申请实施例提供的覆盖率确定方法的可选示意图三;图6为本申请实施例提供的覆盖率确定装置的可选结构示意图;图7为本申请实施例提供的覆盖率确定装置的硬件组成结构示意图。具体实施方式以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。在敏捷迭代场景下,有时只测试了源代码的部分功能。在某个版本只是进行某个用例的测试时,传统白盒测试覆盖率工具所采集到的覆盖率信息是全局维度的,该测试用例类别的总体覆盖率很低,无法统计一个测试用例类别相关代码范围的覆盖率,进而无法进行缺陷定位和深度分析。基于目前覆盖率统计方法中存在的问题,本申请提出一种覆盖率确定方法,能够解决现有技术方案中无法解决的技术难题和缺点。图1示出了本申请实施例提供的覆盖率确定方法的可选流程示意图一,将根据各个步骤进行说明。步骤S101,获取测试用例运行的第一块信息。在一些实施例中,覆盖率确定装置获取测试用例运行的第一块信息。所述第一块信息包括:一个测试用例类别中包括的全部测试用例在运行的过程中,运行的块信息。在一些实施例中,源代码包括至少一个测试用例,所述至少一个测试用例包括至少一个函数,所述至少一个函数包括至少一个快。在另一些实施例中,源代码包括至少一个测试用例类别,所述测试用例类别对应至少一个测试用例。在一些实施例中,所述覆盖率确定装置获取测试用例运行的第一块信息包括:所述覆盖率确定装置在源代码分析的过程中植入探针,获取所述源代码运行过程中运行的块信息。所述覆盖率确定装置在所述源代码未被运行的情况下,对所述源代码分析的过程中植入探针,在所述源代码的一个用例类别被运行的情况下,所述探针获取的被运行的块信息。在另一些实施例中,所述覆盖率确定装置获取测试用例运行的第一块信息包括:所述覆盖率确定装置在源代码的每一个函数包含的块中,分别植入一个探针,获取在所述源代码运行的过程中所述探针采集到的运行的块信息。在一些实施例中,所述第一块信息包括以下至少一种:被运行的函数标识(Identitify,ID)、所述函数中被运行的起始块的ID和所述函数中被运行的结束块的ID。步骤S102,基于所述第一块信息所属的函数,确定所述测试用例对应的第二块信息。在一些实施例中,覆盖率确定装置基于所述第一块信息所属的函数,确定所述测试用例对应的第二块信息包括:所述覆盖率确定装置根据静态分析数据,确定所述第一块信息所属的函数,根据所述函数确认所述函数包括的全部块信息。在一些实施例中,所述静态分析数据包括:所述源代码包括的测试用例类别信息、所述测试用例类别包括的函数的信息和所述函数包括的块信息中至少一种。在一些实施例中,覆盖率确定装置获取所述静态分析数据包括:在源代码分析的过程中,所述覆盖率确定装置通过分析所述源代码的语法获取到的所述源代码的块信息,以及每一个块对应的ID的信息,和/或所述覆盖率本文档来自技高网...

【技术保护点】
1.一种覆盖率确定方法,其特征在于,所述方法包括:/n获取测试用例运行的第一块信息;/n基于所述第一块信息所属的函数,确定所述测试用例对应的第二块信息;/n基于所述第一块信息和所述第二块信息,确定所述测试用例的覆盖率。/n

【技术特征摘要】
1.一种覆盖率确定方法,其特征在于,所述方法包括:
获取测试用例运行的第一块信息;
基于所述第一块信息所属的函数,确定所述测试用例对应的第二块信息;
基于所述第一块信息和所述第二块信息,确定所述测试用例的覆盖率。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
选取一个测试用例类别,从源代码中筛选出与所述测试用例类别相关的所有测试用例。


3.根据权利要求1所述的方法,其特征在于,所述获取测试用例运行的第一块信息包括:
在源代码分析的过程中植入探针,获取所述源代码运行过程中运行的块信息;
和/或,在源代码的每一个函数包含的块中,分别植入一个探针,获取在所述源代码运行的过程中所述探针采集到的运行的块信息。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述第一块信息所属的函数。


5.根据权利要求4所述的方法,其特征在于,所述确定所述第一块信息所属的函数包括:
根据静态分析数据,确定所述第一块信息所属的函数。


6.根据权利要求1所述的方法,其特征在于,所述确定所述测试用例对应的第二块信息包括:
确定所述第一块信息所属的函数中包含的全部块信息为第二块信息。


7.根据权利要求1所述的方法,其特征在于,所述确定所述测试用例的覆盖率包括:
确定所述第一块信息除以所述第二块信息得到的商为所述测试用例的覆盖率。


8.一种覆盖率确定装置,其特征在于,所述装置包括:
获取单元,用于获取测试用例运行的第一块信息;
确定单元,用于基于所述第一块信息所属的函数,确定...

【专利技术属性】
技术研发人员:赵明
申请(专利权)人:苏州洞察云信息技术有限公司
类型:发明
国别省市:江苏;32

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

1