一、概述
代码覆盖率(Code coverage)是衡量软件测试质量的一个重要指标。
它描述了当一个特定的测试套件(test suite)运行时,程序源代码被执行的程度。例如,一些更具体的覆盖率指标有:
Statement Coverage:描述源代码中有哪些代码行被执行,各自被执行了多少次
Branch coverage:一般用于描述if语句/或其它条件语句的各分支的执行情况
Function coverage:顾名思义,描述源代码中有哪些函数被执行了
······
代码覆盖率测试工具可以帮助我们发现代码中未被测试的部分,
而gcov则是一款和GCC配套发布的[经典]代码覆盖率分析工具(仅仅是对覆盖率信息文件进行分析)。
同为代码覆盖率分析工具,GCOV&LCOV&GCOVR之间的差异:
GCOV:与GCC配套,不需要安装,生成纯文本文件
LCOV:需要安装,跨平台麻烦,生成HTML页面
GCOVR:需要安装,跨平台容易,且指令比LCOV少,生成HTML页面
PS. 不仅仅是C或者C++,GCC所支持的语言它们应该都是支持的,例如说Fortran
二、关于gcov的安装
gcov是随gcc一起发布的,并不需要独立安装,设法装上gcc就OK了。对于WINDOWS系统,通过MinGW安装gcc相关的组件即可使用gcov。而对于Linux系统而言,通常会默认安装gcc,因此一般不需要自己安装。
三、代码