根据每个测试人员发现的错误数量预测错误总数

机器算法验证 可能性 预测 捕获标记重新捕获
2022-04-11 05:36:41

假设 n 位测试人员在给定时间段内独立测试同一个应用程序。每个测试人员都发现了一组给定的错误(一些错误被多个测试人员检测到)。

例如:

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

(序列号一旦被某个测试人员检测到,就会根据检测顺序分配给每个错误,但是,测试人员不知道彼此,也不知道分配的序列号。)

假设所有错误都有相同的概率被检测到。

(但不假设所有测试人员都同样有才华)

我可以计算有 x 个未检测到的错误的概率吗?如何?

1个回答

这是一个捕获重新捕获问题,在这种情况下,访问次数超过两次,维基百科简要讨论过,Rcapture包上的 R小插图更详细地讨论了这个问题

你的假设

  1. 不同的测试人员有不同的技能(t)
  2. 每个错误都同样可能被捕获(不是h)
  3. 一个错误被捕获的概率不受它之前是否被捕获的影响(不是b)

建议一个Mt模型。使用 R 代码

library(Rcapture)
bugscaught <- matrix(c(1,1,1,1,1,0,0,0,0,0,
                       0,0,1,0,1,1,1,0,0,0,
                       1,0,1,0,1,0,0,1,1,1),ncol=3)
closedp(bugscaught)

给出以下

Number of captured units: 10 

Abundance estimations and model fits:
              abundance   stderr  deviance  df     AIC
M0                 13.1      3.1     6.781   5  23.614
Mt                 12.9      3.0     6.128   3  26.961
Mh Chao            26.3     20.9     2.472   4  21.305
Mh Poisson2       115.9    237.3     2.472   4  21.305
Mh Darroch        696.0   2253.0     2.472   4  21.305
Mh Gamma3.5      4565.3  19853.4     2.472   4  21.305
Mth Chao           25.6     20.0     1.708   2  24.541
Mth Poisson2      113.6    232.5     1.708   2  24.541
Mth Darroch       699.7   2266.0     1.708   2  24.541
Mth Gamma3.5     4714.8  20515.0     1.708   2  24.541
Mb                 16.7     13.7     6.526   4  25.359
Mbh                 1.0     13.6     5.751   3  26.584

并且对于一个Mt模型建议对 12.9 个错误的中心估计,标准差为 3,所以我建议从 10 到 20 的范围。如果你想更深入地挖掘,那么其中的内容closedp(bugscaught)$glm$Mt可能会有有用的信息。

如您所见,如果您假设某些错误会比其他错误更难找到,那么根据您的模型,中心估计可能会达到数千个。