覆盖率 基础术语解释 基本块,基本块图,打桩,行覆盖率,分支覆盖率

基本块(Basic Block)

”A basic block is a sequence of instructions with only entry and only one exit. If any one of the instructions are executed, they will all be executed, and in sequence from first to last.”

这里可以把基本块看成一行整体的代码,基本块内的代码是线性的,要不全部运行,要不都不运行。

基本块图(Basic Block Graph)

基本块的最后一条语句一般都要跳转,否则后面一条语句也会被计算为基本块的一部分。 如果跳转语句是有条件的,就产生了一个分支(arc),该基本块就有两个基本块作为目的地。如果把每个基本块当作一个节点,那么一个函数中的所有基本块就构成了一个有向图,称之为基本块图(Basic Block Graph)。且只要知道图中部分BB或arc的执行次数就可以推算出所有的BB和所有的arc的执行次数。

打桩

意思是在有效的基本块之间增加计数器,计算该基本块被运行的次数,打桩的位置都是在基本块图的有效边上。

行覆盖率(line coverage)

源代码有效行数与被执行的代码行的比率。

分支覆盖率(branch coverage)

有判定语句的地方都会出现2个分支,整个程序经过的分支与所有分支的比率是分支覆盖率。注意,与条件覆盖率(condition coverage)有细微差别,条件覆盖率在判定语句的组合上有更细的划分。

发布了91 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/LU_ZHAO/article/details/104519628