?

基于S曲線模型的航空裝備嵌入式軟件量化安全評估

2014-09-15 00:53王洪坡周紅建王洪雷
計算機工程與科學 2014年3期
關鍵詞:軟件缺陷嵌入式軟件軟件測試

王洪坡,周紅建,王洪雷

(1.95899部隊軟件測評中心,北京 100076;2.93619部隊自動化站,天津 301716)

基于S曲線模型的航空裝備嵌入式軟件量化安全評估

王洪坡1,2,周紅建1,王洪雷2

(1.95899部隊軟件測評中心,北京 100076;2.93619部隊自動化站,天津 301716)

軟件測試是航空裝備嵌入式軟件生命周期中的重要環節,如何評估軟件測試的效果是一個難題。以軟件測試為基礎,討論了航空裝備嵌入式軟件的生命周期過程中安全缺陷出現的規律,認為它的安全缺陷同樣滿足S曲線。引入了AML建模理論,基于軟件測試數據,建立了某航空嵌入式軟件的S曲線模型,預測了軟件的總安全缺陷數。對AML理論進行了拓展,討論了轉折點的選取原則。最后,通過卡方檢驗和預測檢驗的方法,驗證了預測模型與測試數據的匹配性。檢驗結果表明,AML模型能夠很好地模擬實際測試情況,一定程度上消除了數據隨機性的影響,其模型具有一定可信度,能夠用于航空裝備嵌入式軟件的安全性分析。

航空裝備嵌入式軟件;S曲線模型;安全缺陷發掘;量化

1 引言

軟件安全性早在20世紀90年代就被計算機科學家們公認為21世紀軟件研究與發展的重要戰略方向之一。軟件安全性可簡單概括為:軟件在任何情形下不能使其控制的系統對人們的生命、財產及其所處的自然環境造成危害[1]。

軟件已經成為影響國民經濟、軍事、政治乃至社會生活的重要因素。軟件缺陷是導致相關系統出錯、失效、崩潰甚至機毀人亡的潛在根源。例如,2007年2月11日,12架F-22在穿越國際日期變更線時,因軟件缺陷問題造成導航故障,戰機被迫在無導航和通信能力下危險返航[2]。1996年6月,歐洲“阿麗亞娜”號火箭因導航系統的計算機軟件出現故障,致使火箭墜毀,造成數億美元的巨大損失;2005年3月31日,歐空局的SMART-1月球探測器和NASA的雨燕太空望遠鏡的實驗狀態均因軟件故障而受到了很大影響[3]。

軟件安全缺陷伴隨軟件的整個生命周期,如何在軟件發布前,根據已有的軟件實驗與測試數據來預測軟件的安全性成為研究的一個重點。文獻[3]將軟件預測技術劃分為靜態和動態兩大類。靜態預測以軟件的固有參數為基礎進行預測,如軟件規模、復雜度,動態技術引入了時間變量,研究軟件缺陷與發現時間的關系。Rescorla E[4]提出了Rescorla二項式模型和指數模型,試圖通過統計實驗的方法來確定軟件安全缺陷發掘的趨勢。Joh H等人[5]于2008年提出了一種基于Weibull分布的軟件安全缺陷發掘模型,假設其發現率服從Weibull密度函數。Alhazmi O H等人[6~9]認為軟件缺陷發掘滿足S曲線模型,針對操作系統軟件的弱點數,提出了AML(Alhazmi-Malaiya Logistic)模型,通過曲線擬合的方式建立了操作系統的缺陷發掘模型,取得了很好的擬合效果。Wang Hong-po等人[10]在研究一類缺陷不可移除的軟件安全缺陷時引入了有限狀態機的方法,采用markov鏈技術來預測軟件的缺陷殘留。曾福萍等人[11]通過分析積累的軟件缺陷數據對缺陷模式的所屬分類進行了劃分,給出了軟件需求分析、設計和編碼各階段的軟件缺陷模式。郭麗娜等人[12]在已有的基于模糊支持向量機的不平衡數據分類方法的基礎上,結合抽樣技術,提出了基于模糊支持向量機的不平衡數據分類算法和基于模糊支持向量機的不平衡數據分類集成算法。趙亮等人[13]提出基于度量組合的方法來分析各種度量在缺陷預測中的作用, 并用試驗的方法證明了在缺陷預測中使用有限的度量可以達到與使用所有度量相近的預測效果。

