毛子劍
(北方民族大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,寧夏 銀川 750021)
人們普遍認(rèn)為,軟件開(kāi)發(fā)是很難預(yù)測(cè)的,在軟件產(chǎn)品完成后,軟件質(zhì)量可能不容易提高??煽啃允擒浖?yīng)用的一個(gè)基本屬性,具有較高可靠性的軟件在交付給用戶(hù)之后,在實(shí)際使用過(guò)程中出現(xiàn)故障的概率小,可避免因軟件發(fā)生故障而給用戶(hù)造成不必要的損失。因此,軟件的性能和可靠性在各個(gè)領(lǐng)域都至關(guān)重要,若不能保證軟件的可靠性,那么會(huì)給企業(yè)和用戶(hù)帶來(lái)巨大的損失。針對(duì)此問(wèn)題,為了提高軟件在發(fā)布前的可靠性程度,軟件可靠性模型可以對(duì)軟件的可靠性進(jìn)行預(yù)測(cè)與評(píng)估,并通過(guò)軟件可靠性增長(zhǎng)測(cè)試這一方法來(lái)不斷地提高軟件產(chǎn)品的質(zhì)量[1]。軟件可靠性模型可以從已知或假定的條件,例如軟件的歷史故障數(shù)據(jù),預(yù)測(cè)軟件未來(lái)可能發(fā)生故障的行為并及時(shí)修復(fù)已發(fā)現(xiàn)的軟件故障,軟件的可靠性程度會(huì)隨著軟件錯(cuò)誤的減少而呈現(xiàn)不斷增長(zhǎng)的趨勢(shì),從而有利于對(duì)軟件的發(fā)布時(shí)間進(jìn)行決策。在對(duì)軟件進(jìn)行測(cè)試的階段所使用的可靠性模型稱(chēng)之為軟件可靠性增長(zhǎng)模型,進(jìn)而應(yīng)用SRGM對(duì)軟件測(cè)試過(guò)程進(jìn)行預(yù)測(cè)和評(píng)估[2]。
SRGM是評(píng)估軟件產(chǎn)品質(zhì)量和可靠性的工具,對(duì)可靠性的評(píng)測(cè)、保證和產(chǎn)品發(fā)布具有重要作用[3]。軟件可靠性建模的基本方法是對(duì)軟件過(guò)去發(fā)生失效的數(shù)據(jù)進(jìn)行建模,并能預(yù)測(cè)未來(lái)的失效情況,達(dá)到可靠性增長(zhǎng)分析的目的[4]。SRGM為軟件的預(yù)測(cè)與評(píng)估提供了支持,并提高了軟件可靠性,保障了用戶(hù)的正常使用[5]。經(jīng)過(guò)幾十年的不斷發(fā)展,SRGM已經(jīng)成為用于軟件可靠性分析的最為成熟的方法之一。軟件可靠性模型可以分為隨機(jī)過(guò)程模型和非隨機(jī)過(guò)程模型[6],且可靠性模型的種類(lèi)較多,不同模型評(píng)估可靠性的方法也不同。
在軟件測(cè)試階段,軟件故障定義為在測(cè)試過(guò)程中系統(tǒng)出現(xiàn)錯(cuò)誤。在運(yùn)用軟件可靠性增長(zhǎng)模型時(shí),常見(jiàn)的假設(shè)有軟件系統(tǒng)因發(fā)生錯(cuò)誤而隨機(jī)地出現(xiàn)故障行為,以及每次發(fā)生軟件故障時(shí),對(duì)出現(xiàn)的故障及時(shí)修復(fù),并且在修復(fù)過(guò)程中不會(huì)額外引入新的軟件錯(cuò)誤。將SRGM應(yīng)用到歷史故障數(shù)據(jù)中,可以估計(jì)軟件可靠性信息,比如軟件中剩余的故障數(shù)、發(fā)現(xiàn)下一個(gè)故障的時(shí)間及可靠性函數(shù)等。
大多數(shù)的SRGM假設(shè)m(t)是一個(gè)滿(mǎn)足非齊次泊松過(guò)程(Nonhomogeneous Poisson Process,NHPP)的均值函數(shù),其利用在特定時(shí)間內(nèi)檢測(cè)到的故障數(shù)來(lái)評(píng)估軟件失效信息。SRGMS中的m(t)表示實(shí)際測(cè)試過(guò)程的累積檢測(cè)故障數(shù)的函數(shù),它是求解軟件可靠性的關(guān)鍵。設(shè){N(t),t≥0}表示軟件測(cè)試過(guò)程中發(fā)現(xiàn)故障的計(jì)數(shù)過(guò)程,且m(0)=0,可得
在軟件測(cè)試階段,x表示軟件發(fā)生故障的間隔時(shí)間,在(t,t+x)內(nèi)的軟件可靠性R(x∣t)表示為
常用的軟件可靠性模型主要有超幾何分布模型、Jelinski Moranda(J-M)模型以及G-O模型等,不同可靠性模型含有不同的可靠性參數(shù),在不同的測(cè)試環(huán)境下來(lái)預(yù)測(cè)和評(píng)估可靠性的準(zhǔn)確度也各不相同。例如,J-M模型是軟件可靠性模型的研究基礎(chǔ),該模型被認(rèn)為是最早用于軟件測(cè)試的可靠性模型之一[7],其假設(shè)一個(gè)軟件系統(tǒng)中包含N個(gè)故障數(shù)且所有故障均具有相同概率,假定條件有:(1)發(fā)現(xiàn)故障的概率和當(dāng)前檢測(cè)到的故障數(shù)成正比;(2)故障檢測(cè)率在故障發(fā)生的時(shí)間間隔內(nèi)保持恒定;(3)在軟件測(cè)試過(guò)程中檢測(cè)出軟件故障,則立即對(duì)故障進(jìn)行修復(fù),且不引入新故障。
J-M模型不需要引入人為錯(cuò)誤,根據(jù)每次測(cè)試的失效間隔時(shí)間來(lái)預(yù)測(cè)軟件中存在的總故障數(shù)N和測(cè)試強(qiáng)度φ。由于計(jì)算過(guò)程較為復(fù)雜,所以需要建立方程式并得到令方程兩邊近似相等的解值,則該數(shù)值表示預(yù)測(cè)軟件中的總故障數(shù)。然后,建立N值和φ值的關(guān)系,由已知的估計(jì)值解得測(cè)試人員每次執(zhí)行測(cè)試的強(qiáng)度,但J-M模型也存在參數(shù)估計(jì)誤差大的不足。J-M模型應(yīng)用操作簡(jiǎn)單且易于理解,所以很多SRGM對(duì)該模型的假設(shè)條件進(jìn)行豐富與拓展,從而提出了更為完善的預(yù)測(cè)軟件可靠性的方法。而超幾何分布模型應(yīng)用離散分布來(lái)分析軟件可靠性[8],它以添加人為錯(cuò)誤的方式排除軟件中的固有錯(cuò)誤,測(cè)試人員通過(guò)在發(fā)現(xiàn)人為錯(cuò)誤的過(guò)程中發(fā)現(xiàn)并排除軟件中的固有錯(cuò)誤,以此提高軟件可靠性。超幾何分布模型假設(shè)如下:(1)軟件中的固有錯(cuò)誤數(shù)不超過(guò)N0,且N0大于0;(2)在測(cè)試開(kāi)始之前,在軟件系統(tǒng)中添加N1個(gè)人為錯(cuò)誤;(3)執(zhí)行測(cè)試,直到找出所有因N1引起的故障。根據(jù)每一測(cè)試階段的N1值,運(yùn)用極大似然法估計(jì)軟件中N0的個(gè)數(shù),從而達(dá)到預(yù)測(cè)軟件可靠性的目的。由此可見(jiàn),不同模型存在各自的優(yōu)勢(shì),但也存在一些不足之處。
在軟件測(cè)試階段發(fā)生故障行為具有隨機(jī)性的特點(diǎn),當(dāng)遇到故障發(fā)生時(shí)將其記錄下來(lái)并進(jìn)行修復(fù)操作,而且還需要考慮是否產(chǎn)生了額外的故障,進(jìn)而消除潛在的故障,這稱(chēng)為一個(gè)可靠性增長(zhǎng)的過(guò)程。因此,應(yīng)用SRGM對(duì)可靠性進(jìn)行建??梢杂行У卦u(píng)估軟件可靠性,根據(jù)軟件失效數(shù)據(jù)來(lái)預(yù)測(cè)可靠性程度,最終達(dá)到提高軟件質(zhì)量的目的。
使用SRGM對(duì)可靠性進(jìn)行建模的主要步驟包括:(1)測(cè)試人員通過(guò)運(yùn)行被測(cè)試軟件,收集故障數(shù)據(jù)信息;(2)建立SRGM模型,對(duì)測(cè)試、修復(fù)過(guò)程進(jìn)行建模;(3)進(jìn)行參數(shù)估計(jì)并預(yù)測(cè)軟件中剩余的故障總數(shù);(4)根據(jù)分析結(jié)果評(píng)估軟件可靠性程度。首先針對(duì)一個(gè)具體軟件提出符合該測(cè)試過(guò)程的研究假設(shè),然后在執(zhí)行測(cè)試的過(guò)程中排除故障并建立排錯(cuò)過(guò)程的微分方程式,從而預(yù)測(cè)出當(dāng)前測(cè)試時(shí)間內(nèi)的累計(jì)故障數(shù)。最后,通過(guò)對(duì)估計(jì)的參數(shù)進(jìn)行擬合,繪制該軟件的可靠性函數(shù)圖像,從而更好地對(duì)所建立的SRGM進(jìn)行評(píng)估與分析。
本文介紹了SRGM的基本概念、SRGM在可靠性分析中的應(yīng)用以及使用SRGM對(duì)可靠性進(jìn)行建模等內(nèi)容,由此可知SRGM對(duì)與預(yù)測(cè)和評(píng)估軟件可靠性具有重要作用。通過(guò)對(duì)比J-M模型和超幾何分布模型在可靠性分析方面的應(yīng)用可知,不同模型的假設(shè)條件和分析方法不同,但也存在一些不足之處。SRGM不僅提高了軟件的可靠性和質(zhì)量,而且還有助于開(kāi)發(fā)人員和測(cè)試人員確定最佳的軟件發(fā)布決策。
無(wú)線(xiàn)互聯(lián)科技2021年24期