邵麗麗
(菏澤學(xué)院計算機與信息工程系,山東菏澤274015)
Shooman模型及其應(yīng)用研究*
邵麗麗
(菏澤學(xué)院計算機與信息工程系,山東菏澤274015)
Shooman模型用于軟件開發(fā)的測試階段,利用測試中的統(tǒng)計數(shù)據(jù)推測錯誤的產(chǎn)生頻度,以估算軟件可靠性,從而控制軟件的質(zhì)量.對Shooman模型公式進行推導(dǎo),得到快速估算程序中固有錯誤總量的公式,并舉例說明其應(yīng)用.
軟件平均無故障時間;Shooman模型;應(yīng)用
軟件測試階段的根本目標(biāo)是消除錯誤,保證軟件可靠性,以控制軟件的質(zhì)量.那么什么是軟件可靠性呢?對于軟件可靠性有許多不同的定義,而多數(shù)人認為:軟件可靠性是程序在給定的時間間隔內(nèi),按照軟件需求規(guī)格說明書的規(guī)定成功運行的概率.軟件可靠性常用定量指標(biāo)來衡量,定量指標(biāo)是指能夠以
數(shù)字概念來描述可靠性的數(shù)學(xué)表達式中所使用的量.其常用指標(biāo)是軟件平均無故障時間MTTF,而估算MTTF的公式,即Shooman模型.
軟件平均無故障時間MTTF是指系統(tǒng)規(guī)格說明書中規(guī)定的成功運行的平均時間,它主要取決于系統(tǒng)中潛伏的錯誤的數(shù)目,下面介紹估算MTTF的hooman模型.
在估算MTTF的過程中使用下述符號表示有關(guān)的數(shù)量:
ET——測試之前程序中錯誤總數(shù); IT——程序長度(機器指令總數(shù));
t——測試(包括調(diào)試)時間; Ed(t)——在0至t期間發(fā)現(xiàn)的錯誤數(shù); Ec(t)——在0至t期間改正的錯誤數(shù).
根據(jù)經(jīng)驗數(shù)據(jù),可以對Shooman模型作出下述假定.
1)單位長度里的錯誤數(shù)ET/IT近似為常數(shù),它不因測試與排錯而改變.統(tǒng)計數(shù)字表明,通常ET/IT值的變化范圍在0.005~0.02之間;
2)故障檢出率正比于軟件中殘留錯誤數(shù),而平均無故障時間MTTF與殘留錯誤數(shù)成反比;
3)故障不可能完全檢出,但一經(jīng)檢出立即得到改正,即調(diào)試過程中沒有引入新的錯誤.
Shooman模型可以下式表示:
式中,K是經(jīng)驗常數(shù).美國的一些統(tǒng)計數(shù)字表明,K的典型值是200.下面對公式的基本假定3)作分析.
設(shè)Ec(t)是在0至t期間改正的錯誤數(shù),t是測試時間(小時),則在同一段時間0~t內(nèi)的單條指令累積規(guī)范化排除故障數(shù)曲線εc(t)為:
根據(jù)公式的基本假定,故障檢出率正比于程序中殘留故障數(shù)及殘留故障數(shù)必須大于零,經(jīng)過推導(dǎo)得:
這就是故障累積曲線模型,曲線模型如圖1所示.
圖1 故障累積曲線模型示意圖
由圖1可見,故障累積曲線在開始時呈遞增趨勢,然后逐漸和緩,最后趨近于一條水平的漸近線ET/IT.
利用Shooman模型可以快速估算程序中原來的錯誤總量及常數(shù)的值,由公式
有:
若設(shè)t是軟件總的運行時間,m是軟件在這段時間內(nèi)出現(xiàn)的故障次數(shù),則有:
現(xiàn)在對程序進行兩次不同的互相獨立的功能測試,檢錯時間分別是t1,t2,假設(shè)t1 且 解上述方程組,得到ET的估計值和常數(shù)的估計值: 如前面所推導(dǎo)的,Shooman模型可快速推算出程序中固有的錯誤數(shù),如下面的問題: 對一個長度為100 000條指令的程序進行集成測試,記錄下來的數(shù)據(jù)如下: a)集成測試開始,沒有發(fā)現(xiàn)錯誤; b)經(jīng)過160h的測試,累計改正100個錯誤,此時,MTTF=0.4h; c)又經(jīng)過160h的測試,累計改正300個錯誤,此時,MTTF=2h; 根據(jù)上面的數(shù)據(jù)完成下列各題: 1)估計程序中固有的錯誤總數(shù); 2)為使MTTF達到10h,必須測試和調(diào)試這個程序多長時間? 3)給出MTTF與測試時間之間的函數(shù)關(guān)系.求解如下: 1)Shooman模型公式為: 這里:IT=105,MTTF1=0.4,Ec(t1)=100;MTTF2= 2,Ec(t2)=300. Shooman模型公式的推導(dǎo)結(jié)果為: 而λ1=1/MTTF1=2.5,λ2=1/MTTF2=0.5, 此外常數(shù)K為: 即:程序中固有錯誤總數(shù)ET=350,K=1000. 2)設(shè)MTTF=10,有 解得:Ec(t3)=340,已知:t1=160,t2=320, 由故障累積曲線公式Ec(t)=ET(1-e-kt)得: 解得:k≈0.01. 代入故障累積曲線公式: 解得:t3=1n(35)/0.01≈356h. 即:為使MTTF=10,測試和調(diào)試該程序需要花費356h. (3)因為Ec(t)=ET(1-e-kt),則ET-Ec(t)= ETe-kt,代人Shooman模型公式: 此即為MTTF與測試時間t之間的函數(shù)關(guān)系. 軟件可靠性是保證軟件成功運行的重要指標(biāo),軟件可靠性模型是軟件可靠性工程中研究最早、成果最多的一個領(lǐng)域.Shooman模型作為軟件可靠性模型之一,是進行軟件可靠性分析與評價的強有力的工具.本文對Shooman模型的應(yīng)用,僅在估算程序中固有錯誤總量和相關(guān)參數(shù)上作了初步探討,而其在軟件可靠性預(yù)測、分析和設(shè)計領(lǐng)域上有著更深遠、更廣泛的應(yīng)用. [1]張海藩.軟件工程導(dǎo)論[M].第5版.北京:清華大學(xué)出版社,2008. [2]黃錫滋.軟件可靠性、安全性與質(zhì)量保證[M].北京:電子工業(yè)出版社,2002. [3]Musa J D.軟件可靠性工程[M].韓柯,譯.北京:機械工業(yè)出版社,2003. [4]張瑩.利用最小二乘法估算Shooman模型中的參數(shù)及其程序?qū)崿F(xiàn)[J].濰坊學(xué)院學(xué)報,2003,(4):49-50. [5]馬颯颯,陳自力,趙守偉.軟件可靠性定量評估過程研究[J].計算機測量與控制,2005,13(5):503-505. [6]吳超,林家駿,俞嶺,等.軟件可靠性建模研究[J].計算機工程,2008,34(11):52-54. The Reseaerch on the Shooman Model and Its Applications SHAO Li-li (Dept.of Computer&Information Engineering,Heze University,Heze Shandong 274015,China) ShoomanModel is used in sof tware testing phase and it infers the software reliability by using statitic data of testing phase,so as to control the quality of sof tware.The fomula which rapidly estimates the total errors inherent in the program is acquired by deducing ShoomanModel,and the corresponding application is given. mean t ime to failure;ShoomanModel;application book=9,ebook=363 TP 311.52 A 1673-2103(2010)05-0052-03 2010-06-23 菏澤學(xué)院科研基金資助項目(XY07GX01) 邵麗麗(1979-),女,山東曹縣人,講師,碩士,研究方向:軟件工程與人工智能.3 應(yīng)用舉例
4 結(jié)語