航空裝備嵌入式軟件因其特殊的應用環境,對軟件安全性有更加苛刻的要求,在產品發布前需要對其進行安全性測試,并驗證測試效果。但是,現有的驗證方法無法克服數據隨機性的影響。本文采用AML模型作為建模理論基礎,基于軟件測試過程中的數據對系統進行建模和分析。第2節介紹軟件安全缺陷發掘模型,在AML模型的基礎上討論了轉折點的選擇過程;第3節基于測試數據進行系統建模;第4節檢驗模型的匹配性;最后給出結論。

2 安全缺陷發掘模型

2.1 S曲線模型

在軟件可靠性工程中,使用可靠性增長模型成為分析軟件可靠性的有效方法[14]。軟件可靠性增長模型模擬測試過程中軟件缺陷發現和移除的過程,這個過程使軟件中的缺陷越來越少,缺陷發現率不斷降低,累計發現的缺陷數最終趨于飽和。在軟件即將發布并投入使用時,使用增長模型來確定發布后軟件可能存在的軟件缺陷規律。

安全缺陷發掘模型與可靠性增長模型有直接的關系,是可靠性增長模型的發展。安全缺陷是軟件缺陷中的一種,它在制定軟件頂層規劃時被定義和分級,在開發、測試和使用過程中被發現和處理。目前已發表了多種安全缺陷發掘模型,這些模型大多以單位時間內的累計缺陷數作為數據來源來進行分析,是一種基于時間的模型。對操作系統軟件來說,隨著時間的增長,累計發現的安全缺陷數量曲線呈現出包括三個階段的S形狀,這就是著名的S曲線,如圖1所示。

Figure 1 S-curve of accumulating safety defects圖1 累計發現安全缺陷數量的S形曲線

這三個階段因使用環境的變化,導致安全缺陷的檢測情況受到影響。第一階段對應著操作系統的早期生命周期,此時軟件專業測試人員以及用戶開始關注該操作系統,并為尋找它的安全缺陷而收集數據,準備相關知識。第二階段稱為線性階段,經過早期的學習,軟件專業測試人員以及用戶對操作系統的熟悉度增加,軟件安全缺陷被不斷發現,累計發現的安全缺陷數目呈線性增長的趨勢,這一過程一直持續到軟件被新的版本替代。第三階段中,操作系統被新版軟件替代,缺陷發掘工作轉移到新版本中,舊版本軟件累計發現的安全缺陷數量逐漸停止增長[6]。

S曲線雖然是針對操作系統提出的,但對航空裝備嵌入式軟件同樣適用。航空裝備嵌入式軟件因其特殊的應用環境,要求在產品正式發布使用的階段,絕大部分軟件安全缺陷都已被發現和修復,這就要求在軟件發布前對其進行充分的實驗和測試,盡量在發布前發現安全缺陷。對照圖1的S曲線,第一階段是在軟件開發的末期或已完成軟件開發,此時軟件專業測試人員以及用戶開始關注該軟件,通過收集軟件資料、數據,對軟件開始有所了解,并為尋找軟件安全缺陷做準備。第二階段是軟件開發人員已發布了軟件的測試版本,測試人員對軟件系統已經有了一定程度的了解,軟件安全缺陷被不斷發現,累計發現的安全缺陷數目呈線性增長的趨勢,這一階段一直持續到軟件的回歸測試階段。第三階段經過回歸測試,軟件中已發現的安全缺陷被全部修復,在回歸測試版本基礎上形成發布版本,這一階段雖然受測試工作的局限性影響,軟件中依然潛伏著安全缺陷,但數量急劇減少。在用戶使用過程中潛藏的缺陷被不斷修復,缺陷數逐漸趨于穩定,直至該軟件被新版本取代。

