999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于網(wǎng)絡(luò)表征學(xué)習(xí)的混合缺陷預(yù)測(cè)模型

2019-01-06 07:27:07劉成斌鄭巍樊鑫楊豐玉
計(jì)算機(jī)應(yīng)用 2019年12期

劉成斌 鄭巍 樊鑫 楊豐玉

摘 要:針對(duì)軟件系統(tǒng)模塊間具有依賴關(guān)系的問(wèn)題,通過(guò)對(duì)軟件系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行分析,構(gòu)建了基于網(wǎng)絡(luò)表征學(xué)習(xí)的混合缺陷預(yù)測(cè)模型。首先,將軟件系統(tǒng)以模塊為單位轉(zhuǎn)換成軟件網(wǎng)絡(luò);然后,使用網(wǎng)絡(luò)表征技術(shù)來(lái)無(wú)監(jiān)督學(xué)習(xí)軟件網(wǎng)絡(luò)中每個(gè)模塊的系統(tǒng)結(jié)構(gòu)特征;最后,結(jié)合系統(tǒng)結(jié)構(gòu)特征和卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的語(yǔ)義特征構(gòu)建一個(gè)混合缺陷預(yù)測(cè)模型。實(shí)驗(yàn)結(jié)果表明:在Apache三個(gè)開源軟件poi、lucene和synapse上所提混合缺陷預(yù)測(cè)模型具有更好的缺陷預(yù)測(cè)效果,其F1指標(biāo)比最優(yōu)模型——基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的缺陷預(yù)測(cè)模型分別提高了3.8%、1.0%、4.1%。軟件網(wǎng)絡(luò)結(jié)構(gòu)特征分析為缺陷預(yù)測(cè)模型的構(gòu)建提供了有效的研究思路。

關(guān)鍵詞:軟件網(wǎng)絡(luò);缺陷預(yù)測(cè);卷積神經(jīng)網(wǎng)絡(luò);語(yǔ)義特征;網(wǎng)絡(luò)表征學(xué)習(xí)

中圖分類號(hào): TP311.53(軟件維護(hù))文獻(xiàn)標(biāo)志碼:A

Hybrid defect prediction model based on network representation learning

LIU Chengbin 1,2, ZHENG Wei1,2*, FAN Xin1,2, YANG Fengyu 1,2

(1. School of Software, Nanchang Hangkong University, Nanchang Jiangxi 330063, China;

2. Software Evaluation Center, Nanchang Hangkong University, Nanchang Jiangxi 330063, China)

Abstract: Aiming at the problem of the dependence between software system modules, a hybrid defect prediction model based on network representation learning was constructed by analyzing the network structure of software system. Firstly, the software system was converted into a software network on a module-by-module basis. Then, network representation technique was used to perform the unsupervised learning on the system structural feature of each module in software network. Finally, the system structural features and the semantic features learned by the convolutional neural network were combined to construct a hybrid defect prediction model. The experimental results show that the hybrid defect prediction model has better defect prediction effects in three open source softwares, poi, lucene and synapse of Apache, and its F1 index is respectively 3.8%, 1.0%, 4.1% higher than that of the optimal model based on Convolutional Neural Network (CNN). Software network structure feature analysis provides an effective research thought for the construction of defect prediction model.

Key words: software network; defect prediction; Convolutional Neural Network (CNN); semantic feature; network representation learning

0 引言

隨著軟件規(guī)模的增長(zhǎng),軟件缺陷預(yù)測(cè)技術(shù)[1-2]的研究對(duì)保證軟件可靠性具有重要意義。軟件缺陷預(yù)測(cè)技術(shù)研究軟件系統(tǒng)中的缺陷分布,檢測(cè)出軟件中有問(wèn)題的模塊,可用于輔助軟件測(cè)試人員進(jìn)行有目的的測(cè)試,在軟件部署階段前充分檢測(cè)軟件內(nèi)在缺陷,及時(shí)修復(fù)有缺陷的軟件模塊,從而縮短軟件開發(fā)生命周期、提高軟件可靠性。

傳統(tǒng)缺陷預(yù)測(cè)技術(shù)主要研究缺陷數(shù)量與軟件規(guī)模的關(guān)系。Halstead等[3]研究了軟件體積度量元與軟件缺陷的關(guān)系,得出缺陷數(shù)量和體積度量元的正比例關(guān)系式。Lipow[4]對(duì)其進(jìn)行了改進(jìn),提出了缺陷與可執(zhí)行代碼行數(shù)之比是代碼行數(shù)自然對(duì)數(shù)的二次函數(shù)關(guān)系,并且對(duì)于不同的計(jì)算機(jī)語(yǔ)言函數(shù)系數(shù)具有差異。Takahashi等[5]則結(jié)合軟件文檔數(shù)量給出缺陷密度估計(jì)式,缺陷率是關(guān)于軟件規(guī)范變更頻率、程序員技能、軟件設(shè)計(jì)文檔的線性函數(shù)。傳統(tǒng)缺陷預(yù)測(cè)技術(shù)只能通過(guò)關(guān)系式估算缺陷密度,從而預(yù)計(jì)測(cè)試成本。

