跨項(xiàng)目軟件缺陷預(yù)測(cè)方法研究綜述
本文選題:經(jīng)驗(yàn)軟件工程 + 軟件缺陷預(yù)測(cè)。 參考:《計(jì)算機(jī)學(xué)報(bào)》2018年01期
【摘要】:軟件缺陷預(yù)測(cè)首先通過挖掘與分析軟件歷史倉庫,從中抽取程序模塊并進(jìn)行類型標(biāo)記.隨后通過分析軟件代碼的內(nèi)在復(fù)雜度或開發(fā)過程特征,設(shè)計(jì)出與軟件缺陷存在強(qiáng)相關(guān)性的度量元,并對(duì)這些程序模塊進(jìn)行度量.最后借助特定的機(jī)器學(xué)習(xí)方法基于上述數(shù)據(jù)構(gòu)建出缺陷預(yù)測(cè)模型.因此該方法可以在項(xiàng)目開發(fā)的早期階段,通過預(yù)先識(shí)別出項(xiàng)目?jī)?nèi)的可疑缺陷模塊,達(dá)到優(yōu)化測(cè)試資源分配的目的.但在實(shí)際軟件開發(fā)場(chǎng)景中,需要進(jìn)行缺陷預(yù)測(cè)的項(xiàng)目可能是一個(gè)新啟動(dòng)項(xiàng)目,或這個(gè)項(xiàng)目的歷史訓(xùn)練數(shù)據(jù)比較稀缺.一種簡(jiǎn)單的解決方案是利用其他項(xiàng)目已經(jīng)搜集的訓(xùn)練數(shù)據(jù)來構(gòu)建缺陷預(yù)測(cè)模型.但不同項(xiàng)目之間因所處的應(yīng)用領(lǐng)域、采用的開發(fā)流程、使用的編程語言、開發(fā)人員經(jīng)驗(yàn)等并不相同,因此對(duì)應(yīng)數(shù)據(jù)集間會(huì)存在較大的分布差異性并造成該方案的實(shí)際性能并不理想,因此如何通過有效遷移源項(xiàng)目的相關(guān)知識(shí)來為目標(biāo)項(xiàng)目構(gòu)建預(yù)測(cè)模型,吸引了國(guó)內(nèi)外研究人員的關(guān)注,并將該問題稱為跨項(xiàng)目軟件缺陷預(yù)測(cè)問題.論文針對(duì)該問題進(jìn)行了系統(tǒng)綜述.根據(jù)預(yù)測(cè)場(chǎng)景的不同,將已有方法分為3類:基于有監(jiān)督學(xué)習(xí)的方法、基于無監(jiān)督學(xué)習(xí)的方法和基于半監(jiān)督學(xué)習(xí)的方法.其中基于有監(jiān)督學(xué)習(xí)的方法主要基于候選源項(xiàng)目集的程序模塊來構(gòu)建模型.這類方法根據(jù)源項(xiàng)目與目標(biāo)項(xiàng)目采用的度量元是否相同又可以細(xì)分為同構(gòu)跨項(xiàng)目缺陷預(yù)測(cè)方法和異構(gòu)跨項(xiàng)目缺陷預(yù)測(cè)方法.針對(duì)前者,研究人員主要從度量元取值轉(zhuǎn)換、實(shí)例選擇和權(quán)重設(shè)置、特征映射和特征選擇、集成學(xué)習(xí)、類不平衡學(xué)習(xí)等角度展開研究.而后者更具研究挑戰(zhàn)性,研究人員主要基于特征映射和典型相關(guān)分析等方法展開研究.基于無監(jiān)督學(xué)習(xí)的方法直接嘗試對(duì)目標(biāo)項(xiàng)目中的程序模塊進(jìn)行預(yù)測(cè).這類方法假設(shè)在軟件缺陷預(yù)測(cè)問題中,有缺陷模塊的度量元取值存在高于無缺陷模塊的度量元取值的傾向.因此研究人員主要基于聚類方法展開研究.而基于半監(jiān)督學(xué)習(xí)的方法則會(huì)綜合使用候選源項(xiàng)目集的程序模塊和目標(biāo)項(xiàng)目中的少量已標(biāo)記模塊來構(gòu)建模型.這類方法通過嘗試從目標(biāo)項(xiàng)目中選出少量模塊進(jìn)行標(biāo)記,以提高跨項(xiàng)目缺陷預(yù)測(cè)的性能.研究人員主要借助集成學(xué)習(xí)和TrAdaBoost方法展開研究.論文依次對(duì)每一類方法的已有研究成果進(jìn)行了系統(tǒng)梳理和點(diǎn)評(píng).隨后論文進(jìn)一步總結(jié)了跨項(xiàng)目缺陷預(yù)測(cè)研究中經(jīng)常使用的性能評(píng)測(cè)指標(biāo)和評(píng)測(cè)數(shù)據(jù)集,其統(tǒng)計(jì)結(jié)果可以輔助研究人員針對(duì)該問題進(jìn)行合理的實(shí)驗(yàn)設(shè)計(jì).最后總結(jié)全文,并分別從數(shù)據(jù)集搜集、數(shù)據(jù)集預(yù)處理、模型構(gòu)建和評(píng)估、模型應(yīng)用這4個(gè)維度對(duì)未來值得關(guān)注的研究方向進(jìn)行了展望.
[Abstract]:Firstly, software defect prediction is done by mining and analyzing the software history warehouse, extracting the program module from it and marking the software type. Then, by analyzing the inherent complexity of software code or the characteristics of the development process, a measure element with strong correlation with software defects is designed, and these program modules are measured. Finally, a defect prediction model based on the above data is constructed with the help of specific machine learning methods. Therefore, this method can be used to optimize the allocation of test resources in the early stage of project development by pre-identifying the suspicious defect modules in the project. However, in the actual software development scenario, the project requiring defect prediction may be a newly started project, or the historical training data of the project may be scarce. A simple solution is to build defect prediction models using training data already collected by other projects. However, because of the application field, the development process, the programming language used, the experience of the developer and so on, the different projects are not the same. Therefore, there is a large distribution difference between the corresponding data sets and the actual performance of the scheme is not ideal. Therefore, how to build a prediction model for the target project by effectively migrating the relevant knowledge of the source project. It has attracted the attention of researchers at home and abroad and called this problem a cross-project software defect prediction problem. A systematic review of the problem is given in this paper. According to the different prediction scenarios, the existing methods are divided into three categories: one based on supervised learning, another based on unsupervised learning and one based on semi-supervised learning. The method based on supervised learning is mainly based on the program module of candidate source itemset to construct the model. This kind of method can be subdivided into isomorphic cross-project defect prediction method and heterogeneous cross-project defect prediction method according to whether the measure elements used in source project and target project are the same or not. For the former, the researchers mainly focus on the measurement element conversion, case selection and weight setting, feature mapping and feature selection, integrated learning, class imbalance learning and so on. The latter is more challenging, and the research is mainly based on feature mapping and canonical correlation analysis. Based on the unsupervised learning method, we try to predict the program module in the target project directly. This method assumes that in the software defect prediction problem, the metric element of the defective module tends to be higher than that of the non-defect module. So the research is mainly based on clustering method. The method based on semi-supervised learning combines the program modules of candidate source itemsets and a small number of tagged modules in target projects to construct the model. This method can improve the performance of cross-project defect prediction by selecting a small number of modules from the target project to mark. The researchers mainly use integrated learning and TrAdaBoost method to carry out the research. In this paper, the existing research results of each kind of methods are systematically combed and reviewed in turn. Then the paper summarizes the performance evaluation indexes and data sets which are often used in the research of cross-project defect prediction. The statistical results can be used to assist the researchers to carry out reasonable experimental design for this problem. Finally, this paper summarizes the whole paper, and looks forward to the future research direction from the four dimensions of data collection, data set preprocessing, model construction and evaluation, and model application.
【作者單位】: 南通大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院;南京大學(xué)計(jì)算機(jī)軟件新技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室;天津大學(xué)軟件學(xué)院;
【基金】:國(guó)家自然科學(xué)基金(61202006,61202030,61373012,61402244,61602267) 南京大學(xué)計(jì)算機(jī)軟件新技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室開放課題(KFKT2016B18) 江蘇省高校自然科學(xué)研究項(xiàng)目(15KJB520030,16KJB520038)資助~~
【分類號(hào)】:TP311.53
【相似文獻(xiàn)】
相關(guān)期刊論文 前10條
1 ;軟件缺陷詞典正在制定[J];軟件世界;2007年06期
2 王德勝;宮云戰(zhàn);;論軟件缺陷[J];計(jì)算機(jī)應(yīng)用研究;2008年12期
3 聶劍平;韓柯;陳光;曹旭;;軟件缺陷增長(zhǎng)過程的混沌分析[J];計(jì)算機(jī)工程與應(yīng)用;2008年11期
4 劉海;郝克剛;;軟件缺陷數(shù)據(jù)的分析方法及其實(shí)現(xiàn)[J];計(jì)算機(jī)科學(xué);2008年08期
5 熊斐;李建忠;徐中望;;軟件缺陷管理與防范[J];科技創(chuàng)新導(dǎo)報(bào);2009年04期
6 石劍飛;楊欣;秦瑋;閆懷志;;一種軟件缺陷預(yù)測(cè)改進(jìn)模型的研究[J];北京理工大學(xué)學(xué)報(bào);2010年09期
7 繆林松;;基于代價(jià)敏感神經(jīng)網(wǎng)絡(luò)算法的軟件缺陷預(yù)測(cè)[J];電子科技;2012年06期
8 朱小燕;曲俊燕;;淺析軟件缺陷的問題[J];無線互聯(lián)科技;2013年04期
9 田華;蒲天銀;;基于遷移學(xué)習(xí)的軟件缺陷預(yù)測(cè)方法研究[J];西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版);2014年03期
10 宮云戰(zhàn);論軟件缺陷[J];裝甲兵工程學(xué)院學(xué)報(bào);2003年01期
相關(guān)會(huì)議論文 前8條
1 趙修湘;石勇;劉瑩;張玲玲;;文本分類在軟件缺陷管理中的應(yīng)用[A];第四屆(2009)中國(guó)管理學(xué)年會(huì)——管理科學(xué)與工程分會(huì)場(chǎng)論文集[C];2009年
2 李立清;;軟件缺陷數(shù)據(jù)的分析和預(yù)測(cè)[A];第三屆中國(guó)測(cè)試學(xué)術(shù)會(huì)議論文集[C];2004年
3 李立清;;用軟件缺陷數(shù)據(jù)進(jìn)行缺陷預(yù)測(cè)[A];中國(guó)工程物理研究院科技年報(bào)(2005)[C];2005年
4 趙亮;侯金寶;;文件和包層次的軟件缺陷預(yù)測(cè)研究[A];第十四屆全國(guó)容錯(cuò)計(jì)算學(xué)術(shù)會(huì)議(CFTC'2011)論文集[C];2011年
5 于秀山;王廣儉;;軟件缺陷管理[A];中國(guó)電子學(xué)會(huì)可靠性分會(huì)第十三屆學(xué)術(shù)年會(huì)論文選[C];2006年
6 寇綱;彭怡;石勇;;基于數(shù)據(jù)挖掘的軟件缺陷度量評(píng)估管理及研究現(xiàn)狀綜述[A];第三屆(2008)中國(guó)管理學(xué)年會(huì)——信息管理分會(huì)場(chǎng)論文集[C];2008年
7 高通;焦彥平;龔波;;基于曲線擬合的軟件缺陷排除成本預(yù)測(cè)[A];2010年全國(guó)通信安全學(xué)術(shù)會(huì)議論文集[C];2010年
8 涂亞明;毛軍鵬;余靜;尹磊;;系統(tǒng)測(cè)試階段的軟件缺陷預(yù)測(cè)模型分析[A];第六屆中國(guó)測(cè)試學(xué)術(shù)會(huì)議論文集[C];2010年
相關(guān)重要報(bào)紙文章 前1條
1 謝敏、戴金龍;追蹤每一個(gè)軟件缺陷[N];計(jì)算機(jī)世界;2005年
相關(guān)博士學(xué)位論文 前9條
1 Gabriel Kofi Armah;[D];電子科技大學(xué);2015年
2 王偉光;動(dòng)態(tài)軟件缺陷測(cè)試關(guān)鍵技術(shù)研究[D];南京大學(xué);2016年
3 陳琳;基于機(jī)器學(xué)習(xí)的軟件缺陷預(yù)測(cè)研究[D];重慶大學(xué);2016年
4 于巧;基于機(jī)器學(xué)習(xí)的軟件缺陷預(yù)測(cè)方法研究[D];中國(guó)礦業(yè)大學(xué);2017年
5 陳媛;基于數(shù)據(jù)挖掘的軟件缺陷預(yù)測(cè)技術(shù)研究[D];中國(guó)科學(xué)院研究生院(長(zhǎng)春光學(xué)精密機(jī)械與物理研究所);2012年
6 馬櫻;基于機(jī)器學(xué)習(xí)的軟件缺陷預(yù)測(cè)技術(shù)研究[D];電子科技大學(xué);2012年
7 單純;軟件缺陷分布預(yù)測(cè)技術(shù)及應(yīng)用研究[D];北京理工大學(xué);2015年
8 張凱;軟件缺陷混沌分形描述與軟件質(zhì)量進(jìn)化度量的研究[D];武漢理工大學(xué);2005年
9 楊曉杏;基于度量元的軟件缺陷預(yù)測(cè)技術(shù)[D];中國(guó)科學(xué)技術(shù)大學(xué);2014年
相關(guān)碩士學(xué)位論文 前10條
1 趙長(zhǎng)凱;軟件缺陷管理與預(yù)測(cè)系統(tǒng)的設(shè)計(jì)[D];復(fù)旦大學(xué);2013年
2 張亮;基于改進(jìn)BP算法的軟件缺陷預(yù)測(cè)模型研究[D];北京理工大學(xué);2015年
3 王男帥;基于遺傳優(yōu)化支持向量機(jī)的軟件缺陷預(yù)測(cè)模型研究[D];北京理工大學(xué);2015年
4 陳艷;軟件缺陷管理技術(shù)研究與實(shí)現(xiàn)[D];電子科技大學(xué);2014年
5 李碧雯;基于遷移學(xué)習(xí)的跨項(xiàng)目軟件缺陷預(yù)測(cè)[D];上海交通大學(xué);2015年
6 梁天超;一種基于人工免疫樸素貝葉斯方法的軟件缺陷預(yù)測(cè)模型[D];南京郵電大學(xué);2015年
7 陳家強(qiáng);軟件缺陷預(yù)測(cè)中數(shù)據(jù)預(yù)處理技術(shù)研究[D];南京大學(xué);2014年
8 江曉蘇;魚群優(yōu)化的多核支持向量機(jī)在軟件缺陷預(yù)測(cè)中的應(yīng)用[D];重慶師范大學(xué);2016年
9 權(quán)衡;基于Web的軟件缺陷管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D];華中科技大學(xué);2014年
10 劉慶山;基于復(fù)雜網(wǎng)絡(luò)的動(dòng)態(tài)軟件缺陷預(yù)測(cè)算法研究[D];燕山大學(xué);2016年
,本文編號(hào):1945117
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/1945117.html