如果軟件規模較小,學習階段可能很短暫,不太明顯。線性階段發現軟件的大部分安全缺陷,這一階段是最重要的。如果軟件的測試、驗證不充分,在成熟階段仍然會陸續發現大量安全缺陷,成熟階段曲線可能不明顯。

這里我們假設:(1)航空裝備嵌入式軟件的測試、驗證、發布等生命周期過程嚴格按照有關規定、標準進行;(2)軟件缺陷發現后就被修復,且修復過程不會引入新的缺陷;(3)缺陷修復的時間可以忽略不計。這樣,軟件的安全缺陷發掘過程可近似認為滿足S曲線。

這里,我們引入Alhazimi O H和Malaiya Y K于2005年提出的AML模型[6],該模型能夠很好地模擬S曲線,具有較高的匹配度。該模型雖然給出了轉折點的概念,但未指出如何選取,本文也對這個問題進行討論。

2.2 AML模型

AML模型[6~8]假設安全缺陷累計和變化率y取決于以下兩個因素:(1)與軟件中剩余的未被檢測出的缺陷數目相關,并隨著未被檢測出的缺陷數目的減少而變??;(2)由該軟件運行的時間決定,且隨著此時間的增加而變大。

缺陷發現率可由如下微分方程得到:

(1)

其中,y為累計發現的缺陷數,t為日歷時間,初值t=0。A和B是根據經驗方法由具體應用中收集到的數據確定。

解式(1),我們得到累計發現的安全缺陷數量為:

(2)

其中,C為解式(2)時引入的常量。

從式(2)中可以看出,當t趨向于無窮時,y(t)=B。因此,軟件中累計發現的最大安全缺陷數為B。

在參數A、B、C已知的情況下繪制式(2)時間曲線,可以得到類似于圖1的曲線。分析式(2)可知[5]:對式(2)一階微分,可以得到缺陷發現率的變化情況。

(3)

根據式(3),最大缺陷發現率出現在中點:

(4)

將式(4)代入式(3),得到缺陷發現率的最大值為AB2/4。

2.3 轉折點的選擇

轉折點是三個階段劃分的標志,得到轉折點,我們就可以據此判斷軟件測試是否已達到了測試要求,軟件產品是否可以發布。

GJB/Z102-97[15]將軟件缺陷的安全級別定義為四級,IEC 61508[16]對不同級別的缺陷給出了允許的出現概率,如表1所示。

Table 1 Safety level of software defects

令不同等級的缺陷出現概率為p,已知軟件的使用壽命為Tl(工作小時),則軟件運行允許的剩余缺陷數為:

ys=pTl

(5)

則有:

ys≥B-Bs

(6)

即測試后剩余的缺陷數應不大于標準允許的缺陷數。這里Bs為測試階段發現的缺陷總數。

顯然,若測試和預測結果滿足式(6),則測試終止時間即為二、三階段轉折點的下邊界。不失一般性,可以將其看做二、三階段的轉折點,其時間T2,3=TBS,這里TBS為測試終止時間。

若式(6)不滿足,說明軟件測試還未達到規定的要求。

因式(3)對應的曲線相對于Tm對稱,一、二階段的轉折點時刻T1,2與T2,3相對于Tm對稱,其時間T1,2=Tm-(TBS-Tm)=2Tm-TBS。若T1,2<0,說明學習階段不明顯,S曲線模型僅存在線性段和成熟段。

3 數據分析與建模

本節根據某航電系統的測試數據,研究針對該軟件的AML模型。

已知某航電系統實現飛機對各子系統的控制和顯示,表2列出了軟件測試、實驗階段各時段發現的軟件缺陷數,各時段以周為單位。

Table 2 Software defects distribution of testing phase