從機(jī)器學(xué)習(xí)的角度來(lái)看,軟件缺陷預(yù)測(cè)是一個(gè)分類問(wèn)題。運(yùn)用機(jī)器學(xué)習(xí)的方法可以從歷史測(cè)試數(shù)據(jù)中學(xué)習(xí),從而發(fā)現(xiàn)潛在可能有問(wèn)題的模塊。大量經(jīng)典機(jī)器學(xué)習(xí)算法用于研究軟件缺陷預(yù)測(cè):Khoshgoftaar等[6]對(duì)7種基于邏輯回歸和決策樹軟件缺陷預(yù)測(cè)模型進(jìn)行了比較,提出使用誤分類代價(jià)作為模型性能比較的統(tǒng)一指標(biāo);Fenton等[7]研究了基于貝葉斯概率模型的軟件缺陷預(yù)測(cè)方法,實(shí)驗(yàn)結(jié)果表明基于貝葉斯概率模型的缺陷預(yù)測(cè)方法通用性能較好;Vandecruys等[8]綜合比較了基于支持向量機(jī)、邏輯回歸、K近鄰軟件缺陷預(yù)測(cè)方法,發(fā)現(xiàn)不同的機(jī)器學(xué)習(xí)算法在相同的指標(biāo)上性能差異并不顯著;傅藝綺等[9]提出利用集成學(xué)習(xí)將不同預(yù)測(cè)算法的預(yù)測(cè)結(jié)果作為軟件度量,并進(jìn)行再次預(yù)測(cè)的組合機(jī)器學(xué)習(xí)的軟件缺陷預(yù)測(cè)模型,在Eclipse數(shù)據(jù)集實(shí)驗(yàn)結(jié)果表明,該方法可以有效提高預(yù)測(cè)準(zhǔn)確率;李勇等[10]總結(jié)了缺陷預(yù)測(cè)流程,比較不同場(chǎng)景下的模型性能,得出缺陷預(yù)測(cè)算法的性能由度量特征和算法模型決定,但不同場(chǎng)景下決定算法性能的關(guān)鍵特征有所差異;陳翔等[11]對(duì)缺陷預(yù)測(cè)進(jìn)行了系統(tǒng)的研究,總結(jié)了影響預(yù)測(cè)性能的三個(gè)關(guān)鍵因素:度量指標(biāo)、缺陷預(yù)測(cè)方法和缺陷數(shù)據(jù);Arisholm等[12]將指標(biāo)分為面向?qū)ο蟠a指標(biāo)、復(fù)雜性指標(biāo)、過(guò)程指標(biāo)等,得出特定缺陷建模技術(shù)對(duì)分類精度影響有限,然而不同的特征指標(biāo)對(duì)于預(yù)測(cè)性能影響比較顯著。

2)軟件模塊系統(tǒng)結(jié)構(gòu)特征提取。根據(jù)軟件基本模塊的依賴關(guān)系來(lái)構(gòu)建描述整個(gè)軟件系統(tǒng)的軟件網(wǎng)絡(luò),在軟件網(wǎng)絡(luò)中應(yīng)用表征學(xué)習(xí)技術(shù)無(wú)監(jiān)督學(xué)習(xí)模塊系統(tǒng)結(jié)構(gòu)特征。

3)混合特征預(yù)測(cè)缺陷。將以上步驟得到的模塊系統(tǒng)結(jié)構(gòu)特征,結(jié)合CNN學(xué)習(xí)到的語(yǔ)義特征和手工提取的統(tǒng)計(jì)指標(biāo)作為Softmax神經(jīng)網(wǎng)絡(luò)的輸入預(yù)測(cè)缺陷。

2.1 語(yǔ)義特征的提取

為了捕獲軟件模塊豐富的語(yǔ)義特征,需要提取模塊的詞序列表示,然后利用CNN高效的特征提取能力學(xué)習(xí)模塊的語(yǔ)義。基于網(wǎng)絡(luò)表征學(xué)習(xí)的混合缺陷預(yù)測(cè)具體提取語(yǔ)義特征的流程如圖3所示,具體步驟如下:

