摘 要:本文通過對(duì)可信軟件的現(xiàn)狀和發(fā)展趨勢研究,從可信軟件可靠性分析技術(shù)、軟件可信性評(píng)估技術(shù)、軟件可信性測試與驗(yàn)證技術(shù)等方面詳細(xì)分析了軟件可信的國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢。
關(guān)鍵詞:可信軟件;分析;評(píng)估;測試
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言
在當(dāng)代的信息社會(huì)中,計(jì)算迅猛發(fā)展,隨著計(jì)算機(jī)的廣泛應(yīng)用,計(jì)算機(jī)軟件已經(jīng)滲透到國防建設(shè)與國民經(jīng)濟(jì)的各個(gè)領(lǐng)域,并且承擔(dān)著舉足輕重的作用。軟件為人們提供了新的功能和更便利的操作,并且在信息基礎(chǔ)設(shè)施方面起著越來越重要的作用。現(xiàn)在人們的工作和生活是越來越依賴軟件。然而,軟件的設(shè)計(jì)現(xiàn)狀卻并不叫人十分滿意,人們?cè)絹碓街匾曑浖恼_性、可靠性、安全性、完整性、可用性等這些可信性質(zhì),如何設(shè)計(jì)開發(fā)出高可信軟件越來越引起軟件使用和設(shè)計(jì)人員的重視。
2 可信軟件的定義
可信:當(dāng)一個(gè)實(shí)體按給定目標(biāo)實(shí)現(xiàn)時(shí),其行為和結(jié)果是附和預(yù)期的。
可信軟件:如果軟件服務(wù)效果總是符合用戶的預(yù)期目標(biāo),即使在軟件運(yùn)行過程中有一些特殊情況出現(xiàn),這樣的軟件就叫做可信軟件。
這里所說的特殊情況包括:
(1)硬件環(huán)境(計(jì)算機(jī)、網(wǎng)絡(luò))發(fā)生故障
(2)底層軟件(操作系統(tǒng)、數(shù)據(jù)庫)出現(xiàn)錯(cuò)誤
(3)其他軟件(病毒軟件、流氓軟件)對(duì)其產(chǎn)生影響
(4)出現(xiàn)有意(攻擊)、無意(誤操作)的錯(cuò)誤操作
3 軟件可信與軟件質(zhì)量的區(qū)別
軟件可信要滿足的功能有下面幾個(gè)方面:
可用功能:正確、不少、不多
可靠性(容錯(cuò)):高
安全性(機(jī)密性、完整性):高
響應(yīng)時(shí)間(從輸入到輸出):小
維護(hù)費(fèi)用(監(jiān)測、演化):小
軟件質(zhì)量就是“所開發(fā)出的軟件與需求分析中的客戶的需求相一致的程度”。具體地說,軟件質(zhì)量是設(shè)計(jì)出來的軟件符合需求分析中明確說明的功能和性能需求、文檔中明確描述的開發(fā)標(biāo)準(zhǔn),以及所有專業(yè)開發(fā)的軟件都應(yīng)具有的隱含特征的程度。影響軟件質(zhì)量的主要因素,這些因素是從管理角度對(duì)軟件質(zhì)量的度量。[1]
對(duì)軟件可信的定義比之軟件質(zhì)量更強(qiáng)調(diào)用戶的感受,強(qiáng)調(diào)不易受攻擊性尤其是因內(nèi)在缺陷導(dǎo)致的;結(jié)果是可預(yù)期的;保證的計(jì)劃的和系統(tǒng)的過程和產(chǎn)品依照要求和標(biāo)準(zhǔn)程序。因此與強(qiáng)調(diào)功能完備無二義性的軟件測試評(píng)估是有區(qū)別的。
4 國內(nèi)外軟件可信性技術(shù)研究現(xiàn)狀及發(fā)展趨勢
本節(jié)從軟件可靠性分析技術(shù)、軟件可信性評(píng)估技術(shù)、軟件可信性測試與驗(yàn)證技術(shù)等方面分析軟件可信的國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢。
4.1 軟件可信性分析技術(shù)
在SFMEA研究方面,SFMEA(System Failure Mode and Effects Analysis),國內(nèi)常稱SFMEA為“軟件失效模式和影響分析”,國外是在1979年提出了SFMEA的概念。在此后并沒有引起足夠的重視和大量的研究,近10年來,SFMEA的研究和應(yīng)用才有逐步增多的趨勢,并且大多都集中在嵌入式軟件方面。在一些關(guān)鍵安全領(lǐng)域進(jìn)行了相應(yīng)的應(yīng)用,如:醫(yī)療儀器、環(huán)境監(jiān)測、軍用產(chǎn)品、電子行業(yè)、汽車行業(yè)、航空領(lǐng)域等。
SFMEA的工作原理是利用“預(yù)想”和“回想”的方式對(duì)軟件系統(tǒng)的各個(gè)組成部分中存在的和潛在的失效模式進(jìn)行“窮舉”測試,以識(shí)別出失效位置及原因,并逐一進(jìn)行分析和研究故障模式所造成的影響,給出預(yù)防和改進(jìn)措施,以便于技術(shù)人員對(duì)系統(tǒng)進(jìn)行優(yōu)化改進(jìn)??傊?,SFMEA是一種定性的邏輯推理方法。
在SFMEA方面,雖然能用計(jì)算機(jī)輔助進(jìn)行一些數(shù)據(jù)收集、數(shù)據(jù)存儲(chǔ)和一些簡單的數(shù)學(xué)計(jì)算,但是很多的分析工作還需人工完成。要想加強(qiáng)分析工作,還要在SFMEA的算法上進(jìn)行更深入細(xì)致的研究。尤其對(duì)失效模式和失效影響推理技術(shù)這些方面進(jìn)行更深入的探討。國內(nèi)外在這方面的研究已經(jīng)展開,在數(shù)理仿真技術(shù)、專家系統(tǒng)和因果推理方法等技術(shù)方面都有了初步的研究。在今后的研究中,我們要加大在SFTA的計(jì)算機(jī)輔助方法、開發(fā)相應(yīng)的SFTA輔助工具方面的研究,提高SFTA的分析效率。對(duì)于嵌入式軟件可靠性分析方面,尚未出現(xiàn)較為完整、成熟的可靠性分析方法。這也是未來軟件可信性分析技術(shù)研究的一個(gè)重要的研究方向和發(fā)展趨勢。[2]
4.2 軟件可信性評(píng)估技術(shù)
目前,國內(nèi)外關(guān)于軟件可信性評(píng)估方法還處于研究階段,成熟的軟件可信性評(píng)估方法幾乎沒有。但是對(duì)相關(guān)領(lǐng)域進(jìn)行分析總結(jié),可以看出軟件可信性評(píng)估發(fā)展趨勢有以下幾個(gè)方面:
(1)定性與定量相結(jié)合的綜合評(píng)估方法
目前國內(nèi)外已經(jīng)有人提出了這種綜合評(píng)估方法的想法和思路,但是研究還只局限在理論研究階段。如何建立軟件可信性評(píng)估體系,如何進(jìn)行定性評(píng)估操作,如何準(zhǔn)確有效進(jìn)行定性評(píng)估等具體實(shí)施方案的研究還行少。
(2)基于灰盒測試的軟件可信性評(píng)估方法
灰盒測試方法是指結(jié)合白盒測試和黑盒測試得到的綜合測試方法。白盒測試是分析程序的內(nèi)部結(jié)構(gòu),對(duì)其內(nèi)部結(jié)構(gòu)和代碼進(jìn)行測試。黑盒測試不考慮程序的內(nèi)部結(jié)構(gòu),只考慮其外部功能是否符合需求規(guī)格說明書的要求。這兩類方法各有側(cè)重,不能簡單用一種方法完全取代另一種方法,但兩者又各有缺點(diǎn),所以只有將兩者有效結(jié)合,即形成“灰盒測試”,才能使兩者有效結(jié)合,各取所長,使測試效果更加有效完善。[3]
(3)基于證據(jù)的可信軟件過程評(píng)估方法
基于證據(jù)的可信軟件過程評(píng)估方法(EB-TSPAM),EB-TSPAM方法以TPMF為支撐和保障手段,以通過軟件過程可信度量模型度量得到的可信性度量數(shù)據(jù)為輸入,在可信證據(jù)模型的支持下,通過特定的算法將證據(jù)數(shù)據(jù)轉(zhuǎn)換為可直接用于軟件過程可信性評(píng)估的評(píng)估證據(jù),并最終基于評(píng)估證據(jù)對(duì)軟件過程進(jìn)行可信性評(píng)估。[4]
目前國內(nèi)外對(duì)于軟件可信性評(píng)估技術(shù)還處在研究階段,有的還僅僅停留在理論研究階段,能夠真正用來驗(yàn)證軟件可信性評(píng)估技術(shù)的實(shí)施方案幾乎還沒有。但是軟件可信性評(píng)估技術(shù)的研究是軟件可信性研究領(lǐng)域的一個(gè)重要發(fā)展趨勢。
4.3 軟件可靠性測試與驗(yàn)證技術(shù)
可信軟件測試是指在軟件運(yùn)行時(shí)為發(fā)現(xiàn)軟件中的錯(cuò)誤而執(zhí)行的一系列操作,目的是為了保證軟件的可信性。軟件測試的方法目前已經(jīng)有很多種,使用最廣泛的軟件測試方法是錯(cuò)誤注入(Fault Injection)測試,根據(jù)注入錯(cuò)誤類型不同又分為很多種形式。主要有以下幾種形式:
(1)基于硬件故障的注入:數(shù)字電路的管腳線故障注入、設(shè)備故障注入、通訊故障注入等。
(2)基于軟件故障的注入:基于軟件高級(jí)故障注入、內(nèi)存、CPU、I/O故障注入等。
(3)基于防真故障的注入:用不同數(shù)據(jù)測試不同環(huán)境下的軟件可信性。
因?yàn)檐浖倪\(yùn)行是動(dòng)態(tài)的,所以很難用靜態(tài)的測試方法完全有效的對(duì)軟件可信性進(jìn)行測試,可信軟件的動(dòng)態(tài)測試越來越引起人們的關(guān)注和重視。動(dòng)態(tài)測試又分為隨機(jī)測試和選擇性測試兩大類。隨機(jī)測試根據(jù)軟件輸入數(shù)據(jù)的概率分布,隨機(jī)選擇測試數(shù)據(jù),這種方式的缺點(diǎn)是工作量大且有盲目性。選擇性測試是有針對(duì)性選擇測試數(shù)據(jù)。這種方法缺點(diǎn)是測試不夠全面,沒有考慮中間結(jié)果,導(dǎo)致測試效率不高。動(dòng)態(tài)測試是可信軟件測試中最重要的一部分,但又是難度最大的一種方法,其是軟件測試未來發(fā)展的一個(gè)趨勢。[5]
5 結(jié)束語
本文結(jié)合可信軟件的特點(diǎn),從軟件可靠性分析技術(shù)、軟件可信性評(píng)估技術(shù)、軟件可信性測試與驗(yàn)證技術(shù)等方面分析軟件可信的國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢,因?yàn)楫?dāng)今是信息社會(huì),軟件在信息基礎(chǔ)設(shè)施中的作用越來越重要,而信息基礎(chǔ)設(shè)施與人們生活息息相關(guān),所以這就要求我們?cè)谲浖到y(tǒng)開發(fā)和運(yùn)行過程中一定要重視軟件的可信性,這是當(dāng)今軟件行業(yè)乃至整個(gè)社會(huì)都在關(guān)注的一個(gè)課題。
參考文獻(xiàn)
[1] 阮鐮,陸民燕.軟件可靠性工程的研究現(xiàn)狀和發(fā)展趨勢[J].中
國航空學(xué)會(huì)2005年學(xué)術(shù)年會(huì)論文,2005:3-5.
[2] 王環(huán)環(huán),詹永照,陳錦富.可信軟件分析與測試研究進(jìn)展[J].計(jì)
算機(jī)應(yīng)用研究,2011(7):34-35.
[3] 陳楠,等.可執(zhí)行可信軟件安全性分析技術(shù)研究[J].計(jì)算機(jī)工
程設(shè)計(jì),2010(12):23-25.
[4] 萬亞東,朱懷宏,李波.軟件架構(gòu)與可信軟件開發(fā)[J].江蘇科技
信息,2010(2):40-43.
[5] 陳錦富,盧炎生,謝曉東.一種采用接口錯(cuò)誤注入的構(gòu)件安全
性測試方法[J].小型微型計(jì)算機(jī)系統(tǒng),2010,31(6):1090-1096.
作者簡介:
劉俊麗(1972-),女,碩士,副教授.研究領(lǐng)域:系統(tǒng)安全、軟件
工程.
陳雙喜(1980-),男,碩士,講師.研究領(lǐng)域:XMPP、SBN.