表2中,根據對飛機安全性的影響將缺陷劃分為A、B兩類。A類缺陷對飛機飛行安全和任務實現有輕微影響,可能影響任務執行,與表1中的III類缺陷對應。B類缺陷影響軟件部分功能的實現,對飛行安全和任務實現有影響輕微,對應表1中的IV類缺陷,表1中規定的I、II類缺陷在測試過程中未發現。

圖2和圖3給出了兩類缺陷的擬合曲線圖。根據擬合曲線,我們確定了式(2)的兩組參數,分別為A類缺陷參數:AA=0.014,BA=64,CA=3.2,B類缺陷參數BB=390,AB=0.00148,CB=0.081。根據式(4),兩類缺陷的最大缺陷率分別出現在Tma=5.94和Tmb=5.98時刻,近似為第6周,與單周發現的缺陷最大值一致。由曲線不難發現,S曲線缺陷發掘模型能夠很好地擬合線性階段的缺陷發現過程。模型還預測出了A類缺陷和B類缺陷的總數,A類缺陷還遺留0個,占缺陷總數的0%,B類缺陷遺留10個,占缺陷總數的2.56%。預測出軟件的缺陷總數對后續的軟件安全性的研究有重要意義。

Figure 2 Fitting curve of A class defects圖2 A類缺陷擬合曲線圖

Figure 3 Fitting curve of B class defects圖3 B類缺陷擬合曲線圖

根據2.3節的討論,A、B類缺陷的出現概率分別應為[10-7,10-6)、[10-6,10-5)??梢怨烙嫵鲈摵诫娷浖氖褂脡勖鼮門l=105小時,則在軟件的整個生命周期中出現A、B類缺陷的個數分別為[0.01,0.1)、[0.1,1)個。顯然,預測模型表明,軟件測試發現的A類缺陷達到了測試的要求,兩個轉折點分別為T1,2=0周和T2,3=12周,A類缺陷的學習階段不明顯。預測的剩余B類缺陷為10,大于期望的要求,經過測試后,軟件仍未達到成熟階段。

表1給出的缺陷出現概率對III、IV級安全缺陷的要求是比較苛刻的,在一般的測試過程中還引入了千行代碼缺陷率的概念,若測試過程中千行代碼發現的缺陷數小于給定量級,則認為軟件測試達到測試要求。

4 檢查匹配性

本節我們引入卡方分析,量化分析擬合曲線與采集數據的擬合情況。

4.1 基于卡方檢驗的匹配性檢驗

(7)

其中,oi和ei分別為觀測值和期望值??紤]重要度等級為5%,有如下假設:

Table 3 χ2 testing result of AML model

S曲線模型滿足給定的缺陷數據集,因為這些數據與學習階段和成熟階段吻合,并能夠適應線性階段數據的變化。

4.2 預測偏差檢驗

這里引入預測偏差PE(Prediction Error)方法[17]來預測準確度。PE法能夠檢驗整個測試階段預測模型和實際參數的偏離情況,給出模型的一般偏差,暗示與實際情況相比,預測值是過大還是過小。計算公式如下所示:

(8)

其中,n為預測過程的實際數據點數,Ω為實際安全缺陷數,Ωt為t時刻的預測缺陷數。

Figure 4 Deviation curve of prediction defect圖4 缺陷預測偏差曲線曲線圖

曲線表明,預測偏差開始比較大,這主要是由于測試缺陷數據的隨機性引起的。隨著時間的推移,偏差接近于0,說明數據隨機性被不斷地弱化,AML的預測與實際情況基本吻合。計算得到兩類曲線的PE值分別為-0.035和0.093,暗示A類缺陷的估計值偏小,B類缺陷的估計值偏大。

5 討論

AML模型最初用于操作系統的缺陷數據分析,并取得了較好的擬合效果。航空裝備嵌入式軟件的安全性要求更高,對軟件的安全性進行分析的要求更為迫切,現有的研究方法還不能很好地解決軟件遺留缺陷的預測問題。

