分享一下,关于估算程序中的错误总数

2010-12-08  王艺 

前几天前辈问了我一个问题,大意如下:
系统地测试同一个系统,独立的,我发现了30个Bug,另一个人发现了40个bug,其中有15个是相同的。
那么,这个系统有多少个Bug
 
起初我以为是 15+15+25,就是去掉重复的一个15,是55个
可是错了
想了几天,最后发出去问大家,得到了解答
原来是 30/(15/40)
 
下面是一位网友给出的分析:
一个实践问题:
    “有一口鱼塘,不知道其中由多少条鱼,如何才能估算出池塘中的鱼的数量?”
    首先,从鱼塘中打捞出一些鱼(假设数量为m);
    将这些鱼做上记号,然后将其放回鱼塘;
    等待一段时间,等鱼均匀分布在鱼塘中之后,再次打捞上来一些鱼(假设数量n);
    统计第二次打捞上来的鱼种的带记号者(假设数量为p);
    计算得出鱼塘中鱼的数量为s=m/(p/n)
 
对这个答案最简单的理解是:
    假设第一次做了记号的鱼在鱼塘里均匀分布的,第二次打捞上来的n条鱼中有p条是有记号的,则说明记号的鱼的分布密度是p/n,鱼塘中一共有m条友记号的鱼,当然鱼的总数量就是s=m/(p/n)
 
   再回到原题:
    我发现了30个缺陷(相当于第一次打捞的鱼m),另一个人发现了40个缺陷(相当于第二次打捞上来的鱼n),两者相同的是15个(相当于p),所以答案是 30/(15/40)=80。
 
好啦就是这样~
祝大家工作开心
 
528°/5209 人阅读/8 条评论 发表评论

张林  2010-12-08

”鱼在鱼塘里均匀分布的“?通常用20/80法则量度一下!


王艺  2010-12-09

张林: ”鱼在鱼塘里均匀分布的“?通常用20/80法则量度一下!
不懂,求详细解释


程守标  2010-12-09

有点不明白,为甚么说你发现的30个缺陷相当于第一打捞的鱼数,而不能说另一个人发现的40个缺陷相当于第一打捞的鱼数呢?


丁宏达  2010-12-10

但是你能说系统中bug也是平均分布的吗


王艺  2010-12-13

程守标: 有点不明白,为甚么说你发现的30个缺陷相当于第一打捞的鱼数,而不能说另一个人发现的40个缺陷相当于第一打捞的鱼数呢?
都可以的~


王艺  2010-12-13

丁宏达: 但是你能说系统中bug也是平均分布的吗
我就在想这个问题,在我想出这个问题之前,这无疑是比较优秀的答案了~


程守标  2010-12-14

王艺: 都可以的~
结果是一样的哦,可能那天我计算结果算错了,哎,算术没学好


王艺  2010-12-14

程守标: 结果是一样的哦,可能那天我计算结果算错了,哎,算术没学好
呵呵~


登录 后发表评论