何中威 范鑫
【摘要】 軟件的可靠性是確保用戶使用的前提,軟件缺陷將嚴重影響用戶體驗。本文簡要介紹了軟件缺陷預測,并對其相關技術進行了研究,以期為軟件開發(fā)人員提供參考。
【關鍵詞】 軟件缺陷 預測技術 復雜性度量 預測原理
隨著計算機軟件系統(tǒng)規(guī)模不斷增大以及邏輯復雜性不斷增強,其潛在的或未被測試出的缺陷則會影響軟件質(zhì)量。基于此,本文通過研究軟件缺陷預測技術,可幫助測試人員有效評估軟件的可靠性,掌握軟件質(zhì)量狀態(tài),從而確定其是否達到使用標準。
一、軟件缺陷預測
軟件缺陷預測技術自出現(xiàn)以來,在軟件領域一直極為活躍,其對軟件質(zhì)量分析、減少開發(fā)時間、降低開發(fā)成本等方面具有重要的價值。軟件缺陷預測技術是指按照軟件的基本屬性規(guī)模、復雜性、開發(fā)方法和過程,以及已知缺陷來預測潛在但還未被發(fā)現(xiàn)的缺陷[1]。軟件缺陷預測技術能幫助測試人員掌握軟件失效模式、了解質(zhì)量狀態(tài),并決定軟件是否交予用戶使用。軟件缺陷預測技術可分成動態(tài)缺陷預測與靜態(tài)缺陷預測[2]。動態(tài)缺陷預測技術是以缺陷產(chǎn)生時間為基礎,對系統(tǒng)缺陷隨時間分布實施預測的技術;該技術利用時間分布統(tǒng)計、挖掘軟件的缺陷,尋找缺陷基于軟件開發(fā)周期的引入與移除規(guī)律。靜態(tài)缺陷預測技術是指采用軟件規(guī)模、復雜度、開發(fā)過程等可度量缺陷的元素及已有缺陷,預測軟件潛在但還未暴露的缺陷;該技術以缺陷盡早檢測為原則,既可減少缺陷修復成本,又能縮短缺陷修復時間。
二、軟件復雜性度量及其與缺陷預測的關系
軟件復雜性度量與模塊錯誤分布具有緊密的關聯(lián)。即:正開發(fā)軟件模塊的復雜性度量與軟件生命周期的測試和運行過程中所發(fā)現(xiàn)的錯誤數(shù)量之間存在直接相關性[3]。將復雜性度量作為輸入,能有效預測軟件可靠性。軟件模塊出錯傾向可直接反映軟件的可靠性(外部質(zhì)量屬性),但不可直接獲得。故在缺陷預測模型中輸入軟件復雜性度量(內(nèi)部質(zhì)量屬性),可獲得各軟件模塊出錯傾向的預測值,從而間接反映軟件的可靠性。
三、軟件缺陷預測技術原理
軟件缺陷預測旨在幫助研究人員在軟件開發(fā)早期宏觀的認識該系統(tǒng)。其可區(qū)分系統(tǒng)各模塊出錯傾向,在軟件測試、修改過程中有效配置資源,以提升軟件開發(fā)效率、減少開發(fā)成本。軟件缺陷預測技術原理如圖2所示,軟件缺陷預測過程分為三部分,即:特征選擇處理復雜性度量數(shù)據(jù)集、建立缺陷預測模型、模型預測結果。
1、特征選擇處理復雜性度量數(shù)據(jù)集。在軟件缺陷預測訓練過程中,首先應收集該軟件早期版本或測試數(shù)據(jù),獲得相關經(jīng)驗。軟件復雜性度量數(shù)據(jù)集包括兩部分,即復雜性度量屬性集與測試歷史數(shù)據(jù)。軟件復雜性度量屬性集可視為樣本數(shù)據(jù)的“屬性”,而測試歷史數(shù)據(jù)則可認為是樣本數(shù)據(jù)相對應的“值”。這樣一來,軟件復雜性度量數(shù)據(jù)集就以“屬性——值”的樣本形式構成。樣本“值”是一類布爾型數(shù)據(jù),即:有或無出錯傾向,屬性則是來自于軟件開發(fā)過程中的復雜性度量屬性集。
2、建立缺陷預測模型。以“屬性——值”樣本形式構成的軟件復雜性度量數(shù)據(jù)集有效反映了復雜性度量屬性集與樣本是否存在出錯傾向之間具有一定的相關關系,即軟件缺陷預測模型在實質(zhì)上屬于模式識別范圍[4]。構建軟件缺陷預測模型的過程則是利用機器學習算法建立模型結構,并明確復雜性度量屬性之間依賴性強弱的一個過程,包括模型結構學習與參數(shù)學習兩個過程。
3、模型預測結果。軟件缺陷預測模型的預測過程是在預測集上實現(xiàn)的,與訓練過程的訓練集完全不同。因構建好的缺陷預測模型可利用模型結構和參數(shù)對復雜性度量與預測結果間的關系進行定量表達,也就是說,給定一個軟件模塊的復雜性度量數(shù)據(jù)集,利用已訓練預測模型就能分析此模塊有無缺陷,從而完成軟件缺陷的預測。
四、結論
綜上,軟件的可靠性不能直接獲得,只能以復雜性度量作為輸入間接反映軟件的缺陷。首先以特征選擇處理復雜性度量數(shù)據(jù)集,然后構建缺陷預測模型,進而利用該模型獲得相應的預測結果。
參 考 文 獻
[1] 王海強.軟件缺陷預測技術分析[J].科技傳播,2015,(1):132-133.
[2] 喬輝.軟件缺陷預測技術研究[J].解放軍信息工程大學,2013:3-4.
[3] 李大鵬.一種集成類層次和系統(tǒng)層次的面向?qū)ο筌浖碗s性度量集[J].計算機研究與發(fā)展,2010,(S1):237-242.
[4] 馮大成.基于復雜性的軟件缺陷預測[J].計算機工程與設計,2011,32(1):213-217.