易知,實測缺陷數據具有很大的隨機性,圖4曲線的前段也說明了這一點。文中對AML模型的分析表明,該模型能夠弱化原始數據隨機性的影響,對轉折點的選取的討論和在模型中引入軟件缺陷等級的概念豐富了該理論應用。本方法能夠在軟件測試數據比較充足的前提下對不同等級的軟件遺留缺陷進行預測,對航空裝備軟件具有較好的適應性。

當然,本方法并不僅僅局限于航空裝備嵌入式軟件,對其他對安全性有較高要求的軟件的安全性分析,只要數據完備,都可以進行類似的安全性建模和分析。

6 結束語

基于S曲線的軟件安全缺陷發掘模型為軟件開發人員、測試人員和用戶提供了一種定量評估軟件安全狀況的方法,利用該模型,人們能夠有效地預測航空裝備嵌入式軟件中不同嚴重等級的安全缺陷發現率、累計發現的安全缺陷數量、剩余安全缺陷的數量等與軟件安全性能評估密切相關的指標,以及這些指標隨時間推移的變化趨勢,針對性更強。文章討論了曲線轉折點的選取,給轉折點賦予了物理意義。文中引入的AML模型較好地擬合了測試過程的實際數據,弱化了數據隨機性的影響,對擬合曲線和實際數據的對比分析也證明了這一點。通過對預測模型的分析,我們可以定量地判斷軟件測試是否達到要求,被測軟件是否處于成熟階段,是否可以發布。

參考文獻:

[1] Zhu Hong. Discussion on improving the twenty-first century computer science and software industry development strategy of software quality assurance software security[EB/OL].[2010-09-01]. http://www2.ccw.com.cn/1995/37/135973.html.(in Chinese)

[2] Defense Industry Daily. F-22 squadron shot down by the International date line[EB/OL].[2007-03-01].http://defenseindustrydaily.com/ F-22-squadro-shot-down-by-the-International-Date-Line -03087/.

[3] Wang Qing, Wu Shu-jian, Li Ming-shu. Software defect prediction[J]. Journal of Software, 2008,19(7):1565-1580.(in Chinese)

[4] Rescorla E. Security holes…Who cares? [C]∥Proc of the 12th USENIX Security Symposium, 2003:75-90.

[5] Joh H C, Kim J, Malaiya Y K. Vulnerability discovery modeling using Weibull distribution[C]∥Proc of the 19th Symposium on Software Reliability Engineer, 2008:299-300.

[6] Alhazmi O H,Malaiya Y K. Quantitative vulnerability assessment of systems software[C]∥Proc of Annual Reliability and Maintainability Symposium,2005:615-620.

[7] Alhazmi O H, Malaiya Y K, Ray I. Measuring, analyzing and predicting security vulnerabilities in software systems[J]. Computers & Security, 2007,26(3):219-228.

[8] Alhazmi O H, Malaiya Y K. Application of vulnerability discovery models to major operating systems[J].IEEE Transactions on Reliability, 2008,57(1):1358-1364.

[9] Alhazmi O H, Malaiya Y K. Modeling the vulnerability discovery process[C]∥Proc of the 16th IEEE International Symposium on Software Reliability Engineering (ISSRE’05), 2005:129-138.

[10] Wang Hong-po,Zhou Hong-jian,Wang Hong-lei. Quantitative safety analysis of a kind of embedded software[C]∥Proc of IEEE International Conference on Computer Science and Automation Engineering,2011:391-397.

[11] Zeng Fu-ping, Jin Hui-liang, Lu Min-yan. Study on software detect patterns[J]. Computer Science, 2011,38(2):127-130.(in Chinese)

[12] Guo Li-na, Yang Yang. A classfication algorithm of detect prediction for software modules based on fuzzy support vector machine[J]. Journal of Nanjing University(Natural Sciences), 2012,48(2):221-227.(in Chinese)

[13] Zhao Liang, Hou Jin-bao. Software fault prediction on the file and package level[J]. Journal of Tsinghua University(Science and Technology),2011,51(S1):1472-1476.(in Chinese)

