写点什么

需要 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:301460
用户头像

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

关注

评论

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

保护C#代码的艺术:深入浅出代码混淆技术

Partisia Blockchain或被低估,有望在后续市场迎来爆发

加密眼界

三大能力升级!大模型开启智能客服新篇章

中关村科金

智能客服 大模型

新员工入职培训时长缩短36%!智能陪练产品再升级

中关村科金

​比特币 NFT 繁荣生态:深入了解 Runestone

NFT Research

NFT NFT\

一文读懂Partisia Blockchain,被严重低估的隐私区块链生态

BlockChain先知

APP上架流程解析

SD-WAN企业网络部署模式及适用企业类型

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

一文读懂Partisia Blockchain,被严重低估的隐私区块链生态

西柚子

倒计时4天!百度Create AI开发者大会“大模型与深度学习技术”论坛亮点抢鲜看!

百度安全

npm,registry,镜像源,npm切换源,yarn,cnpm,taobao,nrs

CoderBin

npm 镜像源 Node 切换镜像源 npm镜像源

参与 PenPad Season 2 获得勋章,还有海量 Scroll 生态稀缺权益

西柚子

Golang 状态机设计模式

俞凡

golang 最佳实践 设计模式

重磅揭秘:边缘计算平台技术优势为何突出?

3DCAT实时渲染

边缘计算平台

聚道云助力企业实现高效合同管理新方案!

聚道云软件连接器

案例分享

古城煤矿:手机扫一扫,设备“码上”见

草料二维码

二维码 草料二维码 干货分享

Golang 并发安全Map容器实践

俞凡

golang

让大模型落地有“技”可循

中关村科金

#大模型

一文读懂Partisia Blockchain,被严重低估的隐私区块链生态

股市老人

思维导图网页制作!这8个常用软件不容错过。

彭宏豪95

效率工具 思维导图 在线白板 办公软件 思维导图软件

Partisia Blockchain:被严重低估的隐私区块链生态

石头财经

C++ 解引用与函数基础:内存地址、调用方法及声明

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

Partisia Blockchain或被低估,有望在后续市场迎来爆发

大瞿科技

智能助力:大模型自动填写工单准确率达95%

中关村科金

大模型 智能填单

AI+BI,欢迎数据分析进入大模型时代

中关村科金

大模型 智能决策

一文读懂Partisia Blockchain,被严重低估的隐私区块链生态

股市老人

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