代码覆盖率的统计方法、装置和计算机设备与流程
本申请涉及软件测试,特别是涉及一种代码覆盖率的统计方法、装置和计算机设备。
背景技术:
1、代码测试已成为软件研发流程中保障代码质量与防控运行风险的核心环节。代码覆盖率作为量化测试充分性的关键指标,用于表征测试用例对被测代码的执行覆盖程度,广泛应用于单元测试、集成测试、系统测试等各类测试场景。
2、然而,在现有的代码覆盖率统计方案中,通常以全量源代码为统计口径,输出的测试结果仅能从整体层面指示被测代码是否被测试执行,无法针对版本迭代过程中的变更代码进行覆盖率统计。
3、针对相关技术中存在无法针对版本迭代过程中的变更代码进行覆盖率统计的问题,目前还没有提出有效的解决方案。
技术实现思路
1、在本实施例中提供了一种代码覆盖率的统计方法、装置和计算机设备,旨在针对版本迭代过程中的变更代码进行覆盖率统计。
2、第一个方面,在本实施例中提供了一种代码覆盖率的统计方法,所述统计方法包括:
3、根据源代码的当前版本和所述源代码的基准版本,生成所述源代码的差异文件;
4、获取所述当前版本对应的目标执行轨迹文件,并根据所述当前版本和所述目标执行轨迹文件,确定所述当前版本对应的第一代码覆盖数据;其中,所述第一代码覆盖数据用于指示所述当前版本中的各个代码是否执行;
5、根据所述差异文件和所述第一代码覆盖数据,确定所述差异文件对应的代码覆盖率。
6、第二个方面,在本实施例中提供了一种代码覆盖率的统计装置,所述统计装置包括:
7、生成模块,用于根据源代码的当前版本和所述源代码的基准版本,生成所述源代码的差异文件;
8、处理模块,用于获取所述当前版本对应的目标执行轨迹文件,并根据所述当前版本和所述目标执行轨迹文件,确定所述当前版本对应的第一代码覆盖数据;其中,所述第一代码覆盖数据用于指示所述当前版本中的各个代码是否执行;
9、统计模块,用于根据所述差异文件和所述第一代码覆盖数据,确定所述差异文件对应的代码覆盖率。
10、第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的代码覆盖率的统计方法。
11、与相关技术相比,在本实施例中提供的一种代码覆盖率的统计方法、装置和计算机设备,其中,该统计方法具体包括:根据源代码的当前版本和源代码的基准版本,生成源代码的差异文件;获取当前版本对应的目标执行轨迹文件,并根据当前版本和目标执行轨迹文件,确定当前版本对应的第一代码覆盖数据;其中,第一代码覆盖数据用于指示当前版本中的各个代码是否执行;根据差异文件和第一代码覆盖数据,确定差异文件对应的代码覆盖率。这样,通过生成源代码的当前版本与基准版本间的差异文件,并结合执行轨迹文件获取代码覆盖数据,进而根据代码覆盖数据与差异文件得到仅针对变更代码的覆盖率统计结果,以此将分析范围精准限定于实际变更的代码,从而实现对版本迭代过程中变更代码的覆盖率统计。
12、本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
1.一种代码覆盖率的统计方法,其特征在于,所述统计方法包括:
2.根据权利要求1所述的代码覆盖率的统计方法,其特征在于,所述获取所述当前版本对应的目标执行轨迹文件,包括:
3.根据权利要求1所述的代码覆盖率的统计方法,其特征在于,所述根据所述当前版本和所述目标执行轨迹文件,确定所述当前版本对应的第一代码覆盖数据,包括:
4.根据权利要求1所述的代码覆盖率的统计方法,其特征在于,所述根据所述当前版本和所述目标执行轨迹文件,确定所述当前版本对应的第一代码覆盖数据之后,所述方法还包括:
5.根据权利要求4所述的代码覆盖率的统计方法,其特征在于,所述获取所述当前版本所关联的历史代码覆盖数据,包括:
6.根据权利要求4所述的代码覆盖率的统计方法,其特征在于,所述生成所述当前版本中的每个当前方法对应的身份标识,包括:
7.根据权利要求1所述的代码覆盖率的统计方法,其特征在于,所述根据所述当前版本和所述目标执行轨迹文件,确定所述当前版本对应的第一代码覆盖数据之后,所述方法还包括:
8.根据权利要求1所述的代码覆盖率的统计方法,其特征在于,所述当前版本为每个预设需求分支对应的分支源代码;所述根据所述当前版本和所述基准版本,生成差异文件,包括:
9.一种代码覆盖率的统计装置,其特征在于,所述统计装置包括:
10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至权利要求8中任一项所述的代码覆盖率的统计方法的步骤。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com