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

基于相似度匹配的軟件缺陷預測方法研究

2017-09-09 22:49:38劉雅新吳高艷何鵬
軟件導刊 2017年8期

劉雅新+吳高艷+何鵬

摘 要:針對跨項目缺陷預測(Cross-Project Defect Prediction,CPDP)中為目標項目選擇合適的訓練數據問題,在已有相似度匹配方法的基礎上,引入項目情境信息,從而提出一種改進的CPDP預測模型。實驗結果表明:引入項目的情境信息,有助于提高CPDP性能;所提方法的F-measure值比已有方法提高了15.04%和6.57%,但相比WPDP方法,仍有待提高。

關鍵詞:軟件質量保證;缺陷預測;相似度匹配;訓練數據選擇

DOIDOI:10.11907/rjdk.171465

中圖分類號:TP301

文獻標識碼:A 文章編號文章編號:1672-7800(2017)008-0009-03

0 引言

軟件缺陷預測研究一直是軟件工程領域中的熱門方向,最早可以追溯到上世紀70年代。常規的方法是利用項目自身已有歷史數據訓練預測模型后,再用于后續版本的缺陷預測,即項目內缺陷預測(Within-Project Defect Prediction,簡稱WPDP),如圖1(a)所示。然而,已有研究表明訓練高質量的WPDP模型要求有充足的歷史數據,這對一些新項目或還不活躍的軟件項目便難以滿足。

近些年來隨著互聯網的蓬勃發展,尤其是開源社區如 Github的興起,互聯網上可供獲取的公開缺陷數據集越來越多,而且數量仍在不斷增長。為有效利用互聯網上已有的豐富數據資源,一些研究者提出利用其它軟件項目的數據來訓練,構建跨項目的缺陷預測模型(Cross-Project Defect Prediction, 簡稱CPDP),用于解決WPDP中訓練數據受限的瓶頸[1-5],如圖1(b)所示,為軟件缺陷預測研究開辟了一條嶄新的途徑。

在CPDP早期研究中,都是將來自其它軟件項目的所有數據作為訓練集,并不涉及訓練集的精簡。常常出現因訓練數據包含過多噪聲,從而降低了模型準確性[5]。在某種程度上,數據的質量遠比數量對CPDP性能的影響更大。然而,如何才能從大量的可供使用的缺陷數據中挑選出質量更高的部分用于預測模型訓練,仍然是CPDP研究中急需解決的一個問題[6]。

針對以上問題,目前主要有兩種思路。一種是通過特征降維的方法減少冗余指標信息,從而減少數據噪音來改善缺陷預測的性能和效率[7]。另一種方法則是本文將考慮的通過減少數據量來減少重復的無價值的實例[8]。在訓練數據總量的精簡方面,以往研究都只是根據數據的度量指標信息進行相似度匹配,再返回top-k個最相關的實例構成新的訓練數據集,但它們并沒有充分考慮項目的情境信息。實踐中,每個項目的情境信息存在差異,例如項目的主題、服務對象、編程語言等。

本文在為CPDP預測選擇合適跨項目訓練數據集時,通過考慮項目的5個常規屬性信息(包括項目主題、目標受眾、編程語言、運行環境、開源認證),并利用自然語言處理中的TF-IDF技術將它們量化,從而得到每個項目的情境信息向量。最后,結合項目的情境信息與項目中實例特征值計算數據集的相似度。本文的主要貢獻可歸納為:

(1)引入項目的情境信息,提出一種改進的基于相似度匹配的CPDP預測方法,并使CPDP預測性能得到改進。

(2)驗證本文方法的CPDP預測模型在樸素貝葉斯分類器下效果最好。

1 跨項目缺陷預測(CPDP)

CPDP形象表示為利用其它項目組成的缺陷數據集S={P1,P2,…,Ps}對目標項目Pt作缺陷預測。假設一個項目P由n實例(類文件)組成,即P={I1,I2,…,Ii,…,In},實例Ii表示為Ii={fi1,fi2,…,fij,…,fim},fij為實例Ii在第j個度量指標上的值,m為用于度量實例的指標個數。一個項目數據集P中度量指標Fi對應的向量可表示為Fi={f1i,f2i,…,fji,…,fni},fji為第j個實例在該度量指標上的值,各實例指標值的分布特性可表示為Ci={SCi1,SCi2,…,SCik},SC為對應的度量指標值的分布特性(最大值、最小值、中位數、均值和標準方差)。因此,項目P可根據度量指標量化為V={C1,C2,…,Ck,…,Cm}。 這樣,項目A和B之間的相似性可表示為:

Sim(A,B)metric=cos(VA,VB)=VA·VB|VA||VB|(1)

另外,假定每個項目情境信息按照主題、目標受眾、編程語言、運行操作系統、認證順序來進行量化表示,則可以表示為U=(ATt,ATia,ATpl,ATos,ATlic),其中ATi分別為上述屬性前面幾個字母的縮寫。因此,項目A和B之間的屬性相似性可表示為:

Sim(A,B)context=cos(UA,UB)=UA·UB|UA||UB|(2)

而表示項目情境信息的每個屬性本身又為一個向量ATi=(wi1,wi2,…,wim), m為屬性i中包括的元素種類,因此,項目情境信息相似性為所有5個屬性向量下的余弦相似性總和,可用式(3)表示,系數α表示每個屬性的比重系數,本文視每個屬性具有相同的重要性,即α=0.2。

Sim(A,B)context=∑ni=1αicos(AATi,BATi)(3)

對于每個屬性向量ATi中的wij,可通過修改后的tf,idf表示為式(4):

wij=(logfij+1)log#p#pj(4)

其中,fij為項目在屬性i元素j上的頻率,#p和#pj分別代表項目總數和具有元素j的項目數。結合式(3)和式(4),得到:

cos(AATi,BATi)=∑j∈Ai∩Bi(logfij+1)(logfij+1)(log#p#pj)2∑j∈Ai((logfij+1)·log#p#pj)2∑j∈Bi((logfij+1)·log#p#pj)2(5)endprint

最后,在跨項目數據集選擇過程中,結合項目的兩種信息,得到最終的相似度得分:Score(A,B)=Sim(A,B)metric+Sim(A,B)context(6)

對應算法實現描述如下:

算法1:基于相似度匹配的CPDP輸入:

1.候選訓練數據集S={P1,P2,…,Pl};

2.目標項目數據集Pt={I1,I2,…,Ii,…,In1};輸出:

3.返回預測結果result。方法實現:

4.P是為Pt從候選集S中返回的最相似的數據集;

5.初始化P←Φ

6.for 每個項目Pi(Pi∈S) do;

7.// 對Pi,P進行相似度匹配

8.Set tempScore←Score(Pi,Pt)

9.end for

10.//取集合tempScore中與目標項目Pt最相似的項目

11.P←Max(tempScore);

12. //用選擇的數據集P訓練模型并對Pt進行預測

13.resultPtmodel(P);//CPDP預測14.返回result

2 實證分析

2.1 數據集

本次實驗使用PROMISE提供的10個項目缺陷數據集,表1給出了每個項目的相關信息。數據集中每個實例表示一個類文件(.java),包括20個源代碼度量指標用于量化實例,其中CK套件10個、Martins指標2個、QMOOM套件5個、McCabes CC指標2個,以及代碼行LOC。

2.2 分類器與評價指標

本文采用樸素貝葉斯分類器(Nave Bayes)作為本次CPDP預測模型訓練的分類器,Nave Bayes是一個基于條件概率最簡單的分類器,其之所以被稱之為“樸素”是因為它假設所有特征之間都是相互獨立的。數學表示為P(X|Y)=∏ni=1P(xi|Y),X={x1,x2,…,xn}為一個特征向量,Y為分類變量。盡管現實中這種獨立假設并不完全成立,但樸素貝葉斯已在很多實踐研究中得到有效的應用[9]。在預測過程中,給定一個新的實例(類文件),樸素貝葉斯分類器通過計算該類在各個特征值上的條件概率的乘積來評估存在缺陷的概率,式(7)為基本的計算公式:

P(Y=k|X)=P(Y=k)∏iP(xi|Y=k)∑jP(Y=k)∏iP(xi|Y=k)(7)

預測過程中存在4種可能情況:假陽性(FP)、假陰性(FN)、真陽性(TP)與真陰性(TN)。根據4種預測結果可計算準確率(precision)、召回率(recall)和F-measure評價指標。準確率用來衡量有多少真實存在缺陷的實例被成功地預測。準確率越高,表明無缺陷實例被誤認為有缺陷的情況會更少。

precision=TPTP+FP(8)

召回率用來衡量被預測為有缺陷的實例中有多少是真實存在缺陷。召回率越高,表明有缺陷實例被誤認為無缺陷的情況會更少。

recall=TPTP+FN(9)

F-measure用來平衡準確率與召回率,為兩者的加權平均值。F-measure 越接近1 表示預測效果越好。

F-measure=2*precision*recallprecision+recall(10)

2.3 實驗結果

問題1:引入項目的情境信息,是否有助于提高CPDP性能?

實驗結果如圖2所示,不難發現,在為目標項目選擇合適的跨項目數據集過程中,引入項目的情境信息后的CPDP模型性能比不使用時整體都有所提高,其中項目Synapse、Ant和Jedit三個項目性能改進最為顯著,F-measure值改進幅度分別為0.32(86.7%)、0.222(66.2%)和0.207(64.3%)。因此,實驗結果證實,引入項目的情境信息,有助于提高CPDP性能。

問題2:相比已有CPDP方法,本文所提方法是否性能更好?

為了進一步驗證本文所提出的方法的有效性,引入文獻[1]、[5]中提出的CPDP方法作為比較對象。此外,與WPDP方法進行對比,如圖3所示。結果顯示,本文所提方法相比兩種基準方法baseline1和baseline2整體性能分布有所提高,表現為前者均值為0.512,兩種基礎方法的均值分別為0.445和0.481,改進比例分別為15.04%和6.57%,且最大值和最小值均有所提高。然而,本文方法相比于WPDP方法,仍然表現出一定差距。WPDP的均值為0.621,說明選用其它項目的數據訓練出的模型仍不如目標項目自身的數據更可靠。盡管如此,但考慮到現實中,對于一些新項目或不活躍的項目,它們可供使用的歷史數據并不多,在此數據不充分的情境下,即便是有WPDP方法,相信效果也依舊不佳。

本文不足之處:①實驗數據只選取了10個項目,實驗結論還有待在更多項目數據集上加以驗證;②本文只考慮了5個項目屬性用于表達情境信息,根據開源社區中提供的信息,表達項目情境的屬性還有很多,有待進一步探索。

3 結語

本文圍繞跨項目缺陷預測開展研究,針對為目標項目選擇合適的訓練數據問題,在以往通過項目實例度量指標相似度匹配的基礎上,引入項目的情境信息,從而改進CPDP預測模型。實驗結果表明:①引入項目的情境信息,有助于提高CPDP性能;②相比兩種基準方法,筆者的方法整體性能有提高,分別提高15.04%和6.57%,但相比WPDP方法,依舊還有待提高。

參考文獻:

[1] HE Z, SHU F, YANG Y, et al. An investigation on the feasibility of cross-project defect prediction[J]. Automated Software Engineering, 2012, 19(2):167-199.endprint

[2] TURHAN B, MENZIES T, BENER A B, et al. On the relative value of cross-company and within-company data for defect prediction[J]. Empirical Software Engineering, 2009, 14(5):540-578.

[3] RYU D, JANG J, BAIK J. A hybrid instance selection using nearest-neighbor for cross-project defect prediction [J]. Journal of Computer Science and Technology, 2015,30(5):969-980.

[4] ZIMMERMANN T, NAGAPPAN N, GALL H, et al. Cross-project defect prediction a large scale experiment on data vs.domain vs.process[C].Joint Meeting of the European Software Engineering Conference and the ACM International Symposium on Foundations of Software Engineering, Amsterdam, Netherlands, 2009:91-100.

[5] PETERS F, MENZIES T, MARCUS A. Better cross company defect prediction[C].Working Conference on Mining Software Repositories. San Francisco, USA, 2013:409-418.

[6] 王星, 何鵬, 陳丹,等. 跨項目缺陷預測中訓練數據選擇方法[J]. 計算機應用, 2016, 36(11):3165-3169.

[7] LU H, CUKIC B, CULP M. Software defect prediction using semi-supervised learning with dimension reduction[C].Ieee/acm International Conference on Automated Software Engineering. ACM, 2012:314-317.

[8] HERBOLD S. Training data selection for cross-project defect prediction[C].Proceedings of the 9th International Conference on Predictive Models in Software Engineering. 2013:1-10.

[9] HALL T,BEECHAM S,BOWES D,et al. A systematic literature review on fault prediction performance in software engineering[J].Software Engineering IEEE Transactions on,2012,38(6):1276-1304.endprint

主站蜘蛛池模板: 久久a级片| 丁香五月激情图片| 欧美三級片黃色三級片黃色1| 欧美成人免费午夜全| 欧美在线中文字幕| 欧美日韩国产综合视频在线观看| 欧美日韩国产精品va| 国产人成网线在线播放va| 无码又爽又刺激的高潮视频| 日韩精品亚洲精品第一页| 亚洲福利网址| 色综合激情网| 久久久久亚洲AV成人网站软件| 日韩无码黄色| 国产欧美又粗又猛又爽老| 亚洲视频二| 国产精品美女网站| 中国一级特黄视频| 国产午夜精品一区二区三区软件| 亚洲中文字幕无码爆乳| 欧美人在线一区二区三区| 亚洲毛片一级带毛片基地| 四虎影视无码永久免费观看| 永久免费无码成人网站| 99热国产在线精品99| 成AV人片一区二区三区久久| 国产黄色片在线看| 一本久道久久综合多人| 亚洲精品在线91| 另类欧美日韩| 9cao视频精品| 久久福利片| 欧美视频免费一区二区三区| 国产丝袜啪啪| 亚洲高清中文字幕| 成年看免费观看视频拍拍| 国产在线高清一级毛片| 国产乱人激情H在线观看| 久久国产精品麻豆系列| 亚洲AV无码一二区三区在线播放| 99热这里只有精品在线播放| 国产色婷婷| 亚洲一区二区成人| 都市激情亚洲综合久久| 1024国产在线| 精品福利网| 国产91高跟丝袜| 蝌蚪国产精品视频第一页| a亚洲天堂| 欧美亚洲一二三区 | 午夜视频日本| 色综合a怡红院怡红院首页| 色噜噜狠狠色综合网图区| 国产成人无码AV在线播放动漫| 这里只有精品在线| 国产成人超碰无码| 99久久精品免费看国产免费软件| 国国产a国产片免费麻豆| 国产本道久久一区二区三区| 国国产a国产片免费麻豆| 国产精品嫩草影院av| 99久久精品久久久久久婷婷| 免费一级全黄少妇性色生活片| 午夜性刺激在线观看免费| 99ri精品视频在线观看播放| 最新国产午夜精品视频成人| 日韩小视频在线观看| 国产精品吹潮在线观看中文| 国产一级一级毛片永久| vvvv98国产成人综合青青| 久久国产黑丝袜视频| 亚洲成人动漫在线观看| 久久超级碰| 最近最新中文字幕在线第一页 | 欧美 国产 人人视频| 天堂网亚洲系列亚洲系列| 自拍偷拍欧美| 在线视频精品一区| 国产在线精品人成导航| 香蕉久久永久视频| 欧美成a人片在线观看| 91人人妻人人做人人爽男同|