[发明专利]一种代码覆盖率的获得方法和设备有效
申请号: | 201210102815.1 | 申请日: | 2012-04-10 |
公开(公告)号: | CN103365771A | 公开(公告)日: | 2013-10-23 |
发明(设计)人: | 黄利;桂锡兰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京鑫媛睿博知识产权代理有限公司 11297 | 代理人: | 龚家骅 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 覆盖率 获得 方法 设备 | ||
技术领域
本申请涉及了计算机技术领域,尤其是涉及了一种代码覆盖率的获得方法和设备。
背景技术
gcov/lcov(代码覆盖率测试工具,可以用于查看测试时代码执行的覆盖率)是gnu/gcc工具库中的组件,与gcc编译器共同实现对C/C++文件的语句覆盖测试和分支覆盖测试等。以gcov为例,则gcov的执行依赖于.gcda文件和.gcno文件,且gcov可以根据.gcda文件和.gcno文件生成相应的.c.gcov或.cpp.gcov,且.c.gcov或.cpp.gcov中记录了代码覆盖率信息。
具体的,gcov的分析过程包括如下步骤:
(1)gcov读取.gcno文件中的程序流图信息,建立被测源文件中每个函数的程序流图;
(2)gcov读取.gcda文件的信息,将已知的弧执行次数填入到程序流图中;
(3)gcov根据节点入度等于出度的原理推算出其他的弧与基本块的执行次数;
(4)gcov读取.gcno文件的信息,根据对应关系计算出每行代码的执行次数;
(5)gcov计算对应分支的起始位置;
(6)gcov输出计算结果。
在实现本申请的过程中,发明人发现现有技术中至少存在以下问题:
现有gcov/lcov等工具,行代码覆盖率的计算方式为:行代码覆盖率=测试活动后走过的代码行数/测试活动后走过的代码文件的所有代码行数*100%;在采用该行代码覆盖率计算方式时,无法精确表明哪些代码没有被测试。
发明内容
本申请实施例提供一种代码覆盖率的获得方法和设备,以精确表明哪些代码没有被测试。
为了达到上述目的,本申请实施例提供一种代码覆盖率的获得方法,包括:
在对测试对象的多个源代码文件进行代码覆盖率测试时,获得测试过程中被执行的代码行数以及被编译的所有代码行数;
计算所述测试对象的行代码覆盖率为:所述被执行的代码行数/所述被编译的所有代码行数。
本申请实施例提供一种代码覆盖率的获得设备,包括:
获得模块,用于在对测试对象的多个源代码文件进行代码覆盖率测试时,获得测试过程中被执行的代码行数以及被编译的所有代码行数;
计算模块,用于计算所述测试对象的行代码覆盖率为:所述被执行的代码行数/所述被编译的所有代码行数。
与现有技术相比,本申请实施例至少具有以下优点:本申请实施例中,通过被执行的代码行数与被编译的所有代码行数计算行代码覆盖率,可以更清晰地反馈出测试活动的程度,以精确表明哪些代码没有被测试。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种代码覆盖率的获得方法流程示意图;
图2是本申请实施例二提供的一种代码覆盖率的获得设备结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本申请实施例一提供一种代码覆盖率的获得方法,用于计算代码覆盖率(Code Coverage),该代码覆盖率是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标,其可以细分为行代码覆盖率、函数覆盖率、分支覆盖率、条件覆盖率等,本申请实施例中是针对行代码覆盖率的获得方法,如图1所示,该方法至少可以包括以下步骤:
步骤101,在对测试对象的多个源代码文件进行代码覆盖率测试时,获得测试过程中被执行的代码行数以及被编译的所有代码行数。
步骤102,计算测试对象的行代码覆盖率为:被执行的代码行数/被编译的所有代码行数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210102815.1/2.html,转载请声明来源钻瓜专利网。