一種基于測試數(shù)據(jù)和D-S證據(jù)理論的可信性度量模型*
孫家澤1,2,王曙燕2
(1. 西北大學(xué)信息科學(xué)與技術(shù)學(xué)院,陜西 西安 710127;2.西安郵電大學(xué)計算機學(xué)院,陜西 西安 710121)
摘要:針對軟件可信性評估模型客觀性不強的問題,提出了基于測試過程數(shù)據(jù)的軟件可信性度量模型。該模型根據(jù)軟件測試過程和能力成熟度模型CMM模型選取軟件測試過程中的關(guān)鍵可信屬性,利用軟件測試中的過程數(shù)據(jù)作為可信證據(jù),通過測試過程數(shù)據(jù)進行可信屬性的定量度量,最后,將這些分散的可信指標通過D-S證據(jù)理論進行融合得到軟件的可信性。實例表明,該度量模型在軟件可信性評估中是有效的。
關(guān)鍵詞:測試數(shù)據(jù);可信性度量;D-S證據(jù)理論
中圖分類號:TP311.522 文獻標志碼:A
doi:10.3969/j.issn.1007-130X.2015.06.012
收稿日期:*2014-03-25;修回日期:2014-09-01
基金項目:國家自然科學(xué)基金資助項目(61203311,61105064);陜西省自然科學(xué)基金資助項目(2015JM6359)
作者簡介:
通信地址:710121 陜西省西安市長安區(qū)韋郭路西安郵電大學(xué)計算機學(xué)院
Address:School of Computer Science & Technology,Xi’an University of Posts and Telecommunications,Weiguo Rd,Chang’an District,Xi’an 710121,Shaanxi,P.R.China
A software credibility measurement model based on test data and D-S theory
SUN Jia-ze1,2,WANG Shu-yan2
(1. School of Information and Technology,Northwest University,Xi’an 710127;
2.School of Computer Science & Technology,Xi’an University of Posts and Telecommunications,Xi’an 710121,China)
Abstract:Considering that the objectivity of software credibility measurement model is not strong, we present a testing-based software credibility measurement and assessment model, which uses software testing process data as the credible evidence. In the model, the key credible attributes of the software testing process are selected and quantitatively measured according to the software test procedure and the Capability Maturity Model (CMM) for software.Finally,the dispersive confidence indexes are fused by the Dempster/Shafer (D-S ) evidence theory,and the software credibility is achieved.Classical examples show that the model is effective in software credibility measurement.
Key words:test data;credibility measure;D-S evidence theory
1引言
20世紀60年代末,“軟件危機”的爆發(fā)促成了軟件工程學(xué)科的誕生。近年來,軟件的開發(fā)環(huán)境和運行環(huán)境已經(jīng)從傳統(tǒng)的封閉、靜態(tài)環(huán)境發(fā)展為開放、動態(tài)、多變的互聯(lián)網(wǎng)環(huán)境,按照傳統(tǒng)軟件工程生產(chǎn)的軟件系統(tǒng)變得日趨龐大和難以駕馭,缺陷和漏洞難以避免,經(jīng)常發(fā)生各種故障和失效,“軟件可信性”問題由此而產(chǎn)生。軟件的“可信性”是指軟件系統(tǒng)的動態(tài)行為及其結(jié)果總是符合人們的預(yù)期,并且在其受到干擾(例如操作錯誤、環(huán)境影響、外部攻擊等)時仍能提供連續(xù)正確的服務(wù)[1],是客觀對象諸多屬性的一個綜合結(jié)果。
可信性評估是軟件可信研究中的一個重要問題,相關(guān)理論和方法[2]尚處于初期研究階段。20世紀80年代末,美國國家安全局發(fā)起了“可信軟件方法學(xué)”[3]的研究,將軟件過程可信性分為從T0到T5逐步提升的六個可信級別。為支持可信性評估,可信軟件方法學(xué)列出了44條影響軟件可信性的可信原則[4],這些可信原則為軟件過程可信性評估提供了判斷依據(jù),但存在著可信性評估結(jié)果主觀性強和不夠精確的缺點。這樣的判斷結(jié)果容易受到評估人員的主觀因素影響,使得判斷依據(jù)缺乏客觀性,從而影響評估結(jié)果的客觀性和準確性。文獻[5]提出了基于可信樹的軟件可信度量評估方法。該方法以決策樹為基礎(chǔ),提出可信樹這一新的概念,并利用可信樹對軟件可信性進行評估。然而,該方法對可信因子的評分完全依靠專家判斷,難以保證評估結(jié)果的客觀公正性。在軟件評估的分級模型方面,文獻[2]描述了一種采用軟件分級模型對可信性進行評估的方法,但評估結(jié)果是二值的,即可信或不可信;在可信證據(jù)模型及度量方面,文獻[6]建立了基于驗證的可信證據(jù)模型,并在此基礎(chǔ)上給出了一種基于軟件認知程度的可信評估方法??傊?可信評估分級模型、屬性模型、證據(jù)模型與評估框架之間相互聯(lián)系,不能將其分開來進行研究。
總結(jié)分析以上相關(guān)研究工作,目前對軟件可信評估的研究存在下述不足[7]:(1)這些方法只給出了可信評估的概念模型的定性評價,評估過多地依賴于評估人員的主觀認識和經(jīng)驗,評估結(jié)果的準確性和客觀性受到影響。(2)這些評價都是針對軟件成品進行的,只有在軟件最終可使用之后,才能對其可信性有所感知。這極大限制了可信性評價可以發(fā)揮的作用,軟件開發(fā)人員正在使用某種可信平臺進行軟件開發(fā),卻無法在其工作過程中對手中軟件原型的可信程度有所認識,這無疑會影響開發(fā)人員在開發(fā)過程中對質(zhì)量管理的效率和效果。
針對以上軟件可信性度量存在的問題,軟件可信性的評估必須由可信軟件過程提供評估證據(jù)。軟件測試作為保證軟件質(zhì)量和可靠性的重要手段,它貫穿于軟件生命周期的整個過程,是提供軟件可信性證據(jù)的一個有效而又現(xiàn)實的手段。
本文提出基于軟件測試過程數(shù)據(jù)[8]的可信性評估方法,以軟件可信性評估作為目標,通過測試過程數(shù)據(jù)為可信軟件提供定量的度量評估方法,建立基于測試數(shù)據(jù)的定量評估模型,減少評估過程中人員的主觀因素,提高評估結(jié)果的準確性和客觀性。同時采用D-S(Dempster/Shafer)證據(jù)模型[9]綜合其中若干種證據(jù)和評價模型,建立多維可信屬性的多尺度定量綜合評估模型。本模型可以在軟件開發(fā)過程中通過軟件測試對軟件的可信性進行評估,對軟件的可信性進行感知,通過可信性評估的反饋,促進開發(fā)人員尋找軟件錯誤,提高發(fā)布軟件的可信性。
2測試過程中的關(guān)鍵可信屬性
軟件測試過程是軟件生產(chǎn)過程中的關(guān)鍵過程,監(jiān)控軟件測試過程,對測試過程和測試結(jié)果進行分析是對軟件可信性進行度量的有效途徑之一。結(jié)合軟件能力成熟度模型CMM(Capability Maturity Model for Software)中的18個關(guān)鍵過程域[10],本文提出基于測試過程數(shù)據(jù)的軟件可信定量評估模型,其模型圖如圖1所示。
Figure 1 Software credibility measurement model based on the data of the test process 圖1 基于測試過程數(shù)據(jù)的軟件可信評估模型
2.1測試管理過程可信指標
軟件測試過程的管理就是設(shè)置專業(yè)高效的組織機構(gòu),根據(jù)測試需求、測試計劃,對測試過程中每個狀態(tài)進行記錄、跟蹤和管理,并提供相關(guān)的分析和統(tǒng)計功能,生成各種分析統(tǒng)計報表。通過對詳細記錄的分析,形成較為完整的軟件測試管理文檔,避免同樣的錯誤在軟件開發(fā)過程中再次發(fā)生,從而提高軟件開發(fā)質(zhì)量,所以測試管理是軟件可信性度量的一個關(guān)鍵屬性。用測試過程管理的有效性來作為可信性評估的一個重要指標。
管理過程可信指標包括測試需求、測試計劃、測試用例的評審過程指標;測試過程中測試基礎(chǔ)設(shè)施如測試用例庫、缺陷庫等的可跟蹤指標;測試過程的組織機構(gòu)的健全指標;測試過程中的量化程度指標。對這些指標通過加權(quán)平均的方法可以得到管理過程可信指標。
2.2測試優(yōu)化過程可信指標
在軟件測試過程中,為了提供高可信的軟件,軟件企業(yè)對于測試過程要達到優(yōu)化級,要對整個開發(fā)過程進行不斷的優(yōu)化,采取主動措施找出過程的弱點與長處,以達到預(yù)防缺陷的目標。同時,分析有關(guān)過程的有效性的資料,以及提出對過程進行修改的建議。因此,優(yōu)化過程是軟件可信性度量的一個重要屬性。用軟件測試過程中的優(yōu)化水平來作為軟件可信性評估的一個重要指標。
優(yōu)化過程可信指標包括測試過程的定量分析決策指標;測試周期內(nèi)測試活動變更的穩(wěn)定性指標;測試結(jié)果反饋推廣指標。對這些指標通過加權(quán)平均的方法可以得到優(yōu)化過程的可信指標。
2.3測試用例可信指標
測試用例是軟件測試過程的核心,測試用例設(shè)計的好壞和測試用例執(zhí)行的結(jié)果分析是軟件測試的關(guān)鍵。以測試用例為核心來觀察測試過程中測試用例的計劃、執(zhí)行和跟蹤是測試有效性的有力證明。測試用例對軟件的覆蓋率體現(xiàn)了軟件本身的可靠性和正確性。測試用例集中測試用例的通過率體現(xiàn)了軟件的健壯性和功能性,測試用例集變更的覆蓋率序列衡量了更改后的測試用例集是否有效,從而也可以用來確認本次修改是否有效,是否可信。測試用例的修改對測試的覆蓋率是正向的影響,即語句覆蓋率、分支覆蓋率提升,且測試用例集中測試用例通過數(shù)增加,那么認為本次測試過程是有效且可信的。
測試用例可信指標包括測試用例集的覆蓋率和通過率指標;測試用例集增加測試覆蓋提升速度指標;單個測試用例揭錯能力指標。對這些指標通過加權(quán)平均的方法可以得到管理過程可信指標。
2.4基于測試過程可信指標的軟件可信性綜合度量
從測試過程的關(guān)鍵屬性中獲取到上述影響軟件可信性的重要指標:管理過程可信指標、優(yōu)化過程可信指標和測試用例可信指標,但這些指標是相對離散的,而且是從不同角度和層面對軟件可信進行的描述和評價,我們最終是要對軟件產(chǎn)品整體做出可信性評定,所以,需要將上述可信指標通過適當?shù)哪P瓦M行統(tǒng)一整合,最終得出一個整體的評價結(jié)果。本文用模糊集和隸屬函數(shù)的知識,采用不確定證據(jù)合并的D-S證據(jù)理論將各個關(guān)鍵可信屬性進行整合,對軟件可信性進行綜合度量,得出綜合反映軟件可信性的量化值,再根據(jù)劃分的軟件可信等級對照確定軟件產(chǎn)品的可信等級。
3基于測試數(shù)據(jù)和D-S證據(jù)理論的可信性度量模型
D-S證據(jù)理論是由Dempster和Shafer于1976年提出的一種不精確推理理論,該理論作為一種不確定推理方法主要用來處理不確定信息。本文中主要用來對不確定的、分散的、不同層面的屬性信息加以整合,以獲得對被評估問題的一致性解釋和全面的描述。D-S證據(jù)理論基本概念[9]如下:
若對論域U中的任一元素x,有A(x)∈[0,1]與之對應(yīng),則稱A是U上的一個模糊集,當x在U中變動時,A(x)就是一個函數(shù),稱為A的隸屬函數(shù),A(x)稱為x對A的隸屬度。
設(shè)D是變量x所有可能取值的集合,且D中的元素是互斥的,在任一時刻x都取且只能取D中的某一個元素為值,則稱D為x的樣本空間,也稱D為辨別框。在證據(jù)理論中,D的任何一個子集A都對應(yīng)于一個關(guān)于x的命題,稱該命題為“x的值在A中”。
定義1(概率分配函數(shù))設(shè)函數(shù)M:2D→[0,1],且滿足:
則稱M是2D上的概率分配函數(shù),M(A)稱為A的基本概率數(shù)。
Bel函數(shù)又稱為下限函數(shù),Bel(A)表示對命題A為真的信任程度。
定義3(似然函數(shù))M:2D→[0,1],且PI(A)=1-Bel(┐A),其中A?D表示對A為非假的信任程度。
定義4(概率分配函數(shù)正交和)設(shè)M1和M2是兩個概率分配函數(shù),則其正交和M=M1⊕M2,
定義5設(shè)M1,M2,…,Mn是n個概率分配函數(shù),則其正交和M=M1⊕M2⊕…⊕Mn為:M(?)=0
經(jīng)過計算得到的可信指標,經(jīng)過隸屬度函數(shù)運算后得到數(shù)個與隸屬度函數(shù)個數(shù)相同的元組,然后通過D-S合并理論將數(shù)個n元組合并成一個n元組,n元組中n對應(yīng)了對應(yīng)用軟件劃分的等級,從這一條數(shù)據(jù)可以得到整體評估出的可信度情況。
隸屬度函數(shù)劃分的集合假設(shè)為A1,A2,…,An,個數(shù)n正是應(yīng)用軟件的劃分等級數(shù)。從隸屬度函數(shù)的定義來看,軟件的可信度等級是相互獨立的,但是其整體又是對一個軟件可信性的完整描述,所以,這些集合必定滿足M(A1∪A2∪…∪An)=1,M(A1∩A2∩…∩An)=0的條件。這也是使用D-S合并理論的前提,最終將從不同方面描述的軟件可信性的屬性指標整合成唯一的描述軟件可信的指標。
圖2說明了基于測試過程數(shù)據(jù)的軟件可信性度量的整個過程。首先從測試數(shù)據(jù)中獲取第二部分所述的指標數(shù)據(jù),然后分別計算五個等級的隸屬度,利用D-S合并理論進行合并,得到待評估軟件的綜合可信性。
Figure 2 Software credibility measurement process based on the test process 圖2 面向測試過程的軟件可信性度量過程
4實驗設(shè)計分析
項目組自主開發(fā)了集成化的智能組合軟件測試平臺,該測試平臺集組合測試、白盒測試、功能測試、性能測試、測試管理及測試用例智能生成和約簡于一體。利用測試平臺中提供的測試管理過程的基礎(chǔ)設(shè)施:測試用例庫、缺陷庫、配置管理庫中的測試數(shù)據(jù),在此基礎(chǔ)上根據(jù)可信評估關(guān)鍵屬性的指標需要來提取相關(guān)數(shù)據(jù)進行關(guān)鍵指標的量化,各個量化的指標借助于D-S理論來進行融合,進而得到軟件系統(tǒng)的綜合可信程度,確定其可信等級。實驗系統(tǒng)的體系框架如圖3所示。
Figure 3 Software credibility measurement system architecture 圖3 軟件可信度量系統(tǒng)體系框架
將軟件的可信等級由小到大劃分為五個等級, 定義對應(yīng)的五個隸屬度函數(shù),這五個隸屬度函數(shù)是對軟件可信性五個等級集合性的描述,從概率分配角度來講,每個可信度級別都體現(xiàn)了一個從屬的集合,而這五個數(shù)正是對屬于相對應(yīng)的級別的概率大小。
其中x∈[0,1]。
將管理過程可信指標、優(yōu)化過程可信指標和測試用例可信指標分別代入五個隸屬度函數(shù),得出度量指標對應(yīng)可信性五個等級的隸屬度。然后運用D-S合并理論,計算出影響合并效果的K,然后對等級集合進行整合,這樣便可以將等級下三個層次的本屬性進行整合,得到一個標志應(yīng)用軟件的等級概率。以此便可得到應(yīng)用軟件在五個可信等級內(nèi)的概率大小,得到整個應(yīng)用軟件的可信度等級。
對本項目組早期開發(fā)的軟件系統(tǒng)利用上述軟件可信度量系統(tǒng)進行度量,對于能夠通過測試平臺管理工具自動提取的指標,采用系統(tǒng)自動提取的方式定量度量,對于一些目前還無法使用工具自動獲取的指標,采用多名領(lǐng)域?qū)<掖蚍值姆椒▉矶慷攘浚辉倮帽疚奶岢龅目尚旁u估模型綜合方法進行綜合度量,得到的三個關(guān)鍵可信指標分別為:管理過程可信指標x=0.8359,優(yōu)化過程可信指標y=0.51,測試用例可信指標z=0.810;經(jīng)過五個隸屬度函數(shù)計算,可得管理過程可信性:
f1(0.8359)=e-(0.8395)2=0.4942
f2(0.8359)=e-(0.8395-0.25)2=0.7064
f3(0.8359)=e-(0.8395-0.5)2=0.8911
f4(0.8359)=e-(0.8395-0.75)2=0.9920
f5(0.8359)=e-(0.8395-1.0)2=0.9743
再經(jīng)過隸屬度歸一,得到標識不同項目管理可信等級的五元組,(0.121 8,0.173 5,0.219 6,0.244 5,0.238 5)。
同理可得,優(yōu)化過程可信性等級五元組為:(0.173 8,0.210 7,0.225 4,0.212 8,0.177 3);測試用例可信性等級五元組為:(0.126 0,0.177 4,0.220 5,0.241 9,0.234 2)。
對三個五元組進行D-S理論的合并,計算影響合并效果的K值,K=0.2342。
最終軟件可信性對應(yīng)五個等級的隸屬度為(0.062 6,0.152 2,0.256 2,0.295 4,0.232 5)。由此可以看出,該軟件對應(yīng)等級為第四等級可能可信的隸屬度最高(0.295 4),該軟件的可信度較大。該評估結(jié)果和該軟件投入使用兩年的表現(xiàn)相符,驗證了該評估模型的有效性。
5結(jié)束語
本文根據(jù)測試過程和CMM能力成熟度模型選取軟件測試過程中的關(guān)鍵可信屬性,通過測試過程數(shù)據(jù)進行關(guān)鍵可信指標的具體度量,最后將這些分散的可信指標通過D-S證據(jù)理論進行融合得到軟件的整體可信性,提供了一種有效的軟件可信性度量模型。典型軟件系統(tǒng)的實驗驗證了本模型的有效性。但是,該模型在具體指標的選取上是比較粗糙的,今后需要進一步研究,進行細化和明確。
參考文獻:
[1]Liu Ke, Shan Zhi-guang,Wang Ji,et al. Overview of major research plan of trustworthy software [J].Science Foundation in China,2008,22(3):145-151.(in Chinese)
[2]Lang Bo, Liu Xu-dong, Wang Huai-min, et al. A classification model for software trustworthiness[J]. Journal of Frontiers of Computer Science and Technology,2010,4(3):231-239.(in Chinese)
[3]Amoroso E,Nguyen T,Weiss J,et al. Toward an approach to measuring software trust[C]//Proc of the IEEE Symposium on Research in Security and Privacy,1991:198-218.
[4]Amoroso E,Taylor C,Watson J,et al.A process-oriented methodology for assessing and improving software trust worthiness[C]//Proc of the 2nd ACM Conference on Computer and Communications Security,1994:39-50.
[5]Zhou J. Design on evaluation system of software credible[J].Software Guide,2008,7(2):11-12.
[6]Ding Xue-lei,Wang Huai-min,Wang Yuan-yuan,et al.Verification oriented trustworthiness evidence and trustworthiness evaluation of software [J]. Journal of Frontiers of Computer Science and Technology,2010,4(1):46-53.(in Chinese)
[7]Tao Hong-wei. Research on the measurement models of software trustworthiness based on attributes[D]. Shanghai:East China Normal University,2011.(in Chinese)
[8]Qian Hong-bing,Zhu Xiao-jie,Jin Mao-zhong. Research on testing-based software credibility measurement and assessment [C]//Proc of World Congress on Software Engineering,2009:59-64.
[9]Yang Jian-bo,Xu Dong-ling. On the evidential reasoning algorithm for multiple attribute decision analysis under uncertainty[J]. IEEE Transactions on Systems,Man and Cybernetics,Part A:Systems and Humans,2002,32(3):289-304.
[10]Bamford R,Deibler W. Software engineering models for quality:Comparing the SEI capability maturity model (CMM) to ISO 9001[C]//Proc of the 3rd International Software Engineering Standards Symposium (ISESS’97),1997:290-296.
參考文獻:附中文
[1]劉克,單志廣,王戟,等.“可信軟件基礎(chǔ)研究”重大研究計劃綜述[J].中國科學(xué)基金,2008,22(3):145-151.
[2]郎波,劉旭東,王懷民,等. 一種軟件可信分級模型[J].計算機科學(xué)與探索,2010,4(3):231-239.
[6]丁學(xué)雷,王懷民,王元元,等. 面向驗證的軟件可信證據(jù)與可信評估[J]. 計算機科學(xué)與探索,2010,4(1):46-53.
[7]陶紅偉.基于屬性的軟件可信性度量模型研究[D].上海:華東師范大學(xué),2011.
孫家澤(1980-),男,河南南陽人,博士,副教授,CCF會員(E200030411G),研究方向為智能優(yōu)化。E-mail:sunjiaze@126.com
SUN Jia-ze,born in 1980,PhD,associate professor,CCF member(E200030411G),his research interest includes intelligent optimization.
王曙燕(1964-),女,陜西西安人,博士,教授,CCF會員(E200010850S),研究方向為軟件測試和智能優(yōu)化。E-mail:wsylxj@126.com
WANG Shu-yan,born in 1964,PhD,professor,CCF member(E200010850S),her research interests include software testing,and intelligent optimization.