[14] Musa J. Software reliability engineering[M]. New York:McGraw-Hill, 1999.

[15] GJB/Z102—97,Software reliability and safety design criteria[S]. Beijing:the commission of Science, Technology and Industry for National Defense of the PRC,1997.(in Chinese)

[16] Draft Standard IEC 61508, Functional safety of electrical/electronic/programmable electronic safety-related systems[S]. Geneva:International Electrotechnical Commission, 1998.

[17] Madan B B, Goseva-Popstojanova K, Vaidyanathan K, et al. A method for modeling and quantifying the security attributes of intrusion tolerant systems[J]. Performance Evaluation, 2004,56(1-4):167-186.

附中文參考文獻:

[1] 朱鴻. 提高軟件質量保障軟件安全—探討21世紀計算機科學與軟件產業發展戰略[EB/OL].[2010-09-01].http://www2.ccw.com.cn/1995/37 /135973.html.

[3] 王青,伍書劍,李明樹. 軟件缺陷預測技術[J].軟件學報,2008,19(7):1565-1580.

[11] 曾福萍, 靳慧亮,陸民燕. 軟件缺陷模式的研究[J].計算機科學,2011,38(2):127-130.

[12] 郭麗娜,楊楊.一種基于模糊支持向量機軟件模塊缺陷檢測算法[J].南京大學學報(自然科學版),2012,48(2):221-227.

[13] 趙亮,侯金寶.文件和包層次的軟件缺陷預測[J]. 清華大學學報(自然科學版),2011, 51(S1):1472-1476.

[15] GJB/Z102—97,軟件可靠性和安全性設計準則[S].北京:國防科學技術工業委員會,1997.

WANG Hong-po,born in 1977,PhD,engineer,his research interests include software testing, and software safety.

Quantitative safety evaluation of aviation equipment embedded software based on S-curve model

WANG Hong-po1,2,ZHOU Hong-jian1,WANG Hong-lei2
(1.Software Testing Center,Troop 95899,Beijing 100076;2.Automatic Station,Troop 93619,Tianjin 301716,China)

Software testing is an important phase during the lifetime of aviation equipment embedded software. It is difficult to evaluate the effect of software testing. Based on software testing,discusses the occurrence law of the safety defect existing in aviation equipment embedded software. It is believable that the occurrence law of the embedded software also satisfies the S-curve rule. AML model is introduced to build up the S-curve model of a kind of aviation equipment embedded software based on the defect data gathered during the software testing period. The total defect number of the software is predicted. Finally, Chi-Squire verification and prediction error metric are applied to verify the goodness of fit of the software defects. Results show that AML model can model the real safety defects finding process. It eliminates the effects of randomness of the data, so the model is reliable. The predicting data can be trusted to some extent. It can be used to model and analyze the safety of aviation equipment embedded software.

aviation equipment embedded software;S-curve model;safety defects explore;quantitative

2012-09-27;

2013-01-07

1007-130X(2014)03-0469-06

TP311.5

A

10.3969/j.issn.1007-130X.2014.03.016

王洪坡(1977-),男,天津人,博士,工程師,研究方向為軟件測試和軟件安全性。E-mail:nudtwhp@126.com

通信地址:100076 北京市豐臺區警備東路6號7區軟件測評中心

Address:Software Testing Center,7 District,6 Jingbei East Rd,Fengtai District,Beijing 100076,P.R.China

猜你喜歡
軟件缺陷嵌入式軟件軟件測試
基于源文件可疑度的靜態軟件缺陷檢測方法研究
基于OBE的軟件測試課程教學改革探索
EXCEL和VBA實現軟件測試記錄管理
基于NPE-SVM的軟件缺陷預測模型
實時嵌入式軟件的測試技術
關于軟件測試技術應用與發展趨勢研究
全景相機遙控器嵌入式軟件V1.0 相關操作分析
開源程序的軟件缺陷分布特征的量化分析研究
軟件測試工程化模型及應用研究
基于Eclipse的航天嵌入式軟件集成開發環境設計與實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合