李迎春 曲立 翟永正 高凱燁 彭銳
摘? ?要:隨著科技的進(jìn)步和全面智能化時(shí)代的到來,軟件在人類社會(huì)扮演著愈發(fā)重要的角色,因此軟件的可靠性成為了一個(gè)重要的研究領(lǐng)域。然而到目前為止,還沒有研究綜合考慮到軟件錯(cuò)誤檢測(cè)兩階依賴性和校正延遲效應(yīng)的文獻(xiàn)。文章提出了一個(gè)軟件可靠性增長(zhǎng)模型。該模型考慮了錯(cuò)誤檢測(cè)的兩階依賴性和錯(cuò)誤校正的延遲效應(yīng)。在文章中,軟件錯(cuò)誤被分為三種類型:獨(dú)立錯(cuò)誤、一階依賴錯(cuò)誤和二階依賴錯(cuò)誤。后兩種錯(cuò)誤依次對(duì)前一種錯(cuò)誤具有依賴性,即只有相應(yīng)的錯(cuò)誤被檢測(cè)之后,對(duì)應(yīng)的依賴性錯(cuò)誤才能被檢測(cè)到。利用該模型可以計(jì)算出不同時(shí)刻下錯(cuò)誤檢測(cè)出的數(shù)量和校正的數(shù)量。這個(gè)模型相比于之前的模型更加符合實(shí)際情況。該模型對(duì)于軟件投放時(shí)間等重要決策具有很大的參考價(jià)值。
關(guān)鍵詞:兩階依賴性;延遲時(shí)間;錯(cuò)誤檢測(cè);錯(cuò)誤校正;軟件可靠性
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 引言
隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)已經(jīng)在社會(huì)的各個(gè)領(lǐng)域被廣泛使用。作為計(jì)算機(jī)與人交互的核心工具,軟件的作用顯得越來越重要。近年來,隨著人工智能等新興技術(shù)的發(fā)展,算法和程序的進(jìn)步速度,已經(jīng)遠(yuǎn)遠(yuǎn)的超過當(dāng)前社會(huì)其他技術(shù)的進(jìn)步速度。由此帶來軟件代碼的長(zhǎng)度成幾何倍數(shù)的增長(zhǎng),因此軟件的質(zhì)量已經(jīng)成為一個(gè)非常有意義的研究?jī)?nèi)容。
軟件的可靠性是衡量軟件質(zhì)量的一個(gè)關(guān)鍵指標(biāo),是可以廣義地應(yīng)用于衡量軟件可信性。到目前為止,已經(jīng)有很多學(xué)者對(duì)軟件可靠性進(jìn)行了多年的研究。軟件可靠性的定義為軟件在給定的時(shí)間內(nèi)保證無錯(cuò)誤產(chǎn)生的狀態(tài)下持續(xù)運(yùn)行的概率。為了提高軟件的可靠性,軟件在面市前通常要經(jīng)歷一個(gè)測(cè)試的過程。在這個(gè)過程中,軟件里的錯(cuò)誤會(huì)被調(diào)試人員發(fā)現(xiàn)和更正。在過去的半個(gè)世紀(jì),出現(xiàn)了一系列用于評(píng)估軟件在測(cè)試過程中可靠性增長(zhǎng)的模型。
在眾多軟件可靠性增長(zhǎng)模型中,非齊次泊松模型(NHPP模型)是最常用的。基于不同的假設(shè),非齊次泊松模型被廣泛地應(yīng)用于軟件工程領(lǐng)域。在眾多假設(shè)中,兩個(gè)最常用的假設(shè)是:(1)錯(cuò)誤的發(fā)生是獨(dú)立的;(2)被發(fā)現(xiàn)的錯(cuò)誤會(huì)被立刻修復(fù)。
事實(shí)上,在錯(cuò)誤被發(fā)現(xiàn)之后,通常需要先報(bào)告錯(cuò)誤的存在,并進(jìn)行隔離,最終才能修復(fù)。這說明,在軟件的測(cè)試過程中,錯(cuò)誤的完全修復(fù)會(huì)在一個(gè)延遲的時(shí)間之后。因此,將軟件錯(cuò)誤的檢測(cè)過程(Fault Detection Process, FDP)和校正過程(Fault Correction Process,F(xiàn)CP)進(jìn)行聯(lián)合建模,將會(huì)是一個(gè)更貼近現(xiàn)實(shí)情況的方案。Schneidewind首次聲明了需要對(duì)FCP進(jìn)行建模,而且FCP是影響軟件可靠性的一個(gè)關(guān)鍵過程。在他的研究中,延遲時(shí)間以函數(shù)形式添加入模型中。在2003年時(shí),Shyur提出了非光滑F(xiàn)DP模型。Huang和Lin在考慮錯(cuò)誤的獨(dú)立和修復(fù)延遲的情況下,對(duì)軟件的可靠性進(jìn)行了分析。Huang和Huang在2010年提出了一個(gè)考慮到FCP延遲時(shí)間的FDP排隊(duì)模型。Peng和Zhai提出了若干FDP和FCP的組合模型,并以此研究了軟件的最佳面市時(shí)間。這些研究,將軟件可靠性模型逐漸推向?qū)嶋H應(yīng)用。
在實(shí)際中,一些錯(cuò)誤只有當(dāng)其所依賴的某個(gè)其它錯(cuò)誤被發(fā)現(xiàn)時(shí)才有可能會(huì)被發(fā)現(xiàn)。然而,在本文討論的研究中,除了Peng和Zhai的研究,都假設(shè)不同錯(cuò)誤的發(fā)現(xiàn)是相互獨(dú)立的。而在Peng和Zhai的研究中有兩類錯(cuò)誤,即獨(dú)立錯(cuò)誤和依賴錯(cuò)誤。其中,依賴錯(cuò)誤只有當(dāng)其依賴的獨(dú)立錯(cuò)誤被發(fā)現(xiàn)時(shí)才可以被檢測(cè)到。實(shí)際情況可能更加復(fù)雜,即依賴錯(cuò)誤可能不僅僅只有依賴于獨(dú)立錯(cuò)誤的一階依賴錯(cuò)誤, 還可能有依賴于一階依賴錯(cuò)誤的二階依賴錯(cuò)誤。Peng等人通過考慮一階和二階錯(cuò)誤依賴性,研究了軟件可靠性的增長(zhǎng)過程。然而,他們僅研究了FDP,沒有考慮FCP。
在本文中,將基于一階和二階的錯(cuò)誤依賴性以及具有延遲時(shí)間的錯(cuò)誤校正對(duì)FDP和FCP進(jìn)行聯(lián)合建模。本文在第2節(jié)構(gòu)建了一個(gè)基礎(chǔ)的模型框架;第3節(jié)提出了具有錯(cuò)誤修復(fù)延遲時(shí)間的模型;第4節(jié)總結(jié)這篇文章并提出若干未來的研究方向。
2 模型總體框架
這里首先對(duì)研究的問題進(jìn)行概述。在本文中,軟件錯(cuò)誤被分為獨(dú)立錯(cuò)誤、一階依賴錯(cuò)誤和二階依賴錯(cuò)誤。獨(dú)立錯(cuò)誤可以被獨(dú)立地檢測(cè)和校正,不需要等其它錯(cuò)誤被發(fā)現(xiàn)才能發(fā)現(xiàn)。一階依賴錯(cuò)誤只有在對(duì)應(yīng)的獨(dú)立錯(cuò)誤被校正移除之后才能被檢測(cè)到。相似地,二階依賴錯(cuò)誤只有在對(duì)應(yīng)的一階依賴錯(cuò)誤被校正移除之后才能被檢測(cè)到。
根據(jù)問題描述,本文設(shè)置若干假設(shè)及參數(shù)。假設(shè)三種錯(cuò)誤的數(shù)量分別為a0(獨(dú)立錯(cuò)誤)、a1(一階依賴錯(cuò)誤)和a2(二階依賴錯(cuò)誤)。因?yàn)檐浖y(cè)試過程的環(huán)境是比較穩(wěn)定的,所以這里假設(shè)三種錯(cuò)誤的檢測(cè)概率分是恒定的b0(獨(dú)立錯(cuò)誤)、b1(一階依賴錯(cuò)誤)和b2(二階依賴錯(cuò)誤)。假設(shè)三種錯(cuò)誤的校正移除延遲時(shí)間分別為c0(獨(dú)立錯(cuò)誤)、c1(一階依賴錯(cuò)誤)和c2(二階依賴錯(cuò)誤)。
根據(jù)問題描述和假設(shè),本文采用建模過程。首先對(duì)獨(dú)立錯(cuò)誤的FDP(FDPL)和FCP(FCPL)進(jìn)行建模,然后依據(jù)FDPL對(duì)一階依賴錯(cuò)誤構(gòu)建其FDP(FDPFD)及相應(yīng)的FCP(FCPFD)。類似地,依據(jù)FDPFD可以對(duì)二階依賴錯(cuò)誤構(gòu)建其FDP(FDPSD)及相應(yīng)的FCP(FCPSD)。將三種錯(cuò)誤的FDP和FCP匯總,可以得到模型總體的FDP(FDPT)和FCP(FCPT)。整個(gè)模型框架中的所有子過程都是根據(jù)均值公式來完成的。
3 具體模型實(shí)例
這一節(jié)展示一個(gè)具體的模型。因?yàn)檐浖y(cè)試過程是在一個(gè)比較穩(wěn)定的環(huán)境下進(jìn)行的,所以本文假設(shè)三種錯(cuò)誤的檢測(cè)概率和校正移除延遲分布是相同的,即以及。
3.1 FDPL和FCPL
3.2 FDPFD和FCP
根據(jù)本文模型框架可知,假設(shè)一階依賴錯(cuò)誤只有在對(duì)應(yīng)的獨(dú)立錯(cuò)誤被檢測(cè)之后才能被檢測(cè)到,因此由于檢測(cè)是在相同的環(huán)境中檢測(cè)完成的,被檢測(cè)到的一階依賴錯(cuò)誤占一階依賴錯(cuò)誤比例應(yīng)與被檢測(cè)到的獨(dú)立錯(cuò)誤數(shù)量占全部獨(dú)立錯(cuò)誤的比例一致。根據(jù)上一節(jié)分析,被檢測(cè)到的獨(dú)立數(shù)量占全部獨(dú)立錯(cuò)誤數(shù)量的比例為。假設(shè)FDPFD服從非齊次泊松分布并且在一定時(shí)間內(nèi)檢測(cè)出的一階依賴錯(cuò)誤與未檢測(cè)出的而又可以被檢測(cè)到的一階依賴錯(cuò)誤成比例,那么可以得到微分方程:
3.3 FDPSD和FCPSD
與一階依賴錯(cuò)誤相似,研究人員還假設(shè)了二階依賴錯(cuò)誤只有在對(duì)應(yīng)的一階依賴錯(cuò)誤被檢測(cè)之后才能被檢測(cè)到。因此,同樣地,可以被檢測(cè)到的二階依賴錯(cuò)誤占全部的二階依賴錯(cuò)誤比例應(yīng)與被檢測(cè)到的一階依賴錯(cuò)誤占全部一階依賴錯(cuò)誤的比例一致。類似地,被檢測(cè)到的一階依賴錯(cuò)誤數(shù)量占全部一階依賴錯(cuò)誤的比例為。假設(shè)FDPSD服從非齊次泊松分布并且在一定時(shí)間內(nèi)檢測(cè)出的二階依賴錯(cuò)誤與未檢測(cè)出的而又可以被檢測(cè)到的錯(cuò)誤數(shù)量成比例,那么可以得到微分方程:
3.4 FDPT和FCPT
在依次得到三種錯(cuò)誤的檢測(cè)數(shù)量模型和校正移除數(shù)量模型之后,可以匯總得到總的錯(cuò)誤檢測(cè)數(shù)量模型和校正移除數(shù)量模型。t時(shí)刻軟件的錯(cuò)誤檢測(cè)總數(shù)為:
4 結(jié)束語
本文提出了一個(gè)考慮錯(cuò)誤檢測(cè)兩階依賴性和錯(cuò)誤校正延遲效應(yīng)的軟件可靠性增長(zhǎng)模型。該模型中,錯(cuò)誤被分為三種類型:獨(dú)立錯(cuò)誤、一階依賴錯(cuò)誤和二階依賴錯(cuò)誤。后兩種錯(cuò)誤依次對(duì)前一種錯(cuò)誤具有依賴性,即只有相應(yīng)的錯(cuò)誤被檢測(cè)之后,對(duì)應(yīng)的依賴性錯(cuò)誤才能被檢測(cè)到。在該模型框架下,可以推斷出不同時(shí)刻下錯(cuò)誤檢測(cè)出的數(shù)量和錯(cuò)誤校正移除的數(shù)量。這個(gè)模型相比于之前的模型更加符合實(shí)際情況。
在未來的研究中,首先可以利用實(shí)際數(shù)據(jù)對(duì)模型的參數(shù)進(jìn)行擬合訓(xùn)練,然后進(jìn)行敏感性分析,從而得到不同條件下更具體的可靠性增長(zhǎng)趨勢(shì)。其次,還可以將所建立軟件可靠性模型應(yīng)用于軟件投放時(shí)間等重要決策,以達(dá)到優(yōu)化成本的目的。
除此之外,本文雖然將故障的依賴性與故障校正延遲效應(yīng)考慮了進(jìn)去,但是仍與實(shí)際情況有一定差距,因此在以后的工作中研究人員會(huì)考慮更具代表性的延遲函數(shù)建立模型,并可利用貝葉斯技術(shù)根據(jù)實(shí)際情況更新模型參數(shù),使得模型更加貼合實(shí)際情況。
另外,也可以具體分析影響故障相關(guān)性的因素,并且對(duì)此進(jìn)行量化分析,使得模型的假設(shè)更加合理化,提高模型的評(píng)估和預(yù)測(cè)精度。
參考文獻(xiàn)
[1] 羅平.網(wǎng)絡(luò)中軟件可信性內(nèi)涵、模型及度量研究[J].網(wǎng)絡(luò)空間安全,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.