于淑香,溫一軍
(沙洲職業(yè)工學院,江蘇 張家港 215600)
隨著信息技術的快速發(fā)展,各行業(yè)都在廣泛應用各種軟件,軟件的質(zhì)量和可靠性也受到人們更多的重視。軟件缺陷預測技術對提高軟件質(zhì)量和可靠性、降低軟件開發(fā)和維護成本起著關鍵作用。軟件缺陷預測可以在軟件開發(fā)編程的早期檢測出系統(tǒng)的有缺陷模塊并對其進行修正,從而實現(xiàn)精準定位軟件缺陷且準確修改,最終提高軟件的質(zhì)量和可靠性。
現(xiàn)階段,軟件缺陷預測模型大致分以下幾類:邏輯回歸、貝葉斯統(tǒng)計方法、聚類分析、馬爾科夫模型、支持向量機、人工神經(jīng)網(wǎng)絡、線性判別分析等[1]。眾多研究人員已經(jīng)對以上模型開展了各種分析和研究,但是這些模型在軟件缺陷預測中的還存在一定問題,難以達到理想的效果。
本文提出了基于GWO-BP算法的軟件缺陷預測模型,目的在于提高軟件測試中缺陷預測的準確性。首先利用GWO算法優(yōu)化BP神經(jīng)網(wǎng)絡的參數(shù)值。其次,建立并不斷優(yōu)化基于該算法的軟件缺陷預測模型。最后通過實驗,驗證該模型對軟件缺陷模塊預測的效果。
BP (Back—Propagation)神經(jīng)網(wǎng)絡是由Rumelhart,McClelland提出的概念,其結(jié)構簡單、可操作性強,具有非線性映射能力,是目前應用最廣泛的人工神經(jīng)網(wǎng)絡。但BP算法存在收斂速度慢、容易陷入局部最優(yōu)等缺陷,在很大程度上影響了預測結(jié)果[2]。BP模型如圖1所示,該模型包括輸入層、隱層、輸出層,其中W、V為連接權矩陣,跨層的神經(jīng)元之間則不連接[3]。
圖1 BP神經(jīng)網(wǎng)絡結(jié)構圖
BP神經(jīng)網(wǎng)絡算法由信號的正向傳播和誤差的反向傳播兩個過程組成。正向傳播,輸入信號通過隱含層處理,經(jīng)過非線性變換,轉(zhuǎn)向輸出層產(chǎn)生輸出信號,若輸出值與期望值不符,則轉(zhuǎn)入反向傳播過程。誤差反傳是將輸出誤差信號通過隱含層向輸入層逐層反傳,通過修改各神經(jīng)元的權值,使誤差沿梯度方向下降,這樣反復學習訓練,直到輸出的誤差達到要求或者達到最大迭代次數(shù),訓練停止。
1.權值初始化
將網(wǎng)絡中的所有權值隨機初始化。
2.根據(jù)實例的輸入,計算輸出層每個單元的輸出。
網(wǎng)絡的實際輸出及隱層單元的狀態(tài)Okj,由公式(1)計算:
公式中,θj是閾值,一般可采用Sigmoid函數(shù),即公式(2)作為激勵函數(shù)作用于它。
3.計算網(wǎng)絡各層誤差信號
對于輸出層的每個單元k,誤差δk,由公式(3)計算:
Ok是單元k的實際輸出值,Ok(1-Ok)是Logistic函數(shù)的導數(shù),而Tk是基于k給定訓練元組的已知目標值。
而對于隱藏層單元h的誤差由公式(4)計算:
4.調(diào)整各層的權值
公式(5)是權值的更新公式,公式(6)閾值的更新公式。
5.核查算法是否符合結(jié)束條件
如果網(wǎng)絡總誤差滿足設定的精度要求或符合結(jié)束條件,訓練過程結(jié)束。否則,繼續(xù)進行下一輪訓練。
GWO算法是Mirjalili[4]等人2014年提出的一種新型群智能優(yōu)化算法,該算法通過模擬自然界中灰狼的狩獵跟蹤、追捕、包圍和攻擊等建立一個數(shù)學模型,進而完成最優(yōu)化工作[5]。整個狼群按照適應度值被分為最優(yōu)灰狼α、次優(yōu)灰狼β、第三優(yōu)灰狼β和其他狼ω四個等級。在捕食過程中α、β、δ灰狼追捕獵物,ω狼追隨前三者進向著目標搜索。捕食過程中,灰狼個體與獵物的距離為:
公式中 t表示迭代次數(shù);Xp(t)是獵物的位置,X(t)表示第t代時灰狼的位置,D表示獵物與灰狼之間的距離,C=2r1。
灰狼位置更新為:
其中,a是收斂因子,取值[0,2],max是最大迭代次數(shù);r2和 r2均是[0,1]的隨機數(shù):當|A|>1 時,灰狼群體將搜索范圍擴大,進行全局搜索;|A|<1時,灰狼群體將包圍圈縮小,進行局部搜索。
在狼群中,利用α、β、δ這三頭狼的位置跟蹤獵物的數(shù)學描述如下:
式(12)和式(13)定義了狼群內(nèi)ω與α、β、δ的距離關系。
式 (13)根據(jù)α、β、δ的位置計算ω狼的最終位置。
BP算法有收斂速度慢,易陷入局部最優(yōu),對初始化參數(shù)依賴性大等不足,而灰狼優(yōu)化算法具有收斂速度快,全局搜索能力強,避免陷入局部最優(yōu)等性能[5],二者結(jié)合恰好可以揚長補短,克服傳統(tǒng)BP算法的缺陷。提出基于GWO-BP算法模型用于預測的軟件缺陷,如圖2所示。其中,模型的預測準確率達到預先設置的值或循環(huán)次數(shù)達到最大值時終止優(yōu)化循環(huán)。
1.收集數(shù)據(jù)集。
2.建立基于BP的軟件缺陷預測模型。
3.利用GWO算法優(yōu)化BP算法的權值和閾值。
4.判斷模型的結(jié)束條件,如果預測結(jié)果滿足終止條件,則結(jié)束。否則返回步驟3,繼續(xù)實行優(yōu)化。
圖2 GWO-BP軟件缺陷預測模型流程圖
由于BP神經(jīng)網(wǎng)絡采用均方誤差梯度下降方向進行收斂,因此容易陷入局部最優(yōu),且收斂速度慢,而且BP神經(jīng)網(wǎng)絡對初始化參數(shù)中的權值和閥值具有較大的敏感性。本文采用GWO優(yōu)化BP神經(jīng)網(wǎng)絡,以達到克服BP算法的缺陷,避免陷入局部最優(yōu),而且使收斂加速。
用GWO優(yōu)化BP神經(jīng)網(wǎng)絡,即將灰狼的位置信息作為BP神經(jīng)網(wǎng)絡的權重和閾值,灰狼不斷對獵物的位置進行判斷和更新,相當于在不斷更新BP神經(jīng)網(wǎng)絡的閾值和權重,通過多次迭代,最終計算全局最優(yōu)結(jié)果[5]。優(yōu)化BP神經(jīng)網(wǎng)絡具體步驟:
1.初始化參數(shù)。包括灰狼種群大小、灰狼個體位置信息的維度、灰狼維度的上界和下界,最大迭代次數(shù)、隨機初始化灰狼位置。
2.將灰狼的位置映射給BP神經(jīng)網(wǎng)絡,按照公式計算適應度
3.適應度值的計算:狼群內(nèi)部按照等級被分為最優(yōu)、次優(yōu)、第三優(yōu)、和普通狼四組,并根據(jù)與的位置,用公式(11)~(13)更新的位置信息,并更新參數(shù)a、A和C的值。
4.判斷灰狼個體的每一維度越界情況,如有越界,把灰狼維度的上界或下界設置為越界的值。
5.判斷迭代次數(shù):如果小于最大迭代次數(shù),重復步驟2-步驟5,繼續(xù)下一次迭代,直到滿足條件;否則結(jié)束算法。
實驗數(shù)據(jù)采用了美國國家航空航天局(NASA)提供數(shù)據(jù)包[6]中的4個數(shù)據(jù)集,這些數(shù)據(jù)集均為真實軟件項目,由常見的開發(fā)語言編寫。其相關參數(shù)如表1所示。
表1 實驗數(shù)據(jù)相關參數(shù)
根據(jù)數(shù)據(jù)集中Error_Count屬性,對軟件模塊進行缺陷分類,如數(shù)據(jù)集中屬性Error_Count≥1的模塊為有缺陷模塊,否則為無缺陷模塊[7]。
為了驗證本文模型的預測能力,采用十字交叉驗證行實驗,即將每個數(shù)據(jù)集平均分成10份,將其中9份輪流做訓練,剩余的1份做預測,取10次預測結(jié)果的均值作為對算法預測能力的評價[7]。
本文采用通用的準確率、查準率、查全率[7][8]三個指標來評價模型的預測能力,根據(jù)文獻[7][8]中的交叉矩陣,定義出模型評價指標,如表2所示[9]。
表2 模型評價指標定義
其中,實際正例數(shù)量P=TP+FN,實際負例數(shù)量N=FP+TN,實驗實例總數(shù)C=P+N。
為了更好地對算法進行評價分析,將本文算法與PSO-BP[7],SA-BP[2]方法建立的軟件缺陷預測模型進行比較,基于CM1,JM1,KC1和PC1測試集的模型軟件缺陷預測結(jié)果比較如圖3-圖6。
圖3 數(shù)據(jù)集的CM1預測結(jié)果
圖4 數(shù)據(jù)集JM1的預測結(jié)果
圖5 數(shù)據(jù)集KC1的預測結(jié)果
圖6 數(shù)據(jù)集PC1的預測結(jié)果
分析實驗結(jié)果圖3-圖6可以看出,本文提出的GWO-BP算法與PSO-BP和SA-BP在四個數(shù)據(jù)集的軟件缺陷預測比較中有較高的性能,在準確率,查準率和查全率方面均優(yōu)于其他兩種算法且有較大的提高。但BP網(wǎng)絡需要較大的訓練樣本,計算成本較大,如何減少計算成本是今后的研究中需要注意的問題。
基于GWO-BP的軟件缺陷預測模型能將GWO算法很好地與BP算法結(jié)合,成功地應用于軟件測試中。建立基于BP神經(jīng)網(wǎng)絡算法模型,使用灰狼優(yōu)化算法優(yōu)化BP神經(jīng)網(wǎng)絡的參數(shù)值,解決其參數(shù)設置依賴性問題。該模型充分利用灰狼優(yōu)化算法的隨機搜索、全局優(yōu)化能力,避免了傳統(tǒng)BP算法的收斂速度慢和易陷入局部最優(yōu)的不足,解決了其對初始化權值和閥值參數(shù)設置的依賴性問題。采用交叉驗證的方式進行實驗,實驗結(jié)果表明,本文基于GWOBP算法的軟件缺陷預測模型優(yōu)于現(xiàn)有BP優(yōu)化算法。