張 策,伊文敏,白 睿,盛 晟,徐早輝,高天翼,王瞰宇,蘇嘉堯
(1.哈爾濱工業(yè)大學(威海)計算機科學與技術學院,山東 威海 264209;2.61660部隊,北京 100089)
軟件可靠性增長模型SRGM(Software Reliability Growth Model)已成為度量與預測可靠性,管控成本支出,以及進行系統(tǒng)發(fā)布等研究的重要技術與工具[1 - 3],已有超過35年的研究和實踐歷史?,F(xiàn)有SRGM研究是建立在一定假設基礎之上,以最為流行的非齊次泊松(分布)過程NHPP(Non-Homogeneous Poisson Process)為例:(1)軟件失效滿足NHPP;(2)(t,t+Δt)內(nèi)檢測的故障數(shù)量與t時刻軟件中剩余未被發(fā)現(xiàn)的故障成比例等。
自1979年Goel與Okumoto[4]提出最為經(jīng)典同時影響力也最為深遠廣泛的G-O模型以來,SRGM研究持續(xù)得到了關注。對不同SRGMs的性能評價主要是基于公開發(fā)表的失效數(shù)據(jù)集FDS(Failure Data Set)進行驗證來實現(xiàn)的,SRGM的性能優(yōu)劣很大程度上依賴于所收集的失效數(shù)據(jù)質(zhì)量[5]。顯然,F(xiàn)DS對SRGMs的驗證和發(fā)展發(fā)揮著至關重要的作用,不可替代。
整體而言,SRGM研究中較多的科學問題已被解決,但FDS卻一直停留在由世界知名公司發(fā)布上,很長時間內(nèi)停滯不前,這極大地制約了SRGM的深入發(fā)展。與已有的成百上千的SRGMs形成鮮明對比的是,迄今為止,對FDS本身及其在SRGM研究中的作用和影響的研究在國內(nèi)外尚未見報道。在我們的前述研究中,針對不同SRGMs性能差異的根源給出了客觀上FDS的不同和主觀上所建立的數(shù)學模型的不同二者共同作用的結果。本文在作者前期工作基礎上[6 - 8],對FDS及其對SRGM的影響進行分析與評述,期望通過本文的工作能為促進FDS與SRGM的發(fā)展做出貢獻。
應用SRGM進行可靠性分析是對可靠性進行建模和評測的主要手段,圖1給出了科研人員基于對測試過程的認知下進行SRGM建模的基本流程以及SRGM的效用。
Ahmad等[5]認為SRGM的成功極大地取決于所收集到的FDS質(zhì)量。由圖1可以看出,若無公開發(fā)表的FDS,SRGMs的性能驗證就無從著手。測試人員根據(jù)測試策略的安排,可以采用黑盒、白盒、回歸、壓力等測試方法來檢測到失效的發(fā)生,確定故障的根源??蒲腥藛T通過對測試過程的建模,得到[0,t]內(nèi)累積檢測的故障數(shù)量m(t),并利用真實的FDS進行驗證。建模中,通常自行設定軟件中總故障個數(shù)a(t)的表達式,以及故障檢測率b(t)等。需要指出,建模時研究人員對軟件測試過程所做假設上的差異是不同SRGMs存在區(qū)別的根本原因,這種差異導致最終求解得到的m(t)表達式存在巨大差異。
SRGM研究的基礎是需要有FDS的支持,SRGMs性能優(yōu)劣的驗證也是基于FDS。通常而言,F(xiàn)DS由國際上著名的(軟件)公司來發(fā)布。四十多年來,在這些數(shù)據(jù)集的支持下,已經(jīng)有超過上百個SRGMs被相繼開發(fā)出來,極大地豐富了軟件可靠性工程的研究。事實上,與其名稱不相一致的是,F(xiàn)DS不僅僅包含失效個數(shù)(即累積檢測的故障數(shù)量),還包括累積修復的故障數(shù)量、測試工作量TE(Testing-Effort)消耗情況,甚至故障類型等信息。
FDS={fd1,fd2,…,fdk},k為失效數(shù)據(jù)個數(shù),fdi(1≤i≤k)為失效數(shù)據(jù)子集,其可被抽象為下面的四元組形式:
fdi={ti,N(ti),TE(ti),C(ti)}
(1)
其中,ti表示測試時間,可以是日歷時間、時鐘時間、CPU時間和執(zhí)行時間[9],但多以日歷時間作為故障檢測與修復的時間周期[10],通常以周為單位;N(ti)為截止ti時累積檢測到的故障數(shù)量;TE(ti)為[0,ti]內(nèi)消耗的測試工作量TE,用測試工作量函數(shù)TEF(Testing-Effort Function)來表示[11],TE消耗曲線存在多種函數(shù)形式;C(ti)為截止ti時累積修復的故障數(shù)量。需要指出,有些FDS中并不包含TE(ti)和C(ti)。典型地,在Ohba-Chou模型[12]基礎上,這里將其修改為更一般性的不完美排錯框架模型:
(2)
Figure 1 FDS release and SRGM performance evaluation process圖1 FDS發(fā)布與SRGM性能評測過程
第1個子式考慮到了測試工作量TE的消耗,即W(t):
(3)
第2個子式假設(t,t+Δt)內(nèi)引入的故障數(shù)量與檢測的故障數(shù)量成比例,比例系數(shù)為r(t),a(t)為全部故障數(shù)量。在m(0)=0,a(t)=a的初始條件下,可求得m(t)和a(t):
(4)
(5)
其中b(t),r(t)作為參函數(shù)變量可以根據(jù)實際進行設定;w(t)作為TE的消耗率可為Logistic、Weibull等函數(shù)形式。a(t)雖難以直接驗證,但卻可用以指導測試中對總故障的估算,為可能的測試成本花銷提供決策輔助?;谇蟮玫膍(t),可求得失效率λ(t)為:
(6)
模型的有效性需要驗證得到的W(t)與m(t)同真實的FDS中TE(t)與N(t)的擬合及預測性能,即:
SRGMPerformanceonFDS=
(7)
SRGM的性能優(yōu)劣很大程度上依賴于所收集的失效數(shù)據(jù)質(zhì)量[5],由于不同公司在不同測試過程中的各種因素制約,這些數(shù)據(jù)集相互之間的差異較大。數(shù)據(jù)集可以有多重分類:(1)以順序/非順序時間為線索記錄失效故障數(shù)量[13,14];(2)以順序失效個數(shù)為線索記錄失效時間[17];(3)含有TE的[13,14]與不含有TE的[17,24];(4)以標準化的失效時間和標準化的累積失效個數(shù)作為記錄線索[22]。圖2給出了8個FDSs的情況,橫坐標是測試時間,多以周為單位,縱坐標是累積檢測到的失效個數(shù),由于通常認為一個失效是由一個故障導致的,因此也被稱作累積檢測到的故障數(shù)量。
(1)現(xiàn)有FDS多以二十幾周的測試數(shù)據(jù)為主。
(2)從形狀來看多以指數(shù)型增長(例如DS2,DS6,DS8~DS13)和S型增長(例如DS7)為主,尤其是指數(shù)型,這為建立SRGM提供了基準,也使得目前的SRGMs主要以此2種增長形狀及其演變?yōu)橹?。例如,最早提出的?jīng)典G-O模型即為指數(shù)型曲線,其后各種SRGMs也均以指數(shù)型為常見。
(3)當前眾多SRGMs在本質(zhì)上都可以歸屬到上述2大類模型。
至此,可以得知FDS效用主要是指FDS的結構組成與類型、所包含的失效數(shù)據(jù)變化趨勢,以及FDS對SRGM性能的影響。SRGM的建立源于對FDS蘊含測試過程的認知,其性能依賴于FDS進行驗證,由于可靠性模型與FDS均存在不同類型,這使得FDS對模型的影響客觀存在。
不完美排錯就是不斷放寬傳統(tǒng)完美排錯中假設的條件,使之考慮的實際因素越來越靠近真實情況。鑒于不完美排錯更加真實地描述了實際的測試過程,這里選擇7個典型的不完美排錯相關的SRGMs在9個數(shù)據(jù)集DS2,DS6~DS13上進行驗證,結果如表2所示。這些數(shù)據(jù)集來源于多方,類型與特征也有所差異,考慮到數(shù)據(jù)集記錄數(shù)據(jù)的規(guī)模量,以及模型在失效數(shù)據(jù)集上進行驗證的計算復雜度,特別是實驗結果便于觀察分析等,這里對數(shù)據(jù)集進行了遴選,去除了5個數(shù)據(jù)集。例如,DS3的TE數(shù)值過小引發(fā)計算復雜度劇烈上升,性能結果不適宜直接對比;DS14記錄時間的數(shù)值過大,使得難以直接用于驗證模型有效性;DS5記錄的失效故障數(shù)量過大;DS1與DS4故障數(shù)據(jù)記錄缺少清晰的變化走勢,使得模型擬合與預測結果不直觀等。為此,我們綜合選取了9個更為典型常用的數(shù)據(jù)集,這9個數(shù)據(jù)集均是由知名的計算機或軟件公司發(fā)布的,已被廣泛用來分析SRGMs的性能。
Table 1 FDS case selection from real computer engineering表1 源自真實計算機工程的FDS案例遴選
Figure 2 Eight FDSs圖2 8個FDS
SRGM的性能度量主要從2個方面來實施:擬合過往的失效情況和預測未來失效情況。首先,基于此9個數(shù)據(jù)集,進行參數(shù)估計,圖3給出了7個模型的m(t)與真實失效數(shù)據(jù)的擬合情況。
模型與真實的FDS越接近越重合表明擬合性能越好。從圖3可以看出,除了圖3i中7個模型與DS13擬合較好外,在其余8個FDSs上,均出現(xiàn)有部分模型與FDS偏差較大的情形。如前所述,當前多以指數(shù)型的FDS為主,S型的FDS則較少,因而被提出的SRGMs也多以指數(shù)型的m(t)形式為主。在FDS類型與m(t)的擬合匹配上,從圖3中可以看出下面3種情況:
(1)S型的FDS與指數(shù)型的m(t)擬合偏差較大:在圖3c的DS7中,F(xiàn)DS呈現(xiàn)S型的彎曲式增長,表2中的m(t)模型絕大部分是指數(shù)型的,這使得如下事實得以出現(xiàn):除了圖3c以外的8個圖中只有1~2個模型與真實的FDS偏差較大外,其余模型均擬合較好;相反,在圖3c中,則出現(xiàn)了多個模型在整個測試周期內(nèi)均與真實的FDS偏差較大的情況。
(2)除圖3c外,其余8個FDSs均呈現(xiàn)指數(shù)型的增長,其中又分為:①除圖3h中DS13以外,其余7個FDSs呈現(xiàn)出“凸式”增長形狀:這其中,除了M1:Y-Exp模型擬合偏差較大外,其余6個模型擬合較好。其原因在于,M1的m(t)曲線是“凹式”增長形狀,與這些“凸式”增長的FDS不相符;②圖3h中DS13出現(xiàn)“凹式”增長形狀,這使得M1的m(t)擬合效果較好。
Table 2 SRGMs associated with typical imperfect debugging in comparison and FDS for validation表2 參與比較的典型不完美排錯相關的SRGMs及用于驗證的FDS
Figure 3 Fitting curves of 7 models on 9 data sets圖3 7個模型在9個數(shù)據(jù)集上的擬合曲線
(3)開發(fā)出具有“柔韌型”能夠適用指數(shù)型與S型FDS的SRGM是未來研究的重要方向。
占有多數(shù)情況的指數(shù)型FDS為指數(shù)型的SRGM驗證提供了良好的數(shù)據(jù)基礎,這也解釋了眾多SRGMs中呈現(xiàn)指數(shù)形式的m(t)性能表現(xiàn)較好的根本原因。
在對未來失效數(shù)據(jù)的預測上,模型的相對誤差RE(Relative Error)曲線如圖4所示,RE曲線越快趨近于0表明預測性能越好。在數(shù)學上,由于擬合的本質(zhì)是盡量靠近目標曲線,因而不同模型的m(t)與真實的失效數(shù)據(jù)差別不大;但在預測上,在很多數(shù)據(jù)集上,部分模型的預測能力已經(jīng)嚴重偏離中心水平線,表明出現(xiàn)了很大偏差。造成這種現(xiàn)象的原因包括兩個方面,既有對排錯過程所建立模型的不同,同時也可能是由于數(shù)據(jù)集本身失效數(shù)據(jù)間差異較大的緣故。
Figure 4 RE prediction curves of 7 models on 9 data sets圖4 7個模型在9個數(shù)據(jù)集上的RE預測曲線
(1)隨著測試的進行,特別是從測試時間后半程開始,9個數(shù)據(jù)集上均存在一部分模型能夠較快地向0曲線進行收斂而逐漸趨向穩(wěn)定,表明這些模型具有較好的預測性能。例如,在圖4a的DS2上,M6,M3,M4,M5實現(xiàn)了較為快速地向0曲線靠近;這部分模型還包括在圖4b DS6上的M3,M4,M5,M6;在圖4c DS7上的M3,M7,M4,M5;在圖4d DS8上的M3,M2,M5,M6;在圖4e DS9上的M3,M2,M4,M7;在圖4f DS10上的M3,M6,M4,M2;在圖4g DS11上的M3,M4,M7,M5;在圖4h DS12上的M3,M1,M6,M5;在圖4i DS13上的M3,M4,M2,M7。這不僅是由于數(shù)據(jù)集中失效數(shù)據(jù)的增多帶來擬合結果的準確性提升,同時也表明這些模型較好地描述了真實的測試過程,因而對未來的預測更為準確。
(2)通常,在指定數(shù)據(jù)集上擬合性能較差的模型,其預測性能也相對不足,反之亦然。例如,M1:Y-Exp在DS2、DS6~DS11上預測性能并不理想,其在這些數(shù)據(jù)集上的擬合曲線嚴重偏離真實的失效數(shù)據(jù)曲線,擬合性能較差;其在DS12和DS13上的擬合性能較好,相應的預測性能也很理想。
(3)Huang等[30]明確指出,不存在一個能夠適應全部數(shù)據(jù)集的模型——這一點從上述對圖4的分析中可以看出,7個模型在9個失效數(shù)據(jù)集上的預測性能并不穩(wěn)定,即并不存在某個模型的預測性能在所有9個失效數(shù)據(jù)集上均表現(xiàn)為最優(yōu)。例如,M1在DS2,DS6,DS7,DS8,DS9,DS10和DS11上均發(fā)生較大偏差,其預測曲線沒能快速趨近于0;M2在DS2,DS6,DS7,DS11和DS12上表現(xiàn)欠佳;M3在DS1上,M4在DS8和DS11上,M5在DS9,DS10和DS13上,M6在DS7,DS9,DS11和DS13上,M7在DS2,DS6,DS8,DS10和DS12上均不理想。因此,模型的性能存在局部性,無法適應不同類型的FDS。
性能優(yōu)異的SRGMs在本質(zhì)上刻畫的m(t)與真實的失效數(shù)據(jù)曲線在走勢上相一致;相反,部分模型由于建立時缺乏必要的合理性以及FDS中數(shù)據(jù)收集與記錄的隨機化,使得模型的性能表現(xiàn)出現(xiàn)偏差。
如前所述,當前FDS在SRGM的研究中主要是參數(shù)擬合、度量和預測,除此之外,對FDS的利用很難看到。當前關于FDS的不足表現(xiàn)在2個大的方面:
(1)FDS發(fā)布方——測試過程信息過于單一。
①首要的不足是缺少最新的FDS,現(xiàn)有的FDSs主要是20世紀70年代至21世紀初發(fā)布的,進入21世紀以來鮮有新的FDS發(fā)布,這使得很多SRGMs難有被充分驗證的機會。
②現(xiàn)有的FDSs包含的失效數(shù)據(jù)數(shù)量較少,一般以周為單位,多在20周左右,這使得含有參數(shù)較多的SRGMs在擬合與預測性能上有所不足。
④缺少以構件軟件CBS(Component-Based Software)為對象的失效信息,這使得構件軟件可靠性增長模型CBSRGM一直發(fā)展滯后,鮮有提出。
⑤此外針對流行的軟件形式,例如面向服務的軟件SOS(Service-Oriented Software)、網(wǎng)構軟件等至今也沒有公開的FDS被發(fā)布。
(2)研究人員——對FDS的利用不充分。
①目前FDS只用來進行參數(shù)擬合和性能的評測(包括擬合與預測),失效信息利用得并不充分。
②SRGMs驗證結果并未對FDS的收集、記錄與發(fā)布以及測試過程提出指導意見。例如,當前研究認為故障修復時間服從指數(shù)分布,但實際的故障修復時間是否如此,各大公司并未進行確認。
③軟件發(fā)布后的操作運行階段中的失效信息不足,導致對運行階段的可靠性建模、評測與提高缺乏必要的數(shù)據(jù)集支撐,留下了研究的“真空”。
可見,若公開發(fā)表的FDS中包含更多更全面的信息,則會促使研究人員在建模中所建立的數(shù)學模型更為“細膩”,也便于在驗證環(huán)節(jié)中將求解得到的數(shù)值與真實的信息進行比較,更能刻畫比較出SRGMs與真實測試過程的逼近情況。
文獻[31]中指出,對可靠性信心的增強與軟件測試的次數(shù)緊密相關。FDS在當前的SRGM研究中主要承擔基礎性的性能驗證作用,我們建議,在不泄露項目與公司機密的情況下,鼓勵軟件公司發(fā)布更多的測試信息。
(1)應豐富FDS的信息種類,F(xiàn)DS中應明確包含反映測試環(huán)境、測試策略、測試人員技能、軟件自身的結構特征、多種故障類型等信息。
①要充分挖掘FDS中隱藏的關于測試策略以及涉及到各類故障數(shù)量與可靠性的深層次關系。
②要增大FDS中失效數(shù)據(jù)的數(shù)量,使得SRGMs能有更為長遠的性能表示趨勢,也使含有較多參數(shù)的SRGMs性能能夠充分地體現(xiàn)出來。
③當前所發(fā)布的眾多FDSs中均沒有任何關于CP的信息:當前研究中,Huang等[31,32]采用c圖來確定CP位置,利用拉普拉斯趨勢曲線分析SRGM的增長情況;Shyur[33]則認為,測試過程中測試環(huán)境的改變是人為主動引發(fā)的,因而CP的位置是已知的,或采用目估法來確定CP的位置。但是,在公布的FDSs中卻沒有直接告知CP的存在(可能由測試人員技能的提高,新測試技術與工具的引入,甚至軟件中總故障個數(shù)等引發(fā)CP的出現(xiàn))。顯然,若FDS中告知CP信息,則會促使SRGM的建模能直接體現(xiàn)出CP的存在,使得所建立的數(shù)學模型(微分方程(組))更為準確。
(2)對于大型復雜的軟件系統(tǒng),其測試過程是一個時間跨度較長且較為隨機與復雜的過程,采取有效的測試信息記錄機制,則會形成規(guī)模龐大的數(shù)據(jù)信息,這些近似于“大數(shù)據(jù)”的信息更能反映測試過程中潛在的內(nèi)在機制與機理。
①若FDS中包含除累積檢測的失效數(shù)量以外的更多信息,例如,修復(改正/排除)、引入等信息,則研究人員所建立的模型在驗證中就會有更多參照比較的對象,使得SRGM研究能夠突破現(xiàn)有相對較為單一的建模思維,可支持更多個描述不同測試要點的方程(組)。
②大規(guī)模的數(shù)據(jù)中隱藏著各種測試機理信息,這為大數(shù)據(jù)理論與技術的運用提供了條件。當前IT(Information Technology)已進入到以數(shù)據(jù)為中心的DT(Data Technology)時代,因此應加大FDSs的收集力度,提倡有大量數(shù)據(jù)支撐的相對復雜的模型。
③實際的測試過程中具有較強的隨機性,需要多參數(shù)來描述以求準確與全面。多參數(shù)雖使模型變得復雜,但現(xiàn)有的優(yōu)秀數(shù)值處理軟件能夠解決由此帶來的復雜求解問題。
當前用以驗證SRGM的FDS主要是于20世紀發(fā)布的,進入21世紀,軟件自身的形態(tài)以及軟件工程都發(fā)生了很大的變化,反映這種變化的FDS也極為少見,例如網(wǎng)構軟件、面向服務的軟件等,這已成為制約了SRGM發(fā)展的主要客觀事實。此外,至今為止,也僅有一份CBS的FDS,且并不完整,尚不足以支撐構件軟件可靠性增長模型CBSRGM的研究。雖然采用離散事件仿真的方法可以模擬(構件)軟件的測試過程,進而獲得FDS,但由于仿真之初做了較為苛刻的假設,使得所獲得的數(shù)據(jù)集與實際軟件系統(tǒng)測試過程中的真實情況差距較大。我們建議更新更多包含更多測試信息的FDSs能夠發(fā)布,這樣才能確保SRGM得到充分驗證。