问题 问答题

【问题1】
请用蒙特卡罗错误随机植入模型估算出被测程序模块中将会遗留下多少个未被发现的隐藏错误。请简要列出计算式子及计算过程。

答案

参考答案:设软件固有错误数为N,人为植入错误数为NS,测试中发现的固有错误数为M,测试中发现的人为植入错误数为MS,[*]
被测程序模块中将会遗留下未被发现的隐藏错误数为 800-160-(10-2)=640-8=632个

解析:这是一道要求读者掌握定量分析网络应用软件错误可靠性指标的计算题。本题的解答思路如下。
1)根据题干中给出的信息可将错误随机植入模型定义成为估算某软件所含有固有错误的具体数目N,可在此软件中人为随机植入NS个错误数,然后进行比较软件的测试,如果通过测试发现了M个固有错误,其中发现的人为随机植入错误数有MS个。
2)由题干关键信息“测试过程中未引入新的错误”,可以进一步假设人为随机植入NS个错误数后故障的出现概率等同于植入错误数之前故障的出现概率,即将程序模块单位长度故障率认为是一个常数。
3)借鉴题干中给出的“[*]”计算式子的思路,得到[*],该等式变形后得到[*],即将“软件固有错误数N”看成是“封闭图形的面积”;将“人为植入错误数NS”看成是“已知的大矩形的面积”;将“测试中发现的固有错误数M”、“测试中发现的人为植入错误数MS”分别看成是“在封闭图形内点的个数”、“大矩形内点的个数”。
4)将题干中给出的数据整理后得出,NS=10,M=160,MS=2。于是可估算出程序中错误的总数N:
[*]
5)被测程序模块中将会遗留下未被发现的隐藏错误数为:
800-160-(10-2)=640-8=632(个)
6)另外说明一点,蒙特卡罗错误随机植入模型存在以下几个局限性:①由于所有错误不可能等概率出现,而且错误有着连带相关性(一个错误可能隐藏另一错误),因此要想使随机植入的错误有助于正确地推算出固有的错误数,如何有效地在程度模块中选择和植入这类错误相对比较困难;②在检测错误时,错误一般不会等概率地被发现,而目在修复错误时也经常会引出一些新的错误,可见很难用简单的公式获得很理想的估计值;③随机植入的错误本身会增加检测发现错误和修改错误的:工作量。

单项选择题
单项选择题