估算平均无故障时间的方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) 估计程序中固有的错误总数; (2) 为使MTTF达到10小时, 必须测试多少 个错误?
1)MTTF = IT / ( k * (Et - Ec(t)) ) 所以0.4 = IT / ( k * (Et - 100) ) 2 = IT/ ( k * (Et - 300) ) 所以可以求出Et =350 2) 由1)可以知道 k = IT / 2(Et - Ect) = 100000 / 2(350 - 300) = 100000 / 100 = 1000; 所以 MTTF = 10 = 100000 / 1000(Et - Ec) = 100/(Et Ec) = 100/(350 - Ec) 所以Ec = 340 340-300 =40个错误。
其中,K为常数,它的值应该根据经验选 取。统计数字表明,K的典型值是200.
Fra Baidu bibliotek
在公式中,IT已知,Ec(Ʈ)和MTTF可 以通过测试得知,因此,K和ET未知。 如果可以得到Ec(Ʈ)和MTTF的两组测 试数据,则可以计算出K和ET。 如果仅可以得到Ec(Ʈ)和MTTF的一组 测试数据,则可以将K取为典型值200, 计算出ET。
4、估计错误总数ET的方法
两种方法:
植入错误法 分别测试法 参考书P82 软件缺陷数目估计中撒播模型
4.1 植入错误法
人为的植入错误数为Ns,经过一段时间测试 后发现ns个植入的错误,此外还发现了n个原 有的错误。 如果测试方案发现植入错误和发现原有错误 的能力相同,则估计程序中原有的错误总数 为:
开始测试前共有潜藏错误(24/6)*20 = 80 个 由于甲发现并改正了20个错误,使MTTF达到了 10小时, 根据公式:
有:10 = 24000 / (K *(80 - 20)),则K=40; 利用同一公式:60 = 24000 / (40 * (80 – Ec)), 所以 Ec = 70,测试员甲已经改正了20个错误, 因此还需要改正50个错误。
(2)平均无故障时间MTBF与剩余的错 误数成反比。
3、平均无故障时间的估算
假设每一个发现的错误都改正了,剩余 的错误为:Er(Ʈ)=ET - Ec(Ʈ) 单位长度程序中剩余的错误数为: (ET - Ec(Ʈ))/ IT
3、平均无故障时间的估算
平均无故障时间与单位长度程序中剩余 的错误数成反比:
4.2 分别测试法
两个测试员彼此独立的测试同一个程序,测 试一段时间后测试员甲发现错误数为B1,测 试员乙发现错误数为B2,两个测试员发现的 相同错误数为bc 估计测试前程序中的错误总数为:
例题2
某公司对已开发的软件产品采用错误植入模型 来进行测试和评估。评测部对待测软件人为植 入了17个故障;在开始测试的一小段时间内, 发现了300个固有故障;发现了植入的故障3个, 被测程序的机器指令条数为3*105。 (1) 请估算出被测程序的固有故障的个数N的值。 (2) 若通过一段时间后,发现的错误个数为 1600时,请估算此程序的平均无故障时间。 (3) 若要求把此平均无故障时间再提高2倍,应 至少再排除多少个错误?
(1) ET = 17/3*300 =1700 (2) MTTF = 3*105 / 200 * (1700 -1600) =15 h
(3) Ec = 1700 - 3*105 / 200*30 =1650 还需改正1650-1600 =50个错误。
例题3
在测试一个长度为24000条指令的程序时, 第一个月由甲乙两名测试员各自独立测 试这个程序。经过一个月测试后,甲发 现并改正了20个错误,使MTTF达到10h。 与此同时,乙发现了24个错误,其中6个 甲也发现了。以后由甲一个人继续测试 这个程序。 (1)刚开始时程序中总共有多少个潜藏 的错误? (2)为使MTTF达到60h,必须再改正多 少个错误?
估算平均无故障时间的方法
孙旭光
1、符号
ET —— 测试之前程序中错误总数 IT —— 程序长度(机器指令总数) Ʈ —— 测试时间 Ed(Ʈ)—— 在0至Ʈ之间发现的错误数 Ec(Ʈ)—— 在0至Ʈ之间改正的错误数 Er(Ʈ)—— 剩余的错误数
2、基本假定
(1)根据经验数据,单位长度里的错误 数ET/IT 近似为常数。统计表明,在测试 之前每1000条指令中大约有5-20个错误。
公式的作用
1、估算平均无故障时间的公式,可以评价软 件测试的进展情况。 2、也可以根据软件平均无故障时间的要求, 估计需要改正多少个错误之后,测试工作才 能结束。
例题1
对一个包含10000条机器指令的程序进行 一个月集成测试后,总共改正了15个错 误,此时MTTF=10h,经过两个月的测试 后,总共改正了25个错误,MTTF=15h。 (1)程序中总的错误数为多少? (2)为达到MTTF=100h,还要改正多少 个错误?
(1) 10 =10000/K(ET - 15) 15 =10000/K(ET - 25) K = 100/3 ET =45
(2) Ec = 45 - 3 =42
还需改正42-25 = 17个错误。
练习
对一个长度为100,000条指令的程序进行 测试,记录下来的数据如下:
测试开始, 发现错误个数为0; 经过160小时的测试, 累计改正100个错误, 此时, MTTF = 0.4小时; 又经过160小时的测试, 累计改正300个错误, 此时, MTTF = 2小时;