Testing 根据发现的错误数量预测错误总数

Testing 根据发现的错误数量预测错误总数,testing,statistics,probability,Testing,Statistics,Probability,假设n名测试人员在给定的时间段内测试同一应用程序。每个测试人员都发现了一组给定的bug(一些bug是由多个测试人员检测到的) 例如: 测试人员1发现错误{1,2,3,4,5} 测试人员2发现错误{3,5,6,7} 测试人员3发现错误{1,3,5,8,9,10} 假设所有bug被检测到的概率相等,我可以估计我的应用程序中有多少未检测到的bug吗 编辑 更具挑战性的是:我如何计算出x个未被发现的bug的概率?以下是我就这个问题写的一篇博文: 当然,没有一个模型能准确地告诉你,但这比风中的一根手指要好

假设n名测试人员在给定的时间段内测试同一应用程序。每个测试人员都发现了一组给定的bug(一些bug是由多个测试人员检测到的)

例如:

测试人员1发现错误{1,2,3,4,5} 测试人员2发现错误{3,5,6,7} 测试人员3发现错误{1,3,5,8,9,10}

假设所有bug被检测到的概率相等,我可以估计我的应用程序中有多少未检测到的bug吗

编辑


更具挑战性的是:我如何计算出x个未被发现的bug的概率?

以下是我就这个问题写的一篇博文:

当然,没有一个模型能准确地告诉你,但这比风中的一根手指要好

假设所有bug被检测到的概率相等,我可以估计我的应用程序中有多少未检测到的bug吗

你的假设是不正确的,但是,回答你的问题

例如:

测试仪1发现错误{1,2,3,4,5}测试仪2发现错误{3,5,6,7}测试仪3发现错误{1,3,5,8,9,10}

你有10个已知的bug

测试仪1发现了50%的bug,测试仪2发现了40%的bug,测试仪3发现了60%的bug

将3个数字相乘(.50x.40x.60),得到.12

您可以估计您已经找到了12%的bug,或者还有85个bug需要找到

那么,为什么这个数字这么低呢

我们正在计算可能剩余的bug数量

让我们再举一个例子。假设您的3名测试人员发现了相同的6个bug。他们发现所有bug的可能性很高

这就是乘法的作用。乘以1x1x1得到1

让我们举一个更糟糕的例子。假设您的3名测试人员分别发现了6个独特的bug。我们必须假设还有更多的bug,因为没有人发现相同的bug

这就是乘法的作用。乘以.33x.33x.33可以得到0.04或4%的bug


我知道这似乎是个很低的数字。但当3个人分别发现6个独特的bug时,4%是保守估计。

任命一名项目破坏者,详情请参阅。基本思想是,您故意注入N个随机bug,然后经历一个测试周期。您的测试将检测到这些N中的一部分,通过将已知bug的数量除以该部分,您可以估计bug的总数。当然,这种方法有很多问题。

有趣的问题。我认为您没有指定足够的参数来提供解决方案。考虑运行次数和测试覆盖率。@ Paul Nathan:这就是我的全部输入。三名测试人员在没有任何方法或指导的情况下,对同一个应用程序进行了大约40个小时的测试。“假设所有bug被检测到的概率都相等”——这只是一个理论问题,还是你打算依赖你给出的答案?这似乎是一个相当危险的假设,如果你计划在结果指标上增加很多权重。非常感谢!建议的公式可以推广到两个以上的测试人员吗?一种可能性是将林肯指数的思想应用到每对测试人员身上。根据每一对,你会得到不同的估计,这很好!如果他们大致同意,也许你有一个很好的估计。如果它们非常不同,这表明估计值不是很可靠,可能是因为它的假设不成立。@JohnD.Cook您博客中的公式与参考文献中描述的公式不同:
(E1*E2)/S
,其中S是两个测试人员发现的共同集。如果E1={1233}和E2={234},那么S是{233}或者只是2。直觉上,这对我来说是有意义的:如果两个测试人员都发现了相同的bug,那么预期的bug数量就会减少(对测试人员的信任度会更高)。相反,如果两个测试人员只发现了几个相同的bug,我希望bug的总数要高得多。