沈曉美,吳立金,詹紅燕,韓新宇,唐龍利
(中國(guó)船舶工業(yè)綜合技術(shù)經(jīng)濟(jì)研究院,北京 100081)
在現(xiàn)代化戰(zhàn)爭(zhēng)中,武器在實(shí)戰(zhàn)過程的強(qiáng)弱與軟件可靠性直接關(guān)聯(lián)。艦船裝備軟件具備接口數(shù)據(jù)類型多、復(fù)雜網(wǎng)絡(luò)環(huán)境等特殊性,為軟件可靠性驗(yàn)證帶來挑戰(zhàn)。目前,艦船裝備軟件的可靠性驗(yàn)證和評(píng)價(jià)主要分為定性、定量?jī)蓚€(gè)方面。
軟件可靠性定性要求的驗(yàn)證研究多以失效模式為基礎(chǔ),形成定性檢查單,設(shè)計(jì)測(cè)試用例驗(yàn)證軟件是否滿足要求??煽啃远ㄐ砸蟮南嚓P(guān)研究多從異常測(cè)試數(shù)據(jù)、故障注入角度出發(fā),缺乏有效的手段。
軟件可靠性定量指標(biāo)主要通過可靠性測(cè)試、可靠性評(píng)估完成驗(yàn)證。目前軟件可靠性評(píng)價(jià)相關(guān)標(biāo)準(zhǔn)只有《GJB/在161-2012軍用軟件可靠性評(píng)估指南》,其中提出的可靠性模型用于軟件可靠性增長(zhǎng)測(cè)試,不完全適用于軟件可靠性驗(yàn)證測(cè)試??煽啃则?yàn)證研究存在針對(duì)某些典型軟件的貝葉斯驗(yàn)證優(yōu)化模型,對(duì)艦船裝備軟件不具備通用性。
該文提出了4種軟件可靠性驗(yàn)證方案,明確測(cè)試結(jié)束方式及通過標(biāo)準(zhǔn),通過軟件可靠性驗(yàn)證測(cè)試結(jié)果對(duì)軟件可靠性進(jìn)行評(píng)價(jià),為艦船裝備軟件提供一種普適性軟件可靠性驗(yàn)證與評(píng)價(jià)方法。
軟件可靠性是指在規(guī)定的條件下和規(guī)定的時(shí)間內(nèi),軟件不引起系統(tǒng)故障的能力/概率。
表1 軟件可靠性相關(guān)概念
軟件可靠性驗(yàn)證技術(shù)主要從定性驗(yàn)證、定量指標(biāo)驗(yàn)證兩個(gè)方面進(jìn)行研究。
1.2.1 軟件可靠性定性驗(yàn)證技術(shù)
軟件可靠性定性驗(yàn)證是指根據(jù)軟件的缺陷信息設(shè)計(jì)可靠性測(cè)試用例,判斷軟件是否滿足任務(wù)書提出的接口容錯(cuò)性要求、界面健壯性要求、數(shù)值邊界性要求以及可靠性措施等軟件可靠性定性要求是否滿足要求。
目前軟件可靠性定性驗(yàn)證主要分為兩個(gè)研究方向:一是收集軟件的缺陷模式(如需求設(shè)計(jì)類缺陷、功能類缺陷、接口類缺陷、代碼類缺陷),從缺陷模式角度設(shè)計(jì)用例驗(yàn)證軟件定性要求;二是研究不同故障注入的方式(如代碼變異算子、硬件故障等)驗(yàn)證軟件健壯性等定性要求。
1.2.2 軟件可靠性定量驗(yàn)證技術(shù)
軟件可靠性定量驗(yàn)證是指利用軟件可靠性驗(yàn)證測(cè)試結(jié)果對(duì)軟件的可靠性進(jìn)行定量評(píng)價(jià)。
目前軟件可靠性定量驗(yàn)證技術(shù)研究方向主要為軟件可靠性建模及其優(yōu)化,從可靠性驗(yàn)證模型、剖面獲取模型、測(cè)試方法等方面進(jìn)行深度研究。如針對(duì)某軟件貝葉斯可靠性評(píng)價(jià)模型、基于可靠度的測(cè)試方法、針對(duì)指標(biāo)類型對(duì)不同可靠性模型優(yōu)化等?,F(xiàn)有軟件可靠性定量驗(yàn)證研究方案對(duì)艦船裝備軟件不具有普適性。針對(duì)艦船裝備軟件交聯(lián)環(huán)境復(fù)雜、接口種類多信息量大等特性,研究對(duì)艦船裝備軟件具有普適性的可靠性驗(yàn)證方案具有重要的實(shí)際意義。
本文提出了4種軟件可靠性驗(yàn)證測(cè)試統(tǒng)計(jì)方案,具體驗(yàn)證統(tǒng)計(jì)方案如圖1所示。
圖1 艦船裝備軟件可靠性驗(yàn)證與評(píng)價(jià)方案
1)基于艦船裝備軟件測(cè)試數(shù)據(jù)進(jìn)行軟件可靠性驗(yàn)證測(cè)試,測(cè)試執(zhí)行過程從定時(shí)截尾方案、序貫測(cè)試方案、無失效運(yùn)行方案、貝葉斯無失效測(cè)試方案進(jìn)行。
2)軟件可靠性驗(yàn)證方案選擇策略。根據(jù)驗(yàn)證指標(biāo)類型、可承受的最大測(cè)試時(shí)間、測(cè)試環(huán)境的預(yù)期壽命、可承受的最大失效數(shù)、該類型軟件的質(zhì)量要求等因素選擇統(tǒng)計(jì)測(cè)試方案。
3)通過測(cè)試結(jié)果與統(tǒng)計(jì)測(cè)試方案中接收或拒收標(biāo)準(zhǔn)比較確定軟件可靠性測(cè)試是否合格。
定時(shí)截尾方案是指預(yù)先知道試驗(yàn)持續(xù)時(shí)間,可以在試驗(yàn)持續(xù)時(shí)間、使用方風(fēng)險(xiǎn)α和生產(chǎn)方風(fēng)險(xiǎn)β、檢驗(yàn)上限θ0、檢驗(yàn)下限θ1之間權(quán)衡,即對(duì)于給定的α、β、θ0、θ1,計(jì)算試驗(yàn)持續(xù)時(shí)間和接收故障數(shù)r。
3.1.1 定時(shí)截尾方案及其抽樣特性
定時(shí)測(cè)試方案的MTBF的真值θ與接收概率P(θ)的關(guān)系,可用泊松公式表示為:
(1)
式中,r為方案接收時(shí)所對(duì)應(yīng)的判決失效數(shù);T為方案接收時(shí)所對(duì)應(yīng)的判決總測(cè)試時(shí)間。
3.1.2 定時(shí)截尾方案使用步驟
1)根據(jù)合同要求得到θ0、θ1、α、β。并計(jì)算d=θ0/θ1;
2)根據(jù)上述參數(shù)查GJB 899中的表A.3和表A.4,得到相應(yīng)的方案號(hào)。并從表中得到測(cè)試時(shí)間和判決失效數(shù);
3)上述測(cè)試時(shí)間與θ1乘積為真實(shí)測(cè)試時(shí)間;
4)當(dāng)實(shí)際測(cè)試時(shí)間T(小時(shí))達(dá)到選定方案所對(duì)應(yīng)的真實(shí)試驗(yàn)時(shí)間時(shí),若測(cè)試的軟件失效數(shù)小于拒收的判決失效時(shí),則拒收;若測(cè)試所出現(xiàn)的軟件失效數(shù)小于或等于接收失效數(shù),則作接收判決。
3.1.3 定時(shí)截尾方案的置信度
MTBF的估計(jì)步驟如下:
(2)
式中,T為設(shè)備總測(cè)試時(shí)間;r為軟件失效數(shù)。
3)計(jì)算出MTBF的置信下限θL和置信上限θU:
(3)
4)MTBF的驗(yàn)證區(qū)間為:(θL,θU),(置信度C);
5) 若GJB 899中表A7的數(shù)據(jù)不足,可按下式計(jì)算出置信下限系數(shù)θL(C′,r)和置信上限系數(shù)θU(C′,r):
(4)
序貫試驗(yàn)統(tǒng)計(jì)方案包含標(biāo)準(zhǔn)統(tǒng)計(jì)方案、短時(shí)高風(fēng)險(xiǎn)統(tǒng)計(jì)方案兩種。預(yù)期采用正常的生產(chǎn)方風(fēng)險(xiǎn)和使用方風(fēng)險(xiǎn)(10%~20%)時(shí),應(yīng)采用標(biāo)準(zhǔn)型統(tǒng)計(jì)方案。采用短時(shí)高風(fēng)險(xiǎn)統(tǒng)計(jì)方案,可以縮短試驗(yàn)時(shí)間,但生產(chǎn)方和使用方均承擔(dān)較高風(fēng)險(xiǎn)。對(duì)于MTBF的真值較大或較小的產(chǎn)品,序貫試驗(yàn)所需的總試驗(yàn)時(shí)間差別較大,計(jì)劃費(fèi)用和時(shí)間應(yīng)以序貫截尾的時(shí)間為依據(jù)。
3.2.1 序貫測(cè)試方案及其抽樣特性
對(duì)于具有未知的MTBF值θ的指數(shù)型產(chǎn)品,在累計(jì)工作時(shí)間t內(nèi)發(fā)生r次故障的概率為:
(5)
序貫試驗(yàn)須證明θ至少不小于MTBF檢驗(yàn)下限θ1。本文采用判決標(biāo)準(zhǔn)見GJB899圖A.1~圖A.8。
3.2.2 序貫測(cè)試方案使用步驟如下:
1)根據(jù)合同要求得到θ0、θ1、α、β。并計(jì)算d=θ0/θ1;
2)根據(jù)上述參數(shù)查GJB 899中的表A.1和表A.2,得到相應(yīng)的方案號(hào)。并按照表中的“判決標(biāo)準(zhǔn)”得到相應(yīng)的圖號(hào);
3)根據(jù)得到的圖號(hào)查相應(yīng)的“接收-拒收判決標(biāo)準(zhǔn)”,并將表中的“標(biāo)準(zhǔn)化判決時(shí)間”乘以θ1得到不同失效數(shù)下的拒收判決時(shí)間TR和接收判決時(shí)間TA;
4)將受試設(shè)備的實(shí)際總測(cè)試時(shí)間T(小時(shí))、軟件失效數(shù)r逐次和判決值TA、TR進(jìn)行比較。若T>=TA,則作出接收判決,停止測(cè)試;若T<=TR,則作出拒收判決,停止測(cè)試;若T介于兩判決值TA和TR之間,則繼續(xù)測(cè)試到下一個(gè)判決值時(shí)再比較,直到可以作出判決并停止測(cè)試時(shí)為止。
3.2.3 序貫測(cè)試方案MTBF置信限
序貫測(cè)試達(dá)到接收判決時(shí),MTBF的置信區(qū)間或測(cè)試區(qū)間的置信度為C′的置信下限θ1和置信上限θ0按如式(6)計(jì)算:
θL=θL(C′,ti)θ1
θU=θU(C′,ti)θ1
(6)
式中,i為達(dá)到接收判決時(shí)的軟件失效數(shù);C′=(1+C)/2;θL(C′,ti)為置信度為C′,軟件失效數(shù)為i時(shí)的置信下限系數(shù),從GJB899表A5a中查出。θU(C′,ti)為置信度為C′,軟件失效數(shù)為i時(shí)的置信上限系數(shù)。從GJB899表A5b中查出。MTBF的雙邊保守置信區(qū)間或驗(yàn)證區(qū)間則為:
(θL,θU),(置信度C)。
無失效方案主要用于對(duì)可靠性很高的軟件進(jìn)行驗(yàn)證測(cè)試,或?qū)︱?yàn)證測(cè)試已判為接收的軟件改錯(cuò)后進(jìn)行的無失效交付測(cè)試。該方案根據(jù)在給定的測(cè)試時(shí)間內(nèi)執(zhí)行可靠性測(cè)試用例時(shí)軟件有無失效來進(jìn)行接收/拒收判斷,即無失效時(shí)接收軟件,有失效時(shí)拒收軟件。
3.3.1 無失效測(cè)試方案及其抽樣特性
直接將失效數(shù)r=0代入雙風(fēng)險(xiǎn)公式:
T=-θ1lnβT=-θ0lnα
(7)
通??紤]使用方風(fēng)險(xiǎn),則由第二式計(jì)算。β通常很小,則測(cè)試時(shí)間應(yīng)比θ1稍大,若在此時(shí)間內(nèi)軟件不失效,則接收,否則拒收。
在不同風(fēng)險(xiǎn)下的測(cè)試時(shí)間見表2。
表2 無失效方案
3.3.2 無失效測(cè)試方案的使用步驟
1)根據(jù)合同要求得到θ1、β;
2)根據(jù)上述參數(shù)查表2,從表中得到測(cè)試時(shí)間;
3)用該方案的測(cè)試時(shí)間乘以θ1得到真實(shí)的測(cè)試時(shí)間;
4)測(cè)試時(shí)當(dāng)實(shí)際總測(cè)試時(shí)間T達(dá)到選定方案所對(duì)應(yīng)的真實(shí)的試驗(yàn)時(shí)間時(shí),若測(cè)試中出現(xiàn)軟件失效,則作出拒收判決;若測(cè)試中沒出現(xiàn)軟件失效,則作出接收判決。
貝葉斯無失效測(cè)試方案是一種對(duì)失效率指標(biāo)進(jìn)行驗(yàn)證的測(cè)試方案,其基本思想是:首先利用給定的軟件失效率指標(biāo)λ0、置信度C以及軟件可靠性測(cè)試中的先驗(yàn)信息來確定滿足可靠性指標(biāo)要求所需的無失效驗(yàn)證測(cè)試時(shí)間,并進(jìn)行軟件可靠性驗(yàn)證測(cè)試。若測(cè)試執(zhí)行時(shí)間超過T后,軟件沒有發(fā)生任何失效,則驗(yàn)證測(cè)試通過,接收該軟件;否則驗(yàn)證測(cè)試不通過,拒收該軟件。當(dāng)開發(fā)方修改軟件失效所對(duì)應(yīng)的缺陷后,想繼續(xù)進(jìn)行驗(yàn)證測(cè)試,則可以結(jié)合發(fā)生失效時(shí)的測(cè)試時(shí)間,重新計(jì)算此時(shí)所需要的無失效驗(yàn)證測(cè)試時(shí)間,重復(fù)上述驗(yàn)證測(cè)試過程,直至驗(yàn)證測(cè)試結(jié)束。該驗(yàn)證測(cè)試方法可以充分利用軟件失效的先驗(yàn)信息,有效減少驗(yàn)證測(cè)試的時(shí)間。
3.4.1 Bayesian測(cè)試方案及其抽樣特性
基于軟件失效率指標(biāo)λ0,置信度C已是確定值。貝葉斯方法是指軟件失效率λ是一個(gè)隨機(jī)變量,軟件在時(shí)間區(qū)間(0,t]內(nèi)失效次數(shù)x等于k的概率為隨機(jī)變量λ的條件概率。即軟件失效次數(shù)x服從參數(shù)為λt的泊松分布:
(8)
通過泊松分布的共軛分布為Gamma分布,得到失效率的先驗(yàn)分布函數(shù):
(9)
假定軟件持續(xù)運(yùn)行時(shí)間為t,其間發(fā)生r次失效,則軟件失效率的后驗(yàn)分布函數(shù)為:
h(λ|r,t,a,b)=Gamma(a+r,b+t)
(10)
根據(jù)式(8)和(9)可推導(dǎo)失效次數(shù)x的邊緣分布為:
(11)
m(x)的一、二階矩為:
(12)
(13)
通過式(12)和(13),可求出超參數(shù)a和b與軟件失效數(shù)邊緣分布的一階矩和二階矩之間的關(guān)系。
將軟件在可靠性增長(zhǎng)測(cè)試階段的測(cè)試記錄表示為失效間隔時(shí)間序列T1,T2,…,Tn。因此,若已知軟件失效間隔時(shí)間序列的經(jīng)驗(yàn)樣本值,可以對(duì)a和b進(jìn)行估計(jì)。
(14)
根據(jù)式(12)~(14),即可計(jì)算參數(shù)a和b的先驗(yàn)估計(jì)值a0和b0,進(jìn)而得到軟件失效率λ的先驗(yàn)分布函數(shù)為:
(15)
確定軟件失效率λ的先驗(yàn)分布后,即可以對(duì)軟件可靠性指標(biāo)進(jìn)行驗(yàn)證。設(shè)給定的軟件可靠性指標(biāo)為(λ0,C)。則滿足相應(yīng)可靠性指標(biāo)的軟件無失效驗(yàn)證測(cè)試時(shí)間t1取滿足下式的t的最小值:
(16)
如果軟件在該驗(yàn)證測(cè)試時(shí)間未發(fā)生失效,說明軟件已經(jīng)達(dá)到規(guī)定可靠性指標(biāo),可接收該軟件;如果軟件在tf1時(shí)刻(tf1 (17) 持續(xù)該計(jì)算過程,即如果在此過程中已發(fā)生第j次失效,那么第j+1次無失效驗(yàn)證測(cè)試時(shí)間tj+1取下式中t的最小值: (18) (19) 根據(jù)式(19)計(jì)算第j次軟件失效對(duì)應(yīng)軟件所需要的總測(cè)試時(shí)間Ej+1,進(jìn)而計(jì)算第j+1次無失效驗(yàn)證測(cè)試的持續(xù)時(shí)間: (20) 依據(jù)式(19)計(jì)算總測(cè)試時(shí)間Ej+1是定值。由式(20)可知:前j次失效情況直接影響第j+1次無失效驗(yàn)證測(cè)試時(shí)間tj+1的長(zhǎng)短。 3.4.2 Bayesian測(cè)試方案步驟 1)給定軟件失效率指標(biāo)λ0,置信度C; 2)利用式(12)~(14)對(duì)式(9)中的超參數(shù)a和b進(jìn)行估算; 3)根據(jù)步驟1)和2)中得到的結(jié)果,首先利用式(16)計(jì)算第一次測(cè)試所需要的無失效驗(yàn)證測(cè)試時(shí)間t1;然后再根據(jù)式(19)計(jì)算出軟件失效數(shù)j與對(duì)應(yīng)的總測(cè)試時(shí)間Ej+1; 4)根據(jù)方案中規(guī)定的時(shí)間進(jìn)行可靠性驗(yàn)證測(cè)試,軟件連續(xù)執(zhí)行t1時(shí)間時(shí),若沒有發(fā)生失效,表明軟件達(dá)到了規(guī)定可靠性指標(biāo),則接收軟件,轉(zhuǎn)步驟6);若在驗(yàn)證測(cè)試過程中,出現(xiàn)失效,則表明軟件未達(dá)到規(guī)定的可靠性指標(biāo),拒收軟件,該次軟件可靠性驗(yàn)證測(cè)試結(jié)束,轉(zhuǎn)步5); 5)若開發(fā)方修改了軟件失效對(duì)應(yīng)缺陷,并要求重新進(jìn)行軟件可靠性驗(yàn)證測(cè)試,則結(jié)合新發(fā)現(xiàn)失效(設(shè)失效數(shù)為j)時(shí)已執(zhí)行測(cè)試時(shí)間,利用此時(shí)所對(duì)應(yīng)總測(cè)試時(shí)間Ej+1計(jì)算此時(shí)所需要驗(yàn)證測(cè)試持續(xù)時(shí)間tj+1,重復(fù)步驟4),否則轉(zhuǎn)步驟6); 6)驗(yàn)證測(cè)試結(jié)束。 選擇統(tǒng)計(jì)測(cè)試方案時(shí)考慮因素包含驗(yàn)證指標(biāo)的類型、該類型軟件的質(zhì)量要求、測(cè)試環(huán)境的預(yù)期壽命、可承受的最大失效數(shù)、可承受的最大測(cè)試時(shí)間、費(fèi)用-時(shí)間的權(quán)衡、是否有先驗(yàn)信息等。 根據(jù)上節(jié)4種軟件可靠性驗(yàn)證方案,本文歸納軟件可靠性驗(yàn)證統(tǒng)計(jì)方案選擇策略為: 1) 指標(biāo)為MTBF/失效率的軟件,若要求提供MTBF驗(yàn)證值,且有固定截止時(shí)間,則定時(shí)截尾測(cè)試方案優(yōu)先; 2) 若事先未規(guī)定可靠性驗(yàn)證時(shí)間,僅希望盡早對(duì)MTBF作出接收或拒收判決時(shí),可選擇序貫測(cè)試方案; 3) 軟件可靠性要求(MTBF)很高時(shí),則無失效測(cè)試方案最佳; 4) 對(duì)于MTBF要求很高,且做過可靠性增長(zhǎng)測(cè)試有先驗(yàn)失效信息的軟件,則優(yōu)選貝葉斯測(cè)試方案以減少測(cè)試時(shí)間。 某監(jiān)測(cè)系統(tǒng)軟件,其規(guī)定的可靠性指標(biāo)為(λ0,C)=(10-3,0.99)。在可靠性增長(zhǎng)測(cè)試階段,其最后10組失效間隔時(shí)間Ti的值如表3所示。 表3 先驗(yàn)樣本數(shù)據(jù) h 由于示例軟件有先驗(yàn)失效信息,對(duì)MTBF要求較高,故選用貝葉斯測(cè)試方案可靠性驗(yàn)證測(cè)試。 1)該軟件給定的失效率指標(biāo)為λ0=10-3,置信度C=0.99; 2)利用式(12)~(14)計(jì)算出式(9)中軟件失效率先驗(yàn)分布Gamma函數(shù)的超參數(shù)估計(jì)值為a0=1,b0=952.4; 3)根據(jù)以上數(shù)據(jù)由(19)計(jì)算出所需的總驗(yàn)證測(cè)試時(shí)間與軟件失效次數(shù)之間的對(duì)應(yīng)關(guān)系如表4所示??芍?dāng)進(jìn)行第一次驗(yàn)證測(cè)試時(shí),所需要的無失效驗(yàn)證測(cè)試持續(xù)時(shí)間為t1=3652.8小時(shí); 表4 總驗(yàn)證測(cè)試時(shí)間與失效次數(shù)之間的對(duì)應(yīng)關(guān)系 h 4)根據(jù)方案規(guī)定的時(shí)間進(jìn)行軟件可靠性驗(yàn)證測(cè)試,軟件在時(shí)刻tf1=2000小時(shí)發(fā)生失效,則軟件沒有達(dá)到規(guī)定的可靠性指標(biāo),拒收軟件。 5)開發(fā)方排除了相應(yīng)軟件缺陷,要求進(jìn)行第二次驗(yàn)證測(cè)試,則所需要的無失效測(cè)試運(yùn)行時(shí)間為t2=5685.9-tf1=3685.9小時(shí)。軟件在第二次驗(yàn)證測(cè)試時(shí),在3685.9小時(shí)可靠性驗(yàn)證測(cè)試中沒有發(fā)生失效,則該軟件可靠性指標(biāo)達(dá)到要求,接收該軟件。 6)驗(yàn)證測(cè)試結(jié)束。 本文針對(duì)艦船裝備軟件可靠性驗(yàn)證周期長(zhǎng)、效率低、缺少有效手段和依據(jù)等現(xiàn)狀,提出了定時(shí)截尾方案、序貫測(cè)試方案、無失效運(yùn)行方案、貝葉斯測(cè)試方案等四種軟件可靠性驗(yàn)證統(tǒng)計(jì)方案,并根據(jù)影響驗(yàn)證的因素(驗(yàn)證指標(biāo)類型、測(cè)試環(huán)境的預(yù)期壽命、該類型軟件的質(zhì)量要求、可承受的最大測(cè)試時(shí)間、可承受的最大失效數(shù)、費(fèi)用-時(shí)間的權(quán)衡、是否有先驗(yàn)信息等)給出了不同側(cè)重因素時(shí)軟件可靠性驗(yàn)證統(tǒng)計(jì)方案的選擇策略,為艦船裝備軟件提供一種普適性軟件可靠性驗(yàn)證與評(píng)價(jià)方法。最后結(jié)合某檢測(cè)軟件給出實(shí)例應(yīng)用,實(shí)踐證明本文提出的艦船裝備軟件可靠性驗(yàn)證與評(píng)價(jià)方法切實(shí)可行,具有重要的工程意義。4 軟件可靠性驗(yàn)證統(tǒng)計(jì)方案選擇策略
5 可靠性指標(biāo)驗(yàn)證示例
6 小結(jié)