写点什么

需要 100% 的测试覆盖率吗?

  • 2007-05-31
  • 本文字数:937 字

    阅读完需:约 3 分钟

多少测试才算够用呢?答案因人而异。有人会告诉你要做到 100%的测试覆盖率。另一些人却不这么想,他们认为这个问题的答案因测试代码质量的不同而不同,而衡量测试覆盖率并不能说明这些测试及被测试代码的质量。

来自 ObjectMentor 的 Tim Ottinger 写道:“如果你正在进行真正的 TDD,那么你的测试覆盖率应该很高,因为你只有编写出产品级代码才能满足测试的部分。”这很巧妙地表明,TDD 对已有代码的测试覆盖率几乎没有什么影响。

我并不是说代码覆盖率应该很低,只是说随着我们的进展,我们写的每个独立的测试应该对我们的代码覆盖率影响非常小……这是一个很令我感兴趣的想法。

通过示例,Andy Glover 向我们说明了代码覆盖的度量可能会给我们带来了错误的安全感。对于代码覆盖的度量可能会告诉你哪些代码没有被测试,但不能准确地告诉你哪些代码 _ 被 _ 测试过了。同样地,Tobias Schlitt 认为:对代码覆盖的度量是很重要的,因为它会告诉我们哪部分是我们没有覆盖到的。

诚然,一个测试套件的高代码覆盖率根本不能说明代码经过了很好的测试(假如你自己不写代码和测试的话)。但是反过来说是成立的:一个较低的代码覆盖率毫无疑问还是意味着这个测试套件并不充分。就让我来深入分析一下代码覆盖率问题,看看它会给你带来什么吧。

测试大师 Testivus 认为“结果因情况而异”是最好的解释。对于那些刚开始写测试的人来说:

现在他写了很多代码,但还没有测试代码,那他还有很长的路要走。此时把重点放在代码覆盖率上的话将会很郁闷,而且毫无用处。他现在最好开始写一些测试并运行这些测试,覆盖率问题是他之后才需要考虑的事情。

对于那些有经验的开发者来说:

……所需的测试数量依赖于很多因素,而且在“需要考虑哪些因素”这个问题上,她比我更清楚,毕竟代码是她写的。虽然没有那种简单明了的答案,但她还是足以应付这个事实。

最后,对于那些只想得到答案的人来说:

第三个程序员想得到仅仅是简简单单的答案——即便事实上简简单单的答案并不存在……而且(即便有)他在稍后并不会遵循这些答案。

就象在这些 Blog 中说的那样,测试的关注点在于测试给质量检验带来的益处。从这个角度出发,我们应该意识到,对测试覆盖率的度量可以告诉我们遗漏了什么,而不是告诉我们哪些做的很好。

查看英文原文: 100% Test Coverage?

2007-05-31 02:301473
用户头像

发布了 100 篇内容, 共 21.9 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

Vue进阶(幺陆陆):组件实例 $el 详解

No Silver Bullet

Vue 7月日更 $el

35岁的程序员被裁,电子版已问世

策划Java工程师

Java 程序员 面试 后端

2021最新Java高频精选面试题讲解,绝对干货

Java 程序员 面试 后端

2021网易Java高级面试题总结,面试篇

Java 程序员 面试 后端

2021谈一下当下最合适的Java架构,神操作!

Java 程序员 面试 后端

25K大牛甩出的超详细面试总结,已获万赞

策划Java工程师

Java 程序员 面试 后端

详解Java内存模型

程序员阿杜

Java JVM Java虚拟机

Linux之vmstat命令

入门小站

Linux

2021最新阿里Java面经,一篇文章帮你解答

Java 程序员 面试 后端

Vue进阶(幺柒柒):Vue 应用 Sass、Scss、Less 和 Stylus

No Silver Bullet

Vue 7月日更 预处理器

2021最新网易Java面经,面试必会

Java 程序员 面试 后端

2021最新腾讯Java高级面试题总结,Java篇

Java 程序员 面试 后端

网络攻防学习笔记 Day91

穿过生命散发芬芳

网络攻防 7月日更

java 虐“狗”日常

喵叔

7月日更

极客时间-大数据-作业三-HBase 创建表

西伯利亚鼯鼠

35岁程序员半月4轮面试,项目实战

策划Java工程师

Java 程序员 面试 后端

来自跨越边界的急件,我推荐你用这三步,走出锁住你的圈套。

叶小鍵

外包学生管理系统的架构设计

架构0期-Bingo

2021谈一下当下最合适的Java架构,感悟分享

Java 程序员 面试 后端

20道高频面试题(含答案),看完豁然开朗

Java 程序员 面试 后端

35岁的程序员被裁,90%的人看完都说好

策划Java工程师

Java 程序员 面试 后端

35岁以后的Java程序员出路在哪里?最全的BAT大厂面试题整理

策划Java工程师

Java 程序员 面试 后端

35岁程序员半月4轮面试,HR的话扎心了

策划Java工程师

Java 程序员 面试 后端

面试官:聊聊JVM吧?

程序员阿杜

Java JVM JVM原理

架构实战营 模块 4 作业

Geek_8c5f9c

架构实战营

2021最新华为Java校招面试题,看完直呼内行

Java 程序员 面试 后端

34岁Java开发大叔感慨,100%好评!

策划Java工程师

Java 程序员 面试 后端

350道Java面试真题分享,王者笔记!

策划Java工程师

Java 程序员 面试 后端

在线生成制作Pornhub的微信公众号封面图

入门小站

工具

25K大牛甩出的超详细面试总结,砥砺前行!

策划Java工程师

Java 程序员 面试 后端

【Flutter 专题】131 图解 AnimatedList 动画列表

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

需要100%的测试覆盖率吗?_研发效能_Amr Elssamadisy_InfoQ精选文章