1)從軟件系統(tǒng)模塊構(gòu)建抽象語(yǔ)法樹。抽象語(yǔ)法樹構(gòu)建算法可以提取變量聲明、循環(huán)、判斷、類聲明、接口定義、繼承、異常等含有軟件模塊執(zhí)行邏輯的語(yǔ)義信息,以樹結(jié)構(gòu)的形式表示程序模塊的執(zhí)行邏輯信息[19]。

2)軟件模塊的詞序列的抽取。從軟件模塊構(gòu)建抽象語(yǔ)法樹之后,利用深度優(yōu)先算法遍歷抽象語(yǔ)法樹,抽取滿足以下三種類型的節(jié)點(diǎn)[13]添加到軟件模塊詞序列:方法調(diào)用和類實(shí)例創(chuàng)建節(jié)點(diǎn)、程序控制流程節(jié)點(diǎn)和聲明類型節(jié)點(diǎn),抽象語(yǔ)法樹中抽取的部分節(jié)點(diǎn)類型如表1所示。

3)詞序列編碼。由于CNN不能直接對(duì)詞序列中的單詞字符進(jìn)行處理,所以數(shù)據(jù)處理時(shí)需要對(duì)詞序列所有的單詞進(jìn)行編碼。為了建立單詞和編碼值之間的一一對(duì)應(yīng)關(guān)系,對(duì)于標(biāo)簽編碼,由于所有的編碼值在一列中,那么模型可能會(huì)錯(cuò)誤地認(rèn)為編碼值存在某種大小關(guān)系,所以數(shù)據(jù)處理時(shí)使用One-Hot編碼。如此,將離散特征的編碼值擴(kuò)展到了歐氏空間,離散特征的某個(gè)取值就對(duì)應(yīng)歐氏空間的某個(gè)點(diǎn)。

4)CNN提取軟件模塊語(yǔ)義特征。利用CNN強(qiáng)大的特征生成能力,將經(jīng)過(guò)以上步驟已編碼的詞序列作為CNN的輸入,經(jīng)過(guò)一個(gè)嵌入層、一個(gè)卷積層、一個(gè)池化層和一個(gè)全連接層,提取出軟件模塊的語(yǔ)義特征。

2.2 系統(tǒng)結(jié)構(gòu)特征提取

為了提取系統(tǒng)結(jié)構(gòu)特征,以軟件模塊作為基本單位,利用模塊間的依賴關(guān)系構(gòu)建整個(gè)軟件系統(tǒng)的軟件網(wǎng)絡(luò),然后利用網(wǎng)絡(luò)表征[15-17]學(xué)習(xí)軟件模塊的低維表示,實(shí)現(xiàn)系統(tǒng)結(jié)構(gòu)特征無(wú)監(jiān)督提取。

利用系統(tǒng)模塊間存在數(shù)據(jù)的流動(dòng)的關(guān)系,構(gòu)建軟件網(wǎng)絡(luò)G=(V,E),其中:G表示由軟件系統(tǒng)構(gòu)建的軟件網(wǎng)絡(luò)[20];V={vi|i=1,2,…,N}是軟件網(wǎng)絡(luò)中頂點(diǎn)集合,網(wǎng)絡(luò)大小N=|V|為頂點(diǎn)集合的個(gè)數(shù),元素vi代表軟件系統(tǒng)中的模塊i,E={eij|vivj=1,i,j∈[1,N]∪i≠j}是軟件網(wǎng)絡(luò)中邊的集合,表示模塊i和模塊j存在關(guān)系。當(dāng)存在以下三種情形[20]時(shí),vivj=1 ,即eij∈E:1)模塊i與模塊j存在繼承關(guān)系;2)模塊i與模塊j存在組合關(guān)系;3)模塊i與模塊j存在依賴關(guān)系。

如圖4所示是由Apache開源軟件項(xiàng)目poi、lucene、synapse根據(jù)以上規(guī)則構(gòu)建的軟件網(wǎng)絡(luò)。假設(shè)成功構(gòu)建軟件系統(tǒng)的軟件網(wǎng)絡(luò)G, 網(wǎng)絡(luò)大小為N,需要利用網(wǎng)絡(luò)表征學(xué)習(xí)無(wú)監(jiān)督提取軟件網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)特征。

利用DeepWalk提取軟件模塊的系統(tǒng)結(jié)構(gòu)特征主要分為兩個(gè)過(guò)程:隨機(jī)游走生成語(yǔ)料和Skip-Gram模型表征節(jié)點(diǎn)。具體過(guò)程如下:

1)在軟件網(wǎng)絡(luò)G中隨機(jī)選擇一個(gè)軟件模塊vi,然后以vi為起點(diǎn)、窗口大小m進(jìn)行隨機(jī)游走采樣,生成隨機(jī)游走序列定義為T(vi) 。

2)將生成的隨機(jī)游走序列進(jìn)行One-Hot編碼,作為Skip-Gram模型輸入。

3)構(gòu)建Skip-Gram模型。Skip-Gram是一個(gè)神經(jīng)語(yǔ)言模型,通過(guò)最大化詞序列vi、vj的共現(xiàn)概率來(lái)更新詞向量。同理,對(duì)于網(wǎng)絡(luò)G中起點(diǎn)為vi的隨機(jī)游走序列,利用游走序列的最大似然概率作為目標(biāo)函數(shù)去學(xué)習(xí)模型的參數(shù)。

4)利用圖G中頂點(diǎn)V構(gòu)建Huffman樹,替換Skip-Gram模型的輸出層,實(shí)現(xiàn)層次Softmax,優(yōu)化Skip-Gram模型的計(jì)算復(fù)雜度。時(shí)間復(fù)雜度從O(V)降低到O(「log |V|), 從而降低了計(jì)算復(fù)雜度,重復(fù)以上過(guò)程更新權(quán)重。

2.3 混合缺陷預(yù)測(cè)模型

成功提取統(tǒng)計(jì)指標(biāo)、語(yǔ)義特征和系統(tǒng)結(jié)構(gòu)特征之后,利用這三種指標(biāo)并結(jié)合Softmax神經(jīng)網(wǎng)絡(luò)構(gòu)建模型去預(yù)測(cè)缺陷,結(jié)構(gòu)如圖5所示。

首先將人工提取的統(tǒng)計(jì)指標(biāo)、CNN端到端學(xué)習(xí)的語(yǔ)義特征和DeepWalk無(wú)監(jiān)督學(xué)習(xí)的系統(tǒng)結(jié)構(gòu)特征組合作為Softmax神經(jīng)網(wǎng)絡(luò)的輸入,然后經(jīng)過(guò)兩個(gè)激活函數(shù)為ReLU的隱藏層和一個(gè)Softmax的輸出層。輸出層二分類Softmax計(jì)算式如下:

其中:pi表示模塊預(yù)測(cè)的概率,輸出結(jié)果pi大小在[0,1]內(nèi),并且∑ipi=1。

3 實(shí)驗(yàn)與結(jié)果分析

3.1 實(shí)驗(yàn)設(shè)計(jì)

為了驗(yàn)證網(wǎng)絡(luò)表征學(xué)習(xí)無(wú)監(jiān)督提取的系統(tǒng)結(jié)構(gòu)特征能夠有效提高缺陷預(yù)測(cè)模型預(yù)測(cè)性能,研究使用控制變量法設(shè)計(jì)了3組對(duì)照實(shí)驗(yàn),選擇了4個(gè)模型在Apache開源軟件項(xiàng)目下進(jìn)行缺陷預(yù)測(cè)實(shí)驗(yàn),具體詳情如下:

1)LR。使用20個(gè)統(tǒng)計(jì)特征構(gòu)建基于邏輯回歸的缺陷預(yù)測(cè)模型。

2)CNN。使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)開源軟件數(shù)據(jù)集的源碼信息進(jìn)行語(yǔ)義特征的提取,構(gòu)建一個(gè)基于卷積神經(jīng)網(wǎng)絡(luò)的缺陷預(yù)測(cè)模型。

3)DP-CNN。結(jié)合20個(gè)統(tǒng)計(jì)特征和卷積神經(jīng)網(wǎng)絡(luò)提取的語(yǔ)義特征構(gòu)建一個(gè)混合缺陷預(yù)測(cè)模型。

4)DP-NRL。結(jié)合20個(gè)統(tǒng)計(jì)特征、卷積神經(jīng)網(wǎng)絡(luò)提取的語(yǔ)義特征以及Deepwalk無(wú)監(jiān)督提取的系統(tǒng)結(jié)構(gòu)特征構(gòu)建一個(gè)混合缺陷預(yù)測(cè)模型。

3.2 實(shí)驗(yàn)評(píng)價(jià)標(biāo)準(zhǔn)

為了評(píng)估模型性能,需要選擇合適的指標(biāo)比較不同模型的性能。由于軟件缺陷預(yù)測(cè)數(shù)據(jù)集是一種典型不平衡數(shù)據(jù)集[21],所以預(yù)測(cè)正確率不能很好地反映應(yīng)模型性能優(yōu)劣,選擇F1指標(biāo)對(duì)模型性能進(jìn)行評(píng)估,F(xiàn)1指標(biāo)是精度P和召回率R的調(diào)和平均。精度P計(jì)算式如下:

P=TPTP+FP(4)

其中:TP表示缺陷樣本預(yù)測(cè)正確的個(gè)數(shù);FP表示無(wú)缺陷樣本預(yù)測(cè)為缺陷樣本的個(gè)數(shù);P為預(yù)測(cè)結(jié)果中有缺陷的樣本預(yù)測(cè)正確的概率。召回率R計(jì)算式如下:

R=TPTP+TN(5)

其中:TN表示缺陷樣本中預(yù)測(cè)為無(wú)缺陷樣本的個(gè)數(shù)。這兩個(gè)指標(biāo)進(jìn)行調(diào)和平均計(jì)算F1值:

F1=2×P×RP+R(6)

對(duì)于數(shù)據(jù)分布平衡的數(shù)據(jù)集,精度P和召回率R可以很好地衡量模型性能;但是對(duì)于軟件缺陷這種經(jīng)典的數(shù)據(jù)不平衡數(shù)據(jù)集,判定類別的先驗(yàn)概率閾值不等于0.5,所以比較模型性能時(shí)使用F1值比較模型。

3.3 實(shí)驗(yàn)數(shù)據(jù)

本實(shí)驗(yàn)的數(shù)據(jù)來(lái)源于Apache基金會(huì)下的開源軟件項(xiàng)目,考慮到項(xiàng)目模塊數(shù)以及項(xiàng)目轉(zhuǎn)換成軟件網(wǎng)絡(luò)的平均度和連通性等影響因素,最終選擇使用了3個(gè)開源Java軟件項(xiàng)目poi、lucene、synapse。對(duì)于每一個(gè)開源軟件項(xiàng)目,本文選擇了其中兩個(gè)連續(xù)版本,軟件具體版本號(hào)如表2所示。在實(shí)驗(yàn)中,利用舊版本作為訓(xùn)練集訓(xùn)練模型,使用新版本作為測(cè)試集評(píng)估模型性能。表2詳細(xì)給出了3個(gè)Apache開源軟件項(xiàng)目的功能、版本、平均文件數(shù)和缺陷率。

此外,本文收集了這3個(gè)Apache開源軟件項(xiàng)目的20個(gè)統(tǒng)計(jì)指標(biāo)特征和缺陷統(tǒng)計(jì)情況數(shù)據(jù)集。統(tǒng)計(jì)特征數(shù)據(jù)來(lái)源于tera-PROMISE項(xiàng)目,數(shù)據(jù)集的貢獻(xiàn)來(lái)自于Jureczko。該數(shù)據(jù)集中包含了從軟件項(xiàng)目庫(kù)中統(tǒng)計(jì)得到的基于軟件規(guī)模和軟件復(fù)雜度的度量元數(shù)據(jù),其中部分統(tǒng)計(jì)度量元如表3所示。

3.4 結(jié)果分析

根據(jù)實(shí)驗(yàn)設(shè)計(jì)的方法,在Apache基金會(huì)下的3個(gè)開源軟件項(xiàng)目數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。軟件舊版本作為訓(xùn)練集,軟件新版本作為測(cè)試集。4個(gè)模型在3個(gè)開源軟件的F1分?jǐn)?shù)實(shí)驗(yàn)結(jié)果對(duì)比如表4所示。

為了驗(yàn)證系統(tǒng)結(jié)構(gòu)特征可以有效改進(jìn)缺陷預(yù)測(cè)性能,需要對(duì)不同模型的實(shí)驗(yàn)結(jié)果進(jìn)行比較。由LR和CNN模型的缺陷預(yù)測(cè)結(jié)果可知,統(tǒng)計(jì)指標(biāo)特征和CNN提取的語(yǔ)義特征能夠有效地對(duì)軟件模塊缺陷進(jìn)行挖掘。DP-CNN綜合了統(tǒng)計(jì)指標(biāo)特征和軟件模塊的語(yǔ)義特征,從實(shí)驗(yàn)結(jié)果可以看出,DP-CNN比LR和CNN模型的缺陷預(yù)測(cè)的F1分?jǐn)?shù)要高,表明通過(guò)組合軟件模塊的統(tǒng)計(jì)指標(biāo)特征和語(yǔ)義特征的缺陷預(yù)測(cè)模型的綜合性能比分別基于統(tǒng)計(jì)特征和語(yǔ)義特征的缺陷預(yù)測(cè)模型性能略有提高。DP-NRL模型是本文提出的一種基于軟件網(wǎng)絡(luò)表示的缺陷預(yù)測(cè)模型。與DP-CNN模型的不同之處在于,DP-NRL不僅綜合了軟件模塊的統(tǒng)計(jì)指標(biāo)特征和語(yǔ)義特征,還結(jié)合了DeepWalk無(wú)監(jiān)督學(xué)習(xí)軟件網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)特征。從DP-NRL在3個(gè)開源軟件項(xiàng)目上的實(shí)驗(yàn)結(jié)果來(lái)看,DP-NRL的模型性能比最優(yōu)模型DP-CNN模型性能要好,從而證明了DeepWalk無(wú)監(jiān)督學(xué)習(xí)軟件網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)特征和軟件缺陷存在相關(guān)性。

由表4可以看出,DP-NRL的F1分?jǐn)?shù)比DP-CNN模型的F1分?jǐn)?shù)要高。以poi為例,以poi的舊版本2.5作為訓(xùn)練集,新版本3.0作為測(cè)試集,4個(gè)模型在該項(xiàng)目上的缺陷預(yù)測(cè)的F1分?jǐn)?shù)分別為0.748、0.778、0.784、0.814;其中DP-NRL的性能較為顯著,與DP-CNN的F1分?jǐn)?shù)相比,DP-NRL的F1分?jǐn)?shù)提高了3.83%。

從表4中還可以看出,LR的缺陷預(yù)測(cè)綜合評(píng)價(jià)指標(biāo)在3個(gè)數(shù)據(jù)集的算法結(jié)果基本上偏低,CNN的缺陷預(yù)測(cè)綜合評(píng)價(jià)相對(duì)來(lái)說(shuō)比較好,表明程序中確實(shí)含有比較豐富的語(yǔ)義特征,并且CNN能夠在一定程度上捕獲這種語(yǔ)義信息,甚至軟件系統(tǒng)的語(yǔ)義信息比手工提取的統(tǒng)計(jì)特征更為有效。通過(guò)比較LR的缺陷預(yù)測(cè)、CNN的缺陷預(yù)測(cè)和DP-CNN模型的實(shí)驗(yàn)結(jié)果,表明組合統(tǒng)計(jì)指標(biāo)特征和語(yǔ)義特征能夠有效改善缺陷預(yù)測(cè)模型的綜合性能。通過(guò)比較DP-CNN模型和DP-NRL模型可知,DP-NRL模型性能比DP-CNN要好,從而驗(yàn)證了表征學(xué)習(xí)提取的軟件網(wǎng)絡(luò)結(jié)構(gòu)特征可以有效改進(jìn)模型的性能,該網(wǎng)絡(luò)結(jié)構(gòu)特征能夠在一定程度上表征集成測(cè)試的缺陷。

以poi數(shù)據(jù)集為例展示了基于網(wǎng)絡(luò)表征學(xué)習(xí)的缺陷預(yù)測(cè)模型在不同節(jié)點(diǎn)度級(jí)別的F1指標(biāo),結(jié)果如表5所示。度級(jí)別i表示以模塊節(jié)點(diǎn)度個(gè)數(shù)在2i-1~2i范圍內(nèi),Total統(tǒng)計(jì)了不同度級(jí)別的模塊數(shù),Actual Bug統(tǒng)計(jì)了不同度級(jí)別存在缺陷的模塊數(shù),Predict Bug統(tǒng)計(jì)了不同度級(jí)別預(yù)測(cè)為存在缺陷的模塊數(shù),F(xiàn)1記錄了DP-NRL模型在不同度級(jí)別的F1分?jǐn)?shù)。從表5可以看出,模塊度和缺陷的可能性呈正相關(guān),證明了軟件網(wǎng)絡(luò)的結(jié)構(gòu)和軟件缺陷存在著相關(guān)性,并且DP-NRL模型的預(yù)測(cè)性能隨著模塊度的增加而呈增長(zhǎng)的趨勢(shì)。

4 結(jié)語(yǔ)

本文從軟件網(wǎng)絡(luò)的角度去分析軟件系統(tǒng)的整體結(jié)構(gòu),從而構(gòu)建了一個(gè)基于網(wǎng)絡(luò)表征學(xué)習(xí)的混合缺陷預(yù)測(cè)模型。該模型通過(guò)網(wǎng)絡(luò)表征學(xué)習(xí)無(wú)監(jiān)督提取軟件模塊的系統(tǒng)結(jié)構(gòu)特征,結(jié)合CNN提取的程序語(yǔ)義特征和統(tǒng)計(jì)指標(biāo)特征去預(yù)測(cè)軟件模塊的缺陷。基于Apache的3個(gè)開源軟件項(xiàng)目的實(shí)驗(yàn)結(jié)果表明,本文提出的系統(tǒng)結(jié)構(gòu)特征可以進(jìn)一步改進(jìn)缺陷預(yù)測(cè)模型,提高缺陷預(yù)測(cè)可靠性。在接下來(lái)的工作中,我們將探索如何更有效地提取軟件網(wǎng)絡(luò)結(jié)構(gòu)信息,提升缺陷預(yù)測(cè)性能。

參考文獻(xiàn) (References)

[1]TAN M, TAN L, DARA S, et al. Online defect prediction for imbalanced data [C]// Proceedings of the IEEE/ACM 37th IEEE International Conference on Software Engineering. Piscataway: IEEE, 2015: 99-108.

[2]ZHANG F, ZHENG Q, ZOU Y, et al. Cross-project defect prediction using a connectivity-based unsupervised classifier [C]// Proceedings of the 38th International Conference on Software Engineering. New York: ACM, 2016: 309-320.

[3]HALSTEAD M H. Elements of Software Science [M]. New York: Elsevier Science Inc., 1977: 32-41.

[4]LIPOW M. Number of faults per line of code [J]. IEEE Transactions on Software Engineering, 1982, SE-8(4): 437-439

[5]TAKAHASHI M, KAMACACHI Y. An empirical study of a model for program error prediction [J]. IEEE Transactions on Software Engineering, 1989, 15(1): 82-86.

[6]KHOSHGOFTAAR T M, SELIYA N. Comparative assessment of software quality classification techniques: an empirical case study [J]. Empirical Software Engineering Laboratory, 2004, 9(3): 229-257.

[7]FENTON N, KRAUSE P, NEIL M. A probabilistic model for software defect prediction [J]. IEEE Transactions in Software Engineering, 2001, 44(21): 444-453.

[8]VANDECRUYS O, MARTENS D, BAESENS B, et al. Mining software repositories for comprehensible software fault prediction models [J]. Journal of Systems and Software, 2008, 81(5): 823-839.

[9]傅藝綺,董威,尹良澤,等.基于組合機(jī)器學(xué)習(xí)算法的軟件缺陷預(yù)測(cè)模型[J].計(jì)算機(jī)研究與發(fā)展,2017,54(3):633-641.(FU Y Q, DONG W, YIN L Z, et al. Software defect prediction model based on the combination of machine learning algorithms [J]. Journal of Computer Research and Development, 2017, 54(3): 633-641.)

[10]李勇,黃志球,王勇,等.數(shù)據(jù)驅(qū)動(dòng)的軟件缺陷預(yù)測(cè)研究綜述[J].電子學(xué)報(bào),2017,25(4):982-988.(LI Y, HUANG Z Q, WANG Y, et al. Survey on data driven software defects prediction [J]. Acta Electronica Sinica, 2017, 45(4): 982-988.)

[11]陳翔,顧慶,劉望舒,等.靜態(tài)軟件缺陷預(yù)測(cè)方法研究[J].軟件學(xué)報(bào),2016,27(1):1-25.(CHEN X, GU Q, LIU W S, et al. Survey of static software defect prediction [J]. Journal of Software, 2016, 27(1): 1-25.)

[12]ARISHOLM E, BRIAND L C, JOHANNESSEN E B. A systematic and comprehensive investigation of methods to build and evaluate fault prediction models [J]. Journal of Systems and Software, 2010, 83(1): 2-17.

[13]WANG S, LIU T Y, TAN L. Automatically learning semantic features for defect prediction [C]// Proceedings of the IEEE/ACM 38th International Conference on Software Engineering. Piscataway: IEEE, 2016: 297-308.

[14]LI J, HE P, ZHU J, et al. Software defect prediction via convolutional neural network [C]// Proceedings of the 2017 IEEE International Conference on Software Quality, Reliability and Security. Piscataway: IEEE, 2017: 318-328.

[15]PEROZZI B, AI-RFOU R, SKIENA S. DeepWalk: online learning of social representations [C]// Proceedings of the 20th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York: ACM, 2014: 701-710.

[16]GROVER A, LESKOVEC J. Node2vec: scalable feature learning for networks [C]// Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York: ACM, 2016: 855-864.

[17]TANG J, QU M, WANG M, et al. LINE: large-scale information network embedding [C]// Proceedings of the 24th International Conference on World Wide Web. Republic and Canton of Geneva: International World Wide Web Conferences Steering Committee, 2015: 1067-1077.

[18]MIKOLOV T, SUTSKEVER I, CHEN K, et al. Distributed representations of words and phrases and their compositionality [C]// Proceedings of the 26th International Conference on Neural Information Processing Systems. New York: Curran Associates Inc., 2013: 3111-3119.

[19]JONES J. Abstract syntax tree implementation idioms [EB/OL]. [2019-06-01]. http://hillside.net/plop/plop2003/Papers/Jones-

ImplementingASTs.pdf.

