代码覆盖率工具BullseyeCoverage研究

本文介绍了代码覆盖率的概念,如语句覆盖、判定覆盖、条件覆盖和路径覆盖,并详细讲解了BullseyeCoverage这款C/C++代码覆盖率工具的安装、使用方法及其优势。BullseyeCoverage支持多种编译器,提供分支覆盖率,并在测试过程中记录代码执行情况。
摘要由CSDN通过智能技术生成

1.       术语定义

1.1.       代码覆盖率

代码覆盖率 =代码的覆盖程度,一种度量方式。

1.2.       语句覆盖(StatementCoverage)

又称行覆盖(LineCoverage),段覆盖(SegmentCoverage),基本块覆盖(BasicBlockCoverage),这是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了。

这里说的是“可执行语句”,因此就不会包括像C++的头文件声明,代码注释,空行,等等。非常好理解,只统计能够执行的代码被执行了多少行。

需要注意的是,单独一行的花括号{} 也常常被统计进去。

语句覆盖常常被人指责为“最弱的覆盖”,它只管覆盖代码中的执行语句,却不考虑各种分支的组合等等。

1.3.       判定覆盖(DecisionCoverage)

又称分支覆盖(BranchCoverage),所有边界覆盖(All-EdgesCoverage),基本路径覆盖(BasicPathCoverage),判定路径覆盖(Decision-Decision-Path)它度量程序中每一个判定的分支是否都被测试到了

1.4.       条件覆盖(ConditionCoverage)

它度量判定中的每个子表达式结果truefalse是否被测试到了。

1.5.       路径覆盖(PathCoverage)

又称断言覆盖(PredicateCoverage)它度量了是否函数的每一个分支都被执行了 这句话也非常好理解,就是所有可能的分支都执行一遍,有多个分支嵌套时,需要对多个分支进行排列组合,可想而知,测试路径随着分支的数量指数级别增加。

       这是最强的覆盖,一般代码覆盖率工具都不支持,BullseyeCoverage也不支持。

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 113
    评论
评论 113
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值