李迎春 曲立 翟永正 高凱燁 彭銳
摘? ?要:隨著科技的進步和全面智能化時代的到來,軟件在人類社會扮演著愈發(fā)重要的角色,因此軟件的可靠性成為了一個重要的研究領域。然而到目前為止,還沒有研究綜合考慮到軟件錯誤檢測兩階依賴性和校正延遲效應的文獻。文章提出了一個軟件可靠性增長模型。該模型考慮了錯誤檢測的兩階依賴性和錯誤校正的延遲效應。在文章中,軟件錯誤被分為三種類型:獨立錯誤、一階依賴錯誤和二階依賴錯誤。后兩種錯誤依次對前一種錯誤具有依賴性,即只有相應的錯誤被檢測之后,對應的依賴性錯誤才能被檢測到。利用該模型可以計算出不同時刻下錯誤檢測出的數(shù)量和校正的數(shù)量。這個模型相比于之前的模型更加符合實際情況。該模型對于軟件投放時間等重要決策具有很大的參考價值。
關鍵詞:兩階依賴性;延遲時間;錯誤檢測;錯誤校正;軟件可靠性
Abstract: With the advancement of science and technology and the advent of the era of comprehensive intelligence, software is playing an increasingly important role in human society. Therefore, software reliability has always been an important research area. However, up to now, there has been no literature that comprehensively considers the second-step dependence of software error detection and correction delay effects. This paper proposes a software reliability growth model. The model considers the second-step dependence of error detection and the delay effect of error correction. In this paper, software errors are classified into three types: independent errors, first-step dependency errors, and second-step dependency errors. The latter two errors have a dependency on the former error in turn, that is, only after the corresponding error is detected can the corresponding dependency error be detected. The model can be used to calculate the number of errors detected and the number of corrections at different times. This model is more in line with the actual situation than the previous model. This model has great reference value for important decisions such as software launch time.
Key words: second-step dependence;delay time;error detection;error correction;software reliability
1 引言
隨著信息技術的發(fā)展,計算機已經(jīng)在社會的各個領域被廣泛使用。作為計算機與人交互的核心工具,軟件的作用顯得越來越重要。近年來,隨著人工智能等新興技術的發(fā)展,算法和程序的進步速度,已經(jīng)遠遠的超過當前社會其他技術的進步速度。由此帶來軟件代碼的長度成幾何倍數(shù)的增長,因此軟件的質(zhì)量已經(jīng)成為一個非常有意義的研究內(nèi)容。
軟件的可靠性是衡量軟件質(zhì)量的一個關鍵指標,是可以廣義地應用于衡量軟件可信性。到目前為止,已經(jīng)有很多學者對軟件可靠性進行了多年的研究。軟件可靠性的定義為軟件在給定的時間內(nèi)保證無錯誤產(chǎn)生的狀態(tài)下持續(xù)運行的概率。為了提高軟件的可靠性,軟件在面市前通常要經(jīng)歷一個測試的過程。在這個過程中,軟件里的錯誤會被調(diào)試人員發(fā)現(xiàn)和更正。在過去的半個世紀,出現(xiàn)了一系列用于評估軟件在測試過程中可靠性增長的模型。
在眾多軟件可靠性增長模型中,非齊次泊松模型(NHPP模型)是最常用的?;诓煌募僭O,非齊次泊松模型被廣泛地應用于軟件工程領域。在眾多假設中,兩個最常用的假設是:(1)錯誤的發(fā)生是獨立的;(2)被發(fā)現(xiàn)的錯誤會被立刻修復。
事實上,在錯誤被發(fā)現(xiàn)之后,通常需要先報告錯誤的存在,并進行隔離,最終才能修復。這說明,在軟件的測試過程中,錯誤的完全修復會在一個延遲的時間之后。因此,將軟件錯誤的檢測過程(Fault Detection Process, FDP)和校正過程(Fault Correction Process,F(xiàn)CP)進行聯(lián)合建模,將會是一個更貼近現(xiàn)實情況的方案。Schneidewind首次聲明了需要對FCP進行建模,而且FCP是影響軟件可靠性的一個關鍵過程。在他的研究中,延遲時間以函數(shù)形式添加入模型中。在2003年時,Shyur提出了非光滑F(xiàn)DP模型。Huang和Lin在考慮錯誤的獨立和修復延遲的情況下,對軟件的可靠性進行了分析。Huang和Huang在2010年提出了一個考慮到FCP延遲時間的FDP排隊模型。Peng和Zhai提出了若干FDP和FCP的組合模型,并以此研究了軟件的最佳面市時間。這些研究,將軟件可靠性模型逐漸推向?qū)嶋H應用。
在實際中,一些錯誤只有當其所依賴的某個其它錯誤被發(fā)現(xiàn)時才有可能會被發(fā)現(xiàn)。然而,在本文討論的研究中,除了Peng和Zhai的研究,都假設不同錯誤的發(fā)現(xiàn)是相互獨立的。而在Peng和Zhai的研究中有兩類錯誤,即獨立錯誤和依賴錯誤。其中,依賴錯誤只有當其依賴的獨立錯誤被發(fā)現(xiàn)時才可以被檢測到。實際情況可能更加復雜,即依賴錯誤可能不僅僅只有依賴于獨立錯誤的一階依賴錯誤, 還可能有依賴于一階依賴錯誤的二階依賴錯誤。Peng等人通過考慮一階和二階錯誤依賴性,研究了軟件可靠性的增長過程。然而,他們僅研究了FDP,沒有考慮FCP。
在本文中,將基于一階和二階的錯誤依賴性以及具有延遲時間的錯誤校正對FDP和FCP進行聯(lián)合建模。本文在第2節(jié)構(gòu)建了一個基礎的模型框架;第3節(jié)提出了具有錯誤修復延遲時間的模型;第4節(jié)總結(jié)這篇文章并提出若干未來的研究方向。
2 模型總體框架
這里首先對研究的問題進行概述。在本文中,軟件錯誤被分為獨立錯誤、一階依賴錯誤和二階依賴錯誤。獨立錯誤可以被獨立地檢測和校正,不需要等其它錯誤被發(fā)現(xiàn)才能發(fā)現(xiàn)。一階依賴錯誤只有在對應的獨立錯誤被校正移除之后才能被檢測到。相似地,二階依賴錯誤只有在對應的一階依賴錯誤被校正移除之后才能被檢測到。
根據(jù)問題描述,本文設置若干假設及參數(shù)。假設三種錯誤的數(shù)量分別為a0(獨立錯誤)、a1(一階依賴錯誤)和a2(二階依賴錯誤)。因為軟件測試過程的環(huán)境是比較穩(wěn)定的,所以這里假設三種錯誤的檢測概率分是恒定的b0(獨立錯誤)、b1(一階依賴錯誤)和b2(二階依賴錯誤)。假設三種錯誤的校正移除延遲時間分別為c0(獨立錯誤)、c1(一階依賴錯誤)和c2(二階依賴錯誤)。
根據(jù)問題描述和假設,本文采用建模過程。首先對獨立錯誤的FDP(FDPL)和FCP(FCPL)進行建模,然后依據(jù)FDPL對一階依賴錯誤構(gòu)建其FDP(FDPFD)及相應的FCP(FCPFD)。類似地,依據(jù)FDPFD可以對二階依賴錯誤構(gòu)建其FDP(FDPSD)及相應的FCP(FCPSD)。將三種錯誤的FDP和FCP匯總,可以得到模型總體的FDP(FDPT)和FCP(FCPT)。整個模型框架中的所有子過程都是根據(jù)均值公式來完成的。
3 具體模型實例
這一節(jié)展示一個具體的模型。因為軟件測試過程是在一個比較穩(wěn)定的環(huán)境下進行的,所以本文假設三種錯誤的檢測概率和校正移除延遲分布是相同的,即以及。
3.1 FDPL和FCPL
3.2 FDPFD和FCP
根據(jù)本文模型框架可知,假設一階依賴錯誤只有在對應的獨立錯誤被檢測之后才能被檢測到,因此由于檢測是在相同的環(huán)境中檢測完成的,被檢測到的一階依賴錯誤占一階依賴錯誤比例應與被檢測到的獨立錯誤數(shù)量占全部獨立錯誤的比例一致。根據(jù)上一節(jié)分析,被檢測到的獨立數(shù)量占全部獨立錯誤數(shù)量的比例為。假設FDPFD服從非齊次泊松分布并且在一定時間內(nèi)檢測出的一階依賴錯誤與未檢測出的而又可以被檢測到的一階依賴錯誤成比例,那么可以得到微分方程:
3.3 FDPSD和FCPSD
與一階依賴錯誤相似,研究人員還假設了二階依賴錯誤只有在對應的一階依賴錯誤被檢測之后才能被檢測到。因此,同樣地,可以被檢測到的二階依賴錯誤占全部的二階依賴錯誤比例應與被檢測到的一階依賴錯誤占全部一階依賴錯誤的比例一致。類似地,被檢測到的一階依賴錯誤數(shù)量占全部一階依賴錯誤的比例為。假設FDPSD服從非齊次泊松分布并且在一定時間內(nèi)檢測出的二階依賴錯誤與未檢測出的而又可以被檢測到的錯誤數(shù)量成比例,那么可以得到微分方程:
3.4 FDPT和FCPT
在依次得到三種錯誤的檢測數(shù)量模型和校正移除數(shù)量模型之后,可以匯總得到總的錯誤檢測數(shù)量模型和校正移除數(shù)量模型。t時刻軟件的錯誤檢測總數(shù)為:
4 結(jié)束語
本文提出了一個考慮錯誤檢測兩階依賴性和錯誤校正延遲效應的軟件可靠性增長模型。該模型中,錯誤被分為三種類型:獨立錯誤、一階依賴錯誤和二階依賴錯誤。后兩種錯誤依次對前一種錯誤具有依賴性,即只有相應的錯誤被檢測之后,對應的依賴性錯誤才能被檢測到。在該模型框架下,可以推斷出不同時刻下錯誤檢測出的數(shù)量和錯誤校正移除的數(shù)量。這個模型相比于之前的模型更加符合實際情況。
在未來的研究中,首先可以利用實際數(shù)據(jù)對模型的參數(shù)進行擬合訓練,然后進行敏感性分析,從而得到不同條件下更具體的可靠性增長趨勢。其次,還可以將所建立軟件可靠性模型應用于軟件投放時間等重要決策,以達到優(yōu)化成本的目的。
除此之外,本文雖然將故障的依賴性與故障校正延遲效應考慮了進去,但是仍與實際情況有一定差距,因此在以后的工作中研究人員會考慮更具代表性的延遲函數(shù)建立模型,并可利用貝葉斯技術根據(jù)實際情況更新模型參數(shù),使得模型更加貼合實際情況。
另外,也可以具體分析影響故障相關性的因素,并且對此進行量化分析,使得模型的假設更加合理化,提高模型的評估和預測精度。
參考文獻
[1] 羅平.網(wǎng)絡中軟件可信性內(nèi)涵、模型及度量研究[J].網(wǎng)絡空間安全,2017,8(Z1):27-35.
[2] Lyu, M. R..Handbook of Software Reliability Engineering[M]. Mc Graw-Hill: Hightstown, 1998.
[3] Pham, H. Software reliability and cost model: Perspectives, comparison, and practice[J]. European Journal of Operational Research, 2003, 147: 475-489.
[4] Sun, J. & Liu, X. M. Software reliability model for negative exponential distribution error time[J]. Journal of University of Electronic Science and Technology of China, 2005,34(1): 53-56.
[5] Lo, J. H. Effect of the delay time in fixing a fault on software error models[J].? Proceeding of the 31st Annual International Computer and Application Conference, 2007: 711-716.
[6] Xie, M., Hu, Q. P., Wu, Y. P. & Ng, S. H. A study of the modeling and analysis of software fault detection and fault-correction processes[J].Journal of Quality and Software Reliability Engineering International, 2007, 23: 459-470.
[7] Schneidewind,N.Analysis of error processes in computer software[J]. Sigplan Notice, 1975,10: 337-346.
[8] Shyur,H. J. A stochastic software reliability model with imperfect-debugging and change-point[J]. Journal of Systems and Software, 2003,66: 135-141.
[9] Huang, C. Y. & Huang, T. Y. Software reliability analysis and assessment using queueing analysis and assessment using queueing models with multiple change-points[J].Computers &Mathematics with Applications, 2010, 60: 2015-2030.
[10] Peng, R. & Zhai, Q. Modeling of software fault detection and correction processes with fault dependency[J]. Eksploatacja I Niezawodnosc Maintenance and Reliability, 2017, 19: 467–475.
[11] Kapur, P. K. & Younes, S. Software reliability growth model with error dependency[J]. Microelectronics Reliability, 1995, 35: 273-278.
[12] Peng, R., Ma X. Y., Zhai Q. Q. & Gao K. Y. Software reliability growth model considering first-step and second-step fault dependency. [J].Journal of Shanghai Jiaotong University(Science),2019,24(04):477-479.
[13] Huang, C. Y. & Lin, C. T., Software reliability analysis by considering fault dependency and debugging time lag[J].IEEE Transactions on Reliability, 2006,55: 436-450.