问题
单项选择题
在某个长度(机器指令条数)为105的程序模块中随机地人为植入10个错误,然后由一个测试组进行测试,结果一共发现有160个错误,其中有两个是人为播种植入的错误。如果以上测试结果基于该测试过程中未引入新的错误,则可以估算出被测程序模块中将会遗留下 (63) 个未被发现的隐藏错误。
A.168
B.300
C.632
D.800
答案
参考答案:C
解析:[要点解析] 根据题干中给出的信息,可将错误随机植入模型定义成为估算某软件所含有固有错误的具体数目N,接着在此软件中人为随机植入NS个错误数,然后进行比较软件的测试。如果通过测试发现了M个固有错误,则其中发现的人为随机植入错误数有MS个。
由于“以上测试结果基于该测试过程中未引入新的错误”,因此可以进一步假设,人为随机植入NS个错误数后在故障的出现概率等同于植入错误数之前故障的出现概率,即将程序模块单位长度故障率认为是一个常数,则得到[*]。该等式变形后得到N=[*]×NS。
将题干中给出的数据整理后得出,NS=10,M=160,MS=2。于是可估算出程序中错误的总数N:
N=[*]×NS=[*]=800个
被测程序模块中将会遗留下未被发现的隐藏错误数=800-160-(10-2)=640-8=632。