在之前的代码覆盖率浅谈中其实已经谈到了关于行覆盖的缺陷,但由于行覆盖足够简单,还是被广泛使用着。另我惊讶的是,作为一个商业的C++代码覆盖率工具CoverageMeter,它明确指出,不提供行覆盖数据,因为他们认为行覆盖不准确。

下面是原文:

CoverageMeter does not support line coverage because this kind of measurement and statistic is not accurate.

This metric depends on how you format the code

然后,列举了同样一段代码的4种写法,行覆盖结果千差万别。

第一种写法,行覆盖率33%

int main()
{
    HIT   if (true) return 1;
    MIS   foo();
    MIS   return 0;
}

第二种写法,行覆盖率50%

int main()
{
    HIT   if (true)
    HIT       return 1;
    MIS  foo();
    MIS  return 0;
}

第三种写法,行覆盖率66%

 int main()
{
    HIT   if (true)
    HIT       return 1;
    MIS   foo(); return 0;
}

第四种写法,行覆盖率100%

int main()
{
    HIT   if (true) return 1; foo(); return 0;
}

其实,要证明行覆盖不准确有很多方法。上面的方法只是其中一种,或许有人还会对上面提到的理由提出反驳,因为他们觉得他们的代码都是遵循一定的代码规范的,像将多个语句写在同一行是绝对不允许的。是的,没错。你能够证明上面的理由不够充分,却无法推翻它的结论。

转载于:https://www.cnblogs.com/coderzh/archive/2009/07/11/1521739.html

CoverageMeter中关于“line coverage”不准确的解释相关推荐

  1. 艺赛旗RPA 网页处理系列(一):在网页中的可变元素如何准确定位

    目前艺赛旗RPA已经更新到8.0版本,可以让所有用户免费下载试用http://www.i-search.com.cn/index.html?from=line1 (复制链接下载) 在网页中的可变元素如 ...

  2. 职坐标c语言,C/C++知识点之c语言中的#line

    本文主要向大家介绍了C/C++知识点之c语言中的#line,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助. #line指令用于改变 __LINE__和__FILE__的内容. __ ...

  3. 关于python中的self,ins , cls的解释

    关于python中的self,ins , cls的解释 https://blog.51cto.com/10250691/1890078

  4. ViSP中识别AprilTag的C++实例代码解释

    VISP中识别AprilTag的C++实例代码解释 接着上一篇: VISP中识别AprilTag的C++实例代码与运行结果 先展示代码,一句一句解释吧 #include <visp3/detec ...

  5. fragtats中平均临近距离(PROX_MN)的具体解释

    平均临近距离PROX_MN   平均临近距离是斑块的面积总和除以某一斑块类型的所有斑块边缘到中心斑块边缘之间的最小距离的平方,它反应的是斑块到中心斑块之间的平均距离,距离越小则斑块的整体聚集程度越高. ...

  6. C#中i=i++值不变的一个解释

    在C#中i=i++值不变的一个解释 几乎每隔一段时间就有人询问i++和++i的区别,这两者之间无非就是前缀和后缀,先执行再+1还是先+1再执行的问题,这没有什么好说的. 前几天看到有人问在C#中,i= ...

  7. php中的pecl是什么,什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释

    什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释 概述 关于PEAR,PECL这两个东西,初学PHP的时候就知道,但是貌似用的人很少再加上以前也是在Windows下做开发,所以了解的不多 ...

  8. Asp.Net中几种相似的标记符号:解释及用法 还有许多细节

    1.Asp.Net中几种相似的标记符号: < %=...%>< %#... %>< % %>< %@ %>解释及用法 答: < %#... %&g ...

  9. Asp.Net中几种相似的标记符号: 解释及用法

    Asp.Net中几种相似的标记符号: < %=...%>< %#... %>< % %>< %@ %>解释及用法 1.< %#... %>: ...

最新文章

  1. 你不需要jQuery(四)
  2. android 拖动的view,Android实现随意拖动View效果
  3. 可变车道怎么走不违章_可变车道怎么才能正确通行?老司机来告诉你什么才是正确的走法。...
  4. 【Python】卸载完Python3 之后 Python2 无法打开IDLE
  5. eclipse的jsp第一行代码报错_机器学习之AdaBoost算法及纯python代码手工实现
  6. [转载]DB2数据库移植罕见成绩片面理睬(4)
  7. NOIP2021:游记
  8. 笑死了,打错一个字,竟然...
  9. 江苏省计算机一级题库软件百度云,江苏省计算机一级B题库11
  10. 神经网络之文本情感分析(一)
  11. php默认站点,PHP学习之Apache修改默认站点的目录
  12. php的Allowed memory size of 134217728 bytes exhausted问题解决办法
  13. socket端口重定向(python示例)
  14. MySQL学习(五、数据操作语言DML和事务处理语言TCL)
  15. 【备份】golang开发环境搭建
  16. 在使用mac和windows双系统中常见的移动硬盘的格式
  17. 文本对比,文本差异并排对比显示实现
  18. Java程序员:内事不决问百度,外事不决问谷歌,一遇面试就变捞
  19. Java学习笔记:公司账目流水表生成报表1
  20. 【JavaScript】- 打地鼠游戏(定时器嵌套延时器)

热门文章

  1. 【算法系列 二】Stack
  2. zabbix登山路——简单监控_各项参数解析
  3. 北大校长王恩哥送给毕业生的十句话
  4. loadrunner11下载地址
  5. 北理通信男找工作的经历及心得
  6. Lion的发送E-mail的类
  7. 通用权限管理系统组件 中集成多个子系统的单点登录(网站入口方式)附源码
  8. 冬季生存法则,不得不看!
  9. 大神整理的python资源大全
  10. aaronyang的百度地图API之LBS云 笔记[开发准备]