C/C++代码覆盖率测试

1.gcov是一个测试代码覆盖率的工具,配合GCC共同实现对c/c++文件的语句覆盖和分支覆盖测试。gcov只在使用GCC编译的代码上工作。它与任何其他概要或测试覆盖机制不兼容。

2.gcov数据统计原理:gcov是使用 基本块BB 和 跳转ARC 计数,结合程序流图来实现代码覆盖率统计的。

3.基本块BB:如果一段程序的第一条语句被执行过一次,这段程序中的每一个都要执行一次,称为基本块。一般情况下BB的最后一条语句一定是一个跳转语句,跳转的目的地是另外一个BB的第一条语句,如果跳转时有条件的,就产生了分支,该BB就有两个BB作为目的地。

4.跳转ARC:从一个BB到另外一个BB的跳转叫做一个ARC。要想知道程序中的每个语句和分支的执行次数,就必须知道每个BB和ARC的执行次数。

5.程序流图:如果把BB作为一个节点,这样一个函数中的所有BB就构成了一个有向图。根据图论可以知道有向图中BB的入度和出度是相同的,所以只要知道了部分的BB或者ARC大小,就可以推断所有的大小。

转载

https://www.jianshu.com/p/183679e71334
https://testerhome.com/topics/6644
https://blog.csdn.net/conghuaxiansheng/article/details/72179483

猜你喜欢

转载自www.cnblogs.com/wallis123/p/10473144.html