标题: 代码覆盖率:80%,不能少
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5799
编号 622
注册 2004-7-7


发表于 2010-9-29 08:46 资料 文集 短消息 看全部作者
代码覆盖率:80%,不能少

一大早,一个年轻的程序员问大师:
“我准备写一些单元测试用例。代码覆盖率应该达到多少为好?”
大师回答道:
“不要考虑代码覆盖率,只要写出一些好的测试用例即可。”
年轻的程序员很高兴,鞠躬,离去。
之后没多久,第二个程序员问了大师同样的问题。

大师指着一锅烧沸的水说:

“我应该往这个锅里放多少米?”
这个程序员看起来被难住了,回答道:
“我怎么会有答案?这取决于要给多少人吃,他们饿不饿,有什么菜,你有多少米,等等。”
完全正确,” 大师说。
第二个程序员很高兴,鞠躬,离去。
末了,来了第三个程序员问了大师同样的关于代码覆盖率的问题。
“百分之八十,不能少!” 大师一拳锤在桌子上,用严厉的口气回答道。
第三个程序员很高兴,鞠躬,离去。
回复完这个之后,一个年轻的实习生走到大师身边:
“大师,今天我无意中听到了你对同一个代码覆盖率问题给出了三个不同的答案。为什么?”
大师从椅子上站起来:
“给我泡点新茶,我们聊聊这个。”
当杯子里倒满了冒着热气的绿茶后,大师开始说:
“这第一个程序员是个新手,刚刚开始学测试。目前他有大量的程序都没有测试用例。他有很长的路要走;现在对他要求代码覆盖率只会打击他,没有什么用处。最好是让他慢慢的学会写一些测试用例,测试一下。他可以以后再考虑代码覆盖率。”
“而这第二个程序员,不论对编程还是测试都是十分的有经验。我以问作答,问她应该往锅里放多少米,使她明白决定测试用例多少的因素有很多,她比我更知道这些因素——毕竟是她自己的代码。对这个问题没有一个简单的、直接的答案。以她的聪明完全能明白这个道理,正确的完成任务。”
“我明白了,” 年轻的实习生说, “但是如果没有一个简单直接的答案,那你为什么告诉第三个程序员‘百分之八十,不能少’呢?”
大师笑的前仰后合,绿茶都喷了出来。
“这第三个程序员只想得到一个简单的答案——即使根本没有简单的答案 … 而且即使有答案她也不会按答案做。”
年轻的实习生和头发斑白的大师在沉思中喝完茶。
[英文出处]:Code coverage goal: 80% and no less!


顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5799
编号 622
注册 2004-7-7


发表于 2010-9-29 21:49 资料 文集 短消息 看全部作者
在本文中,指所有单元测试用例执行时执行到的被测代码的语句数与被测代码总语句数的比例。


顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5799
编号 622
注册 2004-7-7


发表于 2010-9-30 14:44 资料 文集 短消息 看全部作者
理论上要求所有测试的总覆盖率要达到100%,单元测试覆盖率不到100%是很正常的。其实覆盖率也不能当作单一指标来使用。覆盖率100%不代表bug检出率100%。
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2024-10-1 18:25
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.009413 second(s), 9 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP