





收稿日期:2022-05-08;修回日期:2022-07-04" 基金項目:國家自然科學基金資助項目(61473097);山東省自然科學基金面上項目(ZR2021MF067);山西省基礎研究計劃資助項目(201801D121120);威海市科技發展計劃資助項目(ITEAZMZ001807)
作者簡介:張策(1978-),男(通信作者),吉林永吉人,副教授,碩導,博士,主要研究方向為可靠性建模與評測、物聯網中安全性分析、可信計算等(zhangce@hitwh.edu.cn);孫智超(1998-),男,吉林長春人,碩士研究生,主要研究方向為軟件可靠性;王金勇(1974-),男,黑龍江雞西人,講師,博士,主要研究方向為軟件可靠性、故障預測;袁雨飛(1999-),男,安徽合肥人,碩士研究生,主要研究方向為軟件可靠性;盛晟(1999-),男,山西大同人,本科生,主要研究方向為軟件可靠性;呂為工(1967-),男,吉林長春人,副教授,碩士,主要研究方向為嵌入式、物聯網、分布式人工智能.
摘 要:為了進一步提升現有非齊次泊松過程類軟件可靠性增長模型的擬合和預測性能,首先從故障總數增長趨勢角度對不完美排錯模型進行深入研究,提出兩個一般性不完美排錯框架模型,分別考慮了總故障數量函數與累計檢測故障函數間的線性關系與微分關系,并求得累計檢測的故障數量與軟件中總故障數量函數表達式;其次,在六組真實的失效數據集上對比了提出的兩種一般性不完美排錯模型和六種不完美排錯模型擬合預測性能表現。實例驗證結果表明,提出的一般性不完美排錯框架模型在大多數失效數據集上都具有優秀的擬合和預測性能,證明了新建模型的有效性和實用性;通過對提出的模型與其他不完美排錯模型在數據集上的性能的深入分析,為實際應用中不完美排錯模型的選擇提出了建議。
關鍵詞:非齊次泊松過程;軟件可靠性增長模型;不完美排錯;效用分析
中圖分類號:TP311.53"" 文獻標志碼:A
文章編號:1001-3695(2022)12-031-3724-06
doi:10.19734/j.issn.1001-3695.2022.05.0221
Research on utility quantification of reliability growth model for
imperfect debugging software
Zhang Ce1,Sun Zhichao1,Wang Jinyong2,Yuan Yufei3,Sheng Sheng4,Lyu Weigong1
(1.School of Computer Science amp; Technology,Harbin Institute of Technology,Weihai Shandong 264209,China;2.School of Automation amp; Software Engineering,Shanxi University,Taiyuan 030006,China;3.Dept.of Computer Science,University of Copenhagen,Copenhagen 21004,Denmark;4.Shenzhen Huantai Technology Co.,Ltd.,Shenzhen Guangdong 518063,China)
Abstract:In order to further improve the fitting and prediction performance of the existing non-homogeneous Poisson process class software reliability growth models,this paper first conducted an in-depth study of imperfect fault exclusion models from the perspective of the total number of faults growth trend.Considering the linear and differential relationships between the total number of faults function and the cumulative detected faults function,it proposed two general imperfect fault exclusion framework models,and derived the expressions of the cumulative detected faults and the total number of faults function in software.Secondly,this paper compared the performance of the proposed two general imperfect debugging models and the six imperfect debugging models on six real failure datasets for fitting prediction performance.The results of the case validation show that the proposed general imperfect debugging framework model has excellent fitting and prediction performance on most of the failure datasets,which proves the effectiveness and practicality of the new modeling framework.Again,through the in-depth analysis of the performance of the proposed model and other imperfect debugging models on the datasets this paper puts forward some suggestions for the selection of imperfect debugging models in practical applications.
Key words:non-homogeneous Poisson process;software reliability growth model;imperfect debugging;utility analysis
0 引言
經需求分析、設計與編碼,軟件進入到綜合測試階段用于檢測故障、修復故障以提高質量。這一階段主要通過不斷地排除故障來提高可靠性,逐漸向軟件發布階段靠攏。為了更好地指導測試階段軟件可靠性的提高,采用軟件可靠性增長模型(software reliability growth model,SRGM)[1,2]這一數學手段對測試過程進行定量建模,獲得能夠表征可靠性提高的主要關鍵參數,例如截至某時刻的累積檢測的故障數量表達式等。實際上,軟件測試過程是多個隨機過程的統一,是多因素影響的過程,如何更加合理地建立能夠刻畫測試過程的數學模型一直是可靠性理論研究中的核心主題。這是因為軟件測試從邏輯順序上來看,至少包括故障檢測、故障分析、故障排錯等子過程[3,4],這些子過程之間具有緊密的正向與反向關聯,使得測試過程具有較強的隨機性和不確定性,如故障檢測可能是不徹底的、處于修復的故障可能不會被最終排除(通常被稱為排錯的不完全性)[5]、故障排錯過程中可能會產生新的故障(通常被稱為引入新故障)[6]等。這些都是真實軟件測試過程中的實際現象,已經引起了軟件測試領域和可靠性研究領域的重視,一般被稱為軟件測試中的不完美排錯現象。
正是由于真實的軟件測試過程是多因素影響的復雜隨機過程,這些影響不完美排錯的主要因素繼而為不完美排錯建模和研究帶來實際挑戰。軟件可靠性增長模型是基于失效數據,
在軟件開發的測試階段與操作運行階段描述軟件測試過程中累積檢測或修復的故障數量,測試工作量TE與測試時間等的數學關系,是實現建模軟件可靠性提高過程的數學工具[7]。SRGM在度量、預測、提高與保證可靠性上被廣泛應用,同時定量地對涵蓋測試資源的管控和最優發布時間抉擇等軟件測試過程提供重要決策支持,是可靠性工程研究領域內的重要手段[8,9]。
在前期研究[7,10~12]基礎上,通過圖1描述了軟件測試與排錯過程以及SRGM的研究內在邏輯。可以看出,隨著故障被不斷地檢測和修復,軟件的可靠性得到提高。
現有的非齊次泊松過程(non-homogeneous Poisson process,NHPP)類SRGM得到了廣泛研究,包括不完美排錯模型在內的眾多模型被提出,并在所實驗的失效數據集上取得了較好的驗證效果。迄今為止,從已發表的文獻可以看出,提出的模型僅在部分數據集上進行驗證,能否在更多的數據集上表現出優秀性能,或者是否存在能在眾多或全部的失效數據集上均有良好性能的模型,這一問題沒有得到重視和研究。本文針對不完美排錯模型進行研究,探討其在當前部分數據集上的性能,以此觀測SRGM的效用,深入剖析模型的適用范圍。
1 NHPP類不完美排錯SRGM
自1978年以來,由于對軟件測試過程的認知與假設不同,基于NHPP類型的多種SRGM被提出[13~17],這些模型以不同的視角對故障檢測、故障修復、測試工作量消耗、故障檢測率增長趨勢、新故障引入等進行研究,體現出了可靠性研究的多樣性。
由于現代軟件開發環境的復雜性(如云計算、大數據和開源環境下)以及軟件測試和運行的不確定性,當檢測到的故障被排除時,很有可能引入新的故障或故障沒有被完全排除掉。相比于完美排錯中所做的與實際測試相距甚遠的假設,不完美排錯更加靠近真實的測試過程。這些復雜性、隨機性引來了較多的不確定因素,也使得研究人員對測試過程有著不盡相同的認知,從而對測試過程不同階段進行了多種假設,提升了SRGM研究的豐富多樣性。實際上,現有的SRGM均是分類研究下的分類模型,從研究中的某一特征入手。到目前為止,已有很多不完美排錯模型被提出,主要是從排錯的不完全性和新故障的引入性等角度進行研究,很難找到一個考慮多種隨機因素并適用于多個真實應用場景的通用模型。為了更加深入地研究不完美排錯的典型特征對軟件可靠性的影響,本文在考慮排錯的不完全性基礎上重點研究新故障引入的基本形式,探究新故障引入與故障檢測的定量關系,從而建立起融合具有刻畫真實測試過程中不完美特性的軟件測試模式,獲得故障檢測、修復與引入的深層次關聯,為量化研究不完美排錯效用提供新的渠道。
2 相關研究
軟件測試過程是軟件測試人員在某種測試環境下,按照預定的測試策略或計劃執行測試案例,發現與檢測軟件運行中的失效,定位、收集、記錄故障,并進行修復故障的過程。由于軟件測試與排錯的隨機性、復雜性,被檢測到的故障在修復階段可能沒有被成功排除,出現排錯的不完全現象;在故障的修復過程中可能破壞程序的內在結構邏輯,存在引入新故障的可能。這是一種典型的軟件測試中的不完美排錯現象。
Pham[18]在1993年提出了首個不完美排錯類型的軟件可靠性模型,假設如果檢測到的故障被清除,那么就有可能以恒定的速率β引入新的故障。 Kapur等人[19]在1996年提出考慮已經消除的錯誤可能會引起新的故障,提出了描述不完美排錯的軟件可靠性模型,并在三個失效數據集上進行實驗,結果表明該模型具有良好的靈活性。Li等人[20]提出了考慮測試覆蓋率和測試環境不確定性的不完美排錯模型,通過歸一化標準距離方法評估模型的性能表現。Shyur[21]將不完美排錯與變動點結合起來,提出一個新的模型,該模型在分段的數據集上獲得良好的性能表現。Huang等人[22]借由正弦周期函數描述錯誤波動率,描述了隨著測試時間的推移,不斷增加的新錯誤的影響將逐漸減弱的趨勢,提出了考慮不完美排錯和變動點的模型。Chatterjee等人[23]提出了一個考慮不完美排錯、故障排除概率、隨機測試環境和測試覆蓋的軟件可靠性增長模型,以調整R方和均方誤差指標來看,模型具有優秀的性能表現。
不完美排錯類的可靠性增長模型是對現實軟件測試環境的模擬,先后有眾多模型被提出。這些模型主要考慮了新故障的引入與已檢測故障的不完全排除。在實際的軟件測試過程中,通常無法完全排除已發現的所有故障,另外在排除故障的同時往往會引入新的故障。對于故障的不完全排除,在軟件可靠性模型中主要通過設定故障檢測率的方式進行模擬,即認為故障以概率p的可能被排除;對于新故障的引入,主要是通過隨時間變動的總故障數量影響因素進行衡量。不完美排錯類模型更為貼近真實測試環境,具有良好的性能表現。
3 不完美排錯SRGM效用驗證與分析
3.1 基本假設
基于現有RGM研究所作的公共假設[5,8~10,17,24~26],并考慮到軟件測試與排錯過程中的不完美情況,進行如下假設:a)故障移除過程滿足NHPP泊松分布;
b)在(t,t+)檢測到的故障數量與當前測試環境的軟件中潛伏的尚未發現的故障成正比,比例函數為b(t),b(t)被稱為故障檢測率;
c)在(t,t+)最多有一個失效發生,引起失效的故障可能會被不完美排除,即被修改的故障并不能被完全修復,故障以p(t)(也被稱為故障排除率)被修復成功,且故障修改中可能引入新故障;
d)排錯中花費的測試工作量是動態可配置的。
3.2 一般不完美排錯模型框架——線性形式
在軟件測試過程中,不完美排錯包含排錯的不完全性與新故障的引入,故障不斷被發現和修改過程中往往會伴隨著新故障的引入,使得軟件中總的故障個數存在增長的現象。為了定量地刻畫故障總數隨著故障檢測數量的增長趨勢,并考慮3.1節的假設與不完美排錯性質,可以得到以下微分方程:
dm(t)dt=b(t)×(a(t)-p(t)m(t))
a(t)=a+αm(t)(1)
將式(1)中的第二個式子代入第一個式子整理得到
dm(t)dt+b(t)[p(t)-α]m(t)=ab(t)(2)
觀察式(2),可得一階線性微分方程通解公式中的P(t)=b(t)[p(t)-α],Q(t)=ab(t)。將其代入通解公式求解并代入初始條件m(0)=0可得
m(t)=e-∫t0b(u)(p(u)-α)du∫t0ab(v)e-∫v0b(u)(p(u)-α)dudv(3)
式(3)中的p(t)表示檢測出的軟件故障的修復概率(0lt;p(t)≤1),故障修復率p(t)考慮了不完美排錯中排錯不完全性。式(2)中的a(t)與累計故障檢測數量函數m(t)成正比,隨時間變化的軟件總故障函數a(t)代表著在排錯過程中存在新故障的引入。由此得到第一種不完美排錯框架模型GID1,該模型假設故障排除概率固定為p,故障檢測率為常數b,軟件總故障數量a(t)正比于累計檢測故障函數m(t)。
3.3 一般不完美排錯模型框架——微分形式
除了假設軟件總故障數量函數a(t)與累計檢測故障函數m(t)線性相關得到線性形式的一般性不完美排錯框架外,還可以擴展將不完美排錯中的a(t)函數在t時刻的增長率與累計檢測故障函數m(t)在t時刻的增長率成函數k(t)關系,其對應的微分方程如式(4)所示。
dm(t)dt=b(t)×(a(t)-p(t)m(t))
da(t)dt=k(t)dm(t)dt(4)
考慮到微分方程求解的復雜性,在求解微分方程函數解時,令故障檢測率b(t)=b,故障修復率p(t)=p,微分比例函數k(t)=k。函數的解,由da(t)dt=k(t)dm(t)dt兩邊同時積分可得a(t)=k·m(t)+C1,將t=0代入,得a(0)=k·m(0)+C1,又因為m(0)=0,a(0)=a,所以C1=a(0)=a代入原式得a(t)=k·m(t)+a。觀察易知上式為微分方程形式,其中P(t)=b(k-p),Q(t)=ab,代入求解公式可得m(t)=e∫b(k-p)dt [∫abe-∫b(k-p)dtdt+C2]=ap-k+C2eb(k-p)t,該方程的初始條件為m(0)=0,a(0)=a,將t=0代入得m(0)=ap-k+C2·e0=ap-k+C2=0,所以C=ak-p,將C代入上式得
m(t)=a(ebt(k-p)-1)k-p(5)
將m(t)代入a(t)=k·m(t)+a,可得
a(t)=a(kebt(k-p)-p)k-p(6)
由此便得到第二種不完美排錯框架模型GID2,該模型假設故障排除概率固定為p,故障檢測率故障為常數b,軟件總故障數量a(t)增長率與累計檢測故障函數m(t)增長率存在函數關系k。當GID2框架模型中的函數關系k(t)固定為常量k時,即認為a(t)增長率與m(t)增長率線性相關,GID2模型可轉換為GID1模型。總體來說,GID2模型靈活性更強。
4 實例驗證
4.1 參與比較的模型與失效數據集
為驗證當前不完美排錯模型的基本性能,本文選取若干主要典型模型在六個真實的失效數據集上進行實驗,用以觀察模型的性能差異。同時也對本文提出的一般性不完美排錯模型進行實驗,觀察與分析模型在眾多失效數據集上的性能情況。對于線性形式的GID1,不妨代入故障檢測率函數b(t)=be-bt,故障檢測率函數p(t)=p,對應的累計檢測故障函數如表1所示。
本文選取的六個失效數據集[32~37]來自真實的計算機軟件和系統在測試過程中搜集的數據,記錄時間主要以天或周為單位。
4.2 比較標準
模型對真實失效數據集的擬合性能采用均方誤差值(mean square error,MSE)、variance、RMS-PE和回歸曲線方程的相關指數(R-square)進行度量;模型的預測能力采用相對誤差(relative error,RE)進行度量。
MSE=∑ki=1(yi-m(ti))2k(7)
R-square=∑ki=1[m(ti)-y]2∑ki=1[yi-y]2,y=1k∑ki=1yi(8)
RE=m(tq)-qq(9)
variance=∑ki=1(yi-m(ti)-Bias)2k-1,Bias=∑ki=1[m(ti)-yi]k(10)
RMS-PE=Bias2+variance2(11)
BMMRE=1k×∑ki=1m(ti)-yimin(m(ti),yi)(12)
其中:yi表示到ti時累積的失效個數,m(ti)表示到ti時利用模型得到的估算值,k表示失效數據樣本數量。顯然,MSE、variance、RMS-PE和BMMRE的值越小,R-square值越接近于1,擬合效果越好;RE越趨近于0,模型預測效果越好。
4.3 實驗結果分析
4.3.1 擬合性能分析
基于參數擬合結果,本文繪制出了不同模型在四個真實失效數據集上的擬合曲線,如圖2所示。圖2中描述了不同數據集上參與比較的模型和本文模型的擬合曲線。根據圖2可以看出,參與實驗的模型均為不完美排錯模型,但這些模型的表現存在一定差異。
整體上,M-1和M-2模型擬合性能最差,這個模型的擬合預先與原數據存在較大偏差,完全不能表現累計故障檢測數量的基本增長趨勢。M-3和M-4模型雖然能夠基本描述失效數據集中的累積故障檢測數量的增長趨勢,但其擬合曲線與真實曲線仍然存在較大偏差,特別是M-4模型在數據集的初期與末期的估計值與真實數據存在較大偏差。M-5和M-6模型在大多數數據集上的擬合曲線都較為接近真實曲線,但在個別數據集上其性能表現仍表現為較大偏差(如M-5在DS2上的性能表現)。本文提出的考慮故障修復概率的一般性不完美排錯模型GID1和GID2在本文選擇的所有失效數據集上擬合性能表現良好,相較于參與對比的已發表的不完美排錯模型,模型的擬合曲線與真實失效數據曲線差距較小。通過觀察圖2的擬合曲線可初步證明本文模型在數據集擬合方面具有良好的性能。為了進一步證明本文模型的擬合性能,表2展示了本文涉及的模型在失效數據集上的擬合性能指標值。結合擬合性能指標值與擬合曲線可初步發現:
a)性能指標與擬合曲線具有相關性,擬合曲線更為直觀地表現了模型的擬合優劣,但在擬合曲線較為相近的模型指標進行比較時,性能指標將提供量化的對比數據。M-1和M-2模型的擬合曲線增長趨勢與真實失效數據集的增長曲線相反,這在性能指標上表現為較大的MSE、variance與RMS-PE以及遠大于1的相關系數R-square。本文模型的擬合曲線最為貼近真實曲線,也同時擁有最小的MSE、variance、RMS-PE與BMMRE以及最接近1的相關系數指標。
b)從失效數據集角度出發,對于經典凸型指數增長的失效數據集DS1、DS2、DS3和DS4,M-3、M-6與一般性不完美排錯模型GID1和GID2模型具有良好的擬合性能指標,綜合四個失效數據集的數據,M-6和GID2的性能表現最好。對于凹型指數增長數據集DS5,GID1的擬合性能指標優于所有其他參與對比的模型,GID2、M-6和M-4也表現出良好的擬合性能。開源軟件具有社區活躍、使用與排錯同步進行等特點,在開源軟件失效數據集DS6上,模型GID1具有最好出色的擬合性能指標值,表現為最低的均方誤差與最接近1的相關系數。模型GID2在該數據集上也表現為較好的擬合性能。
本文提出的兩個通用性模型是基于不完美排錯下的總故障數量隨著累積檢測故障數量的增加而增加這一基礎,通過在六個失效數據集的實證分析發現,本文提出的兩個模型具有良好的擬合性能與優秀的靈活性。與現有的不完美排錯模型的橫向對比展示了本文提出的兩種模型的良好的擬合性能,在不同類型的失效數據集上,本文模型具有優秀的擬合性能指標,說明了一般性不完美排錯模型的靈活性。
4.3.2 預測性能分析
軟件可靠性模型的擬合性能描述了在失效數據集所有軟件時期內軟件與真實數據的差異大小,但無法衡量未來軟件測試時刻模型的故障數量與實際故障數量是否一致。為了更全面地了解軟件可靠性模型對于未來數據的表現能力,還需要對模型的預測性能進行分析。
失效數據集是過去及當前時刻的累計故障檢測數量集合,并不包括尚未發生的未來的數據。因此軟件可靠性模型的預測能力可以通過基于軟件測試前期的部分數據“預測”軟件測試后期的數據,通過“預測值”與真實數據的差距量化模型的預測能力。圖3展示了本文中的六個模型在遴選的六個失效數據集上的擬合曲線RE。對于某一時刻t,其RE值是將t時刻及之前的數據作為“歷史數據”進行參數擬合,得到確定參數的模型表達式,將最新的測試數據代入模型表達式,計算所有誤差的和并標準化后的結果。RE值描述了模型估計值與真實數據值的誤差大小,越接近于0,代表誤差越小。
分析圖3的預測曲線可以看出:
a)擬合性能與預測性能的表現具有相關性,擬合性能優秀的模型在同一數據集上預測性能同樣出色,反之亦然。M-1和M-2模型在大多數失效數據集上的擬合性能較差,同樣地,其預測曲線距0水平線差距大,即使在測試后期,也難以收斂到0水平線。而M-5和M-6模型與真實故障曲線較為接近,表現出較為良好的擬合性能,其預測曲線也能快速地收斂于水平線。
b)框架模型GID1和GID2具有良好的靈活性。本文提出的GID1和GID2模型在本文選擇的所有數據集上均能快速收斂于0水平線附近,表現了出色的預測能力,能準確地預測軟件系統在未來的累積檢測故障數量。其他不完美排錯模型的建模基礎均是直接設定某種形式的總故障數量增長函數,如果這些假設與軟件系統的實際情況不一致,在不完美排錯模型角度表現為模型的擬合性能和預測性能差。
c)在大多數的失效數據集上,各模型的預測曲線均表現出前期偏差大、后期偏差小的現象,說明無論模型的預測性能如何,在少量數據的基礎上對未來大量數據進行預測的結果將存在較大的偏差,隨著數據量的增加,預測偏差越小。在模型的實際應用中,也應該避免通過少量數據進行長遠預測。
4.4 相關討論
a)本文參與比較的模型都是不完美排錯模型,但模型的擬合與預測性能表現卻存在一定差異,原因可歸結為所選的不完美排錯模型的組成部分不同,即軟件總故障數量與軟件故障檢測率的不同。在統一框架下,M-1模型由隨時間指數增長的總故障數量函數與常數型故障檢測率函數構成,故M-1模型也獲得了指數凸型增長的趨勢,在多數數據集上的性能表現較差。
b)本文提出了兩種一般性框架模型:總故障數量函數a(t)和累計檢測故障函數m(t)線性增長的GID1模型以及兩者的增長率成函數關系k(t)增長的GID2模型。當式(4)中的k(t)為常量k時,GID2模型與GID1模型形式上是一致的,兩個模型的擬合預測性能也表現出一致性。總體來說,第二種一般性框架模型具有更寬泛的形式和更強的柔韌性,適用范圍更廣,理論上具有更好的性能表現,但形式復雜的k(t)會造成累計故障檢測數量m(t)的推導上的困難,在實際應用第二種一般性模型時,應對此加以考慮。
c)本文在不同類型的失效數據集上進行實例驗證,實驗結果表明本文提出的通用模型GID1和GID2均表現出了優秀的擬合性能與穩定的預測性能。相較于其他不完美排錯模型,一般性不完美排錯框架模型并沒有直接設定軟件總故障數量函數a(t),而是將軟件總故障數量與累計故障檢測數量關聯起來,兩者直接成線性關系或函數k(t)關系。由于不直接設定a(t)關于測試時間t的關系,不完美排錯中的新故障引入不再隨測試時間t的變化而直接變化,而是以累積故障檢測數量函數m(t)作為傳導,進一步提升了模型的靈活度。在擬合性能方面表現為在不同的失效數據集上均具有良好的擬合性能和預測性能。
d)一般性模型在本文選擇的數據集上都表現出了穩定且良好的擬合性能和預測性能。由于軟件測試過程中故障的數量與出現的時刻是無法預測的,所有軟件可靠性模型都是在一些假設的基礎上通過數學模型推導而來,然而測試環境卻存在諸多變量,當模型的基本假設符合失效數據集對應的測試環境時,模型的擬合性能優秀;當模型的基本假設不符合某一失效數據集時,模型的擬合曲線與真實的測試數據便產生了較大的偏差。在應用本文提出的一般性不完美排錯框架模型時,可通過設置不同的故障檢測率函數b(t)提高一般性模型在特定數據集的性能表現。例如對于S型增長的數據集,可將框架模型中的故障檢測率b(t)設置為S型增長函數,使得模型能夠更好地擬合失效數據集。在實際軟件測試環節中,對軟件可靠性通過軟件可靠性增長模型進行建模時,應該結合已經收集到的累計故障數量數據、軟件測試人員數量程度、測試環境影響因素等多方面因素選取合適的變量,代入框架模型中進行有效的估計預測。
5 結束語
本文主要從不完美排錯角度出發,探討了不完美排錯的兩種形式,即新故障的引入和排錯的不完全性,并建立了同時考慮這兩種形式的一般性不完美排錯模型。將軟件總故障數量與累計故障檢測數量進行關聯,以描述真實測試環境下的新故障引入,同時設定故障排除率,對實際測試過程中的排錯不完全性建模。本文模型在建模角度對真實的不完美排錯過程進行描述,實驗結果表明本文模型不僅性能表現出色,還具有較好的靈活度,在選擇的數據集上均表現出良好的擬合性能和預測性能。在未來的研究中,可進一步對不完美排錯進行研究,如引入環境影響因子與變動點,考慮軟件不同階段的測試環境差異;此外,也可從模型性能指標角度提出更全面的決策算法,對模型的性質進行分析。
參考文獻:
[1]Huang C Y,Kuo S Y,Lyu M R.An assessment of testing-effort dependent software reliability growth models[J].IEEE Trans on Reliability,2007,56(2):198-211.
[2]王金勇,張策,米曉萍,等.Weibull分布引進故障的軟件可靠性增長模型[J].軟件學報,2019,30(6):1759-1777.(Wang Jinyong,Zhang Ce,Mi Xiaoping,et al.Software reliability growth model based on Weibull distribution introduced faults[J].Journal of Software,2019,30(6):1759-1777.)
[3]Stringfellow C,Andrews A A.An empirical method for selecting software reliability growth models[J].Empirical Software Enginee-ring,2002,7(12):319-343.
[4]Huang C Y,Lyu M R.Optimal release time for software systems considering cost,testing-effort,and test efficiency[J].IEEE Trans on Reliability,2005,54(4):583-591.
[5]Kapur P K,Pham H,Anand S,et al.A unified approach for developing software reliability growth models in the presence of imperfect debugging and error generation[J].IEEE Trans on Reliability,2011,60(1):331-340.
[6]Peng Rui,Ma Xiaoyang,Zhai Qinging,et al.Software reliability growth model considering first-step and second-step fault dependency[J].Journal of Shanghai Jiaotong University:Science,2019,24(4):477-479.
[7]張策,孟凡超,考永貴,等.軟件可靠性增長模型研究綜述[J].軟件學報,2017,28(9):2402-2430.(Zhang Ce,Meng Fanchao,Kao Yonggui,et al.Survey of software reliability growth model[J].Journal of Software,2017,28(9):2402-2430.)
[8]Rana R,Staron M,Berger C,et al.Selecting software reliability growth models and improving their predictive accuracy using historical projects data[J].Journal of Systems and Software,2014,98(12):59-78.
[9]Anniprincy B,Sridhar S.Measuring software reliability and release time using SRGM tool[J].International Journal of Scientific Research and Education,2014,2(5):785-796.
[10]張策,孟凡超,萬錕,等.SRGM建模類別與性能分析[J].哈爾濱工業大學學報,2016,48(8):171-178.(Zhang Ce,Meng Fanchao,Wan Kun,et al.Analysis on SRGM modeling categories and perfor-mances[J].Journal of Harbin Institute of Technology,2016,48(8):171-178.)
[11]張策,劉宏偉,白睿,等.可靠性模型中故障檢測率研究述評[J].軟件學報,2020,31(9):2802-2825.(Zhang Ce,Liu Hongwei,Bai Rui,et al.Review on fault detection rate in reliability model[J].Journal of Software,2020,31(9):2802-2825.)
[12]張策,呂為工,邱忠銀,等.不完美排錯下測試覆蓋相關的軟件可靠性模型[J].湖南大學學報:自然科學版,2021,48(4):26-35.(Zhang Ce,Lyu Weigong,Qiu Zhongyin,et al.Testing coverage software reliability model under imperfect debugging[J].Journal of Hunan University:Natural Sciences,2021,48(4):26-35.)
[13]Goel A L,Okumoto K.Time-dependent error-detection rate model for software reliability and other performance measures[J].IEEE Trans on Reliability,1979,28(3):206-211.
[14]Yamada S,Ohtera H,Narihisa H.Software reliability growth models with testing-effort[J].IEEE Trans on Reliability,1986,35(1):19-23.
[15]Ahmad N,Khan M G M,Rafi L S.A study of testing-effort dependent inflection S-shaped software reliability growth models with imperfect debugging[J].International Journal of Quality and Reliability Management,2010,27(1):89-110.
[16]Li Qiuying,Pham H.A generalized software reliability growth model with consideration of the uncertainty of operating environments[J].IEEE Access,2019,7:84253-84267.
[17]Kim Y S,Song K Y,Pham H,et al.A software reliability model with dependent failure and optimal release time[J].Symmetry,2022,14(2):343-364.
[18]Pham H.Software reliability assessment:imperfect debugging and multiple failure types in software development,EGandG-RAAM-10737[R].Idaho,FA:Idaho National Engineering Laboratory,1993.
[19]Kapur P K,Younes S.Modelling an imperfect debugging phenomenon in software reliability[J].Microelectronics Reliability,1996,36(5):645-650.
[20]Li Qiuying,Pham H.NHPP software reliability model considering the uncertainty of operating environments with imperfect debugging and testing coverage[J].Applied Mathematical Modelling,2017,51(11):68-85.
[21]Shyur H J.A stochastic software reliability model with imperfect-debugging and change-point[J].Journal of Systems and Software,2003,66(2):135-141.
[22]Huang Y S,Chiu K C,Chen Wanming.A software reliability growth model for imperfect debugging[J].Journal of Systems and Software,2022,188(6):111267.
[23]Chatterjee S,Saha D,Sharma A,et al.Reliability and optimal release time analysis for multi up-gradation software with imperfect debugging and varied testing coverage under the effect of random field environments[J].Annals of Operations Research,2022,312(5):65-85.
[24]Lin C T,Huang C Y.Enhancing and measuring the predictive capabi-lities of testing-effort dependent software reliability models[J].Journal of Systems and Software,2008,81(6):1025-1038.
[25]Xie Min,Yang Bo.A study of the effect of imperfect debugging on software development cost[J].IEEE Trans on Software Enginee-ring,2003,29(5):471-473.
[26]Kapur P K,Gupta A,Shatnawi O,et al.Testing-effort control problem using flexible software reliability growth model with change-point[J].International Journal of Performability Engineering,2006,2(3):245-262.
[27]Pham H.An imperfect-debugging fault-detection dependent-parameter software[J].International Journal of Automation and Computing,2007,4(10):325-328.
[28]Zhang Xuemei,Teng Xiaolin,Pham H.Considering fault removal efficiency in software reliability assessment[J].IEEE Trans on Systems Man and Cybernetics,Part A:Systems and Humans,2003,33(1):114-120.
[29]謝景燕,安金霞,朱紀洪.考慮不完美排錯情況的NHPP類軟件可靠性增長模型[J].軟件學報,2010,21(5):942-949.(Xie Jing-yan,An Jinxia,Zhu Jihong.NHPP software reliability growth model considering imperfect debugging[J].Journal of Software,2010,21(5):942-949.)
[30]Iqbal J.Software reliability growth models:a comparison of linear and exponential fault content functions for study of imperfect debugging situations[J].Cogent Engineering,2017,4(1):1286739.
[31]Verma V,Anand S,Aggarwal A G.Software warranty cost optimization under imperfect debugging[J].International Journal of Quality and Reliability Management,2019,37(9/10):1233-1257.
[32]Pham H.Software reliability and cost models:perspectives,comparison,and practice[J].European Journal of Operational Research,2003,149(3):475-489.
[33]Zhang Xuemei,Pham H.A software cost model with warranty cost,error removal times and risk costs[J].IIE Transactions,1998,30(12):1135-1142.
[34]Wood A.Predicting software reliability[J].Computer,1996,29(11):69-77.
[35]Ehrlich W,Prasanna B,Stampfel J,et al.Determining the cost of a stop-test decision (software reliability)[J].IEEE Software,1993,10(2):33-42.
[36]Zhang Xuemei,Pham H.Software field failure rate prediction before software deployment[J].Journal of Systems and Software,2006,79(3):291-300.
[37]Yaghoobi T.Parameter optimization of software reliability models using improved differential evolution algorithm[J].Mathematics and Computers in Simulation,2020,177(11):46-62.