[20]CHONG C Y, LEE S P. Analyzing maintain ability and reliability of object-oriented software using weighted complex network [J]. The Journal of Systems and Software, 2015, 110: 28-53.

[21]ZHANG S, AI J, LI X. Correlation between the distribution of software bugs and network motifs [C]// Proceedings of the 2016 IEEE International Conference on Software Quality, Reliability and Security. Piscataway: IEEE, 2016: 202-213.

This work is partially supported by the Natural Science Foundation of Jiangxi Provincial Department of Education (GJJ180523).

LIU Chengbin, born in 1994, M. S. candidate. His research interests include software defect prediction, network representation learning.

ZHENG Wei, born in 1982, Ph. D., associate professor. His research interests include software testing, network optimization.

FAN Xin, born in 1981, M. S., lecturer. His research interests include software test automation, software defect prediction.

YANG Fengyu, born in 1980, M. S., associate professor. His research interests include software engineering, data mining.

收稿日期:2019-06-18;修回日期:2019-09-16;錄用日期:2019-09-19。基金項(xiàng)目:江西省教育廳自然科學(xué)基金資助項(xiàng)目(GJJ180523)。

作者簡(jiǎn)介:劉成斌(1994—),男,江西吉安人,碩士研究生,CCF會(huì)員,主要研究方向:軟件缺陷預(yù)測(cè)、網(wǎng)絡(luò)表示學(xué)習(xí); 鄭巍(1982—),男,江西萍鄉(xiāng)人,副教授,博士,CCF會(huì)員,主要研究方向:軟件測(cè)試、網(wǎng)絡(luò)優(yōu)化; 樊鑫(1981—),男,湖北荊州人,講師,碩士,CCF會(huì)員,主要研究方向:軟件測(cè)試自動(dòng)化、軟件缺陷預(yù)測(cè); 楊豐玉(1980—),男,江西九江人,副教授,碩士,CCF會(huì)員,主要研究方向:軟件工程、數(shù)據(jù)挖掘。

文章編號(hào):1001-9081(2019)12-3633-06 DOI:10.11772/j.issn.1001-9081.2019061028

主站蜘蛛池模板: 欧美伦理一区| 老司国产精品视频| 91精品人妻互换| 免费看久久精品99| 色综合天天综合| 国产人人干| 亚洲精品国产乱码不卡| 日韩成人在线网站| 不卡无码h在线观看| 97久久超碰极品视觉盛宴| 精品国产成人国产在线| 亚洲人免费视频| 免费a级毛片视频| 国产麻豆精品手机在线观看| 亚洲天堂区| 男人天堂亚洲天堂| 亚洲精品在线91| 蜜桃臀无码内射一区二区三区| 国产欧美日韩另类精彩视频| 青草国产在线视频| 久久久受www免费人成| 国产精品永久在线| 免费a级毛片18以上观看精品| jizz在线观看| 99久久精品美女高潮喷水| 欧美在线视频a| 欧美在线精品一区二区三区| 无码免费试看| 亚洲男人的天堂久久香蕉网| 中文无码伦av中文字幕| 色综合综合网| 97视频免费看| 亚洲中文无码av永久伊人| 在线视频一区二区三区不卡| 亚洲一区二区无码视频| 婷婷色婷婷| 国产免费自拍视频| 日韩国产精品无码一区二区三区| 亚洲成人网在线观看| 国产极品粉嫩小泬免费看| 国产大全韩国亚洲一区二区三区| 欧美在线综合视频| 日韩麻豆小视频| 亚洲最黄视频| 亚洲欧美综合另类图片小说区| 日韩毛片免费视频| 亚洲侵犯无码网址在线观看| 成人夜夜嗨| 久久精品视频一| 日本在线亚洲| 中文字幕亚洲专区第19页| 国产精品三区四区| av在线手机播放| 久久久久亚洲精品成人网 | 亚洲欧洲日韩综合色天使| 99伊人精品| 精品人妻无码区在线视频| 日韩AV手机在线观看蜜芽| 国产精品无码制服丝袜| 国产美女91呻吟求| 国产午夜看片| 日本免费福利视频| 国产一区二区福利| 中文字幕亚洲乱码熟女1区2区| 国产亚洲精品无码专| 好吊日免费视频| 国产乱子精品一区二区在线观看| 亚洲美女一区| 国产女人18水真多毛片18精品 | 国产成人精彩在线视频50| 日韩无码视频播放| 自拍偷拍一区| 国产成人精品三级| 欧美激情综合| 成人精品亚洲| 一本大道无码高清| 亚洲精品在线观看91| 国产亚洲欧美日韩在线一区二区三区| 日韩欧美中文| 精品无码国产一区二区三区AV| 亚洲黄色成人| 国产网站免费|