[發(fā)明專利]一種基于深度森林網(wǎng)絡(luò)的軟件缺陷預(yù)測方法在審
| 申請?zhí)枺?/td> | 201711290710.2 | 申請日: | 2017-12-04 |
| 公開(公告)號: | CN107943704A | 公開(公告)日: | 2018-04-20 |
| 發(fā)明(設(shè)計)人: | 李斌;周天馳;孫小兵 | 申請(專利權(quán))人: | 揚州大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06K9/62;G06N99/00 |
| 代理公司: | 南京中新達專利代理有限公司32226 | 代理人: | 孫鷗,朱杰 |
| 地址: | 225009 *** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 深度 森林 網(wǎng)絡(luò) 軟件 缺陷 預(yù)測 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于軟件分析與測試領(lǐng)域,特別涉及一種基于深度森林網(wǎng)絡(luò)的軟件缺陷預(yù)測方法。
背景技術(shù)
軟件缺陷(software defect)產(chǎn)生于開發(fā)人員的編碼過程中,需求理解不正確、軟件開發(fā)過程不合理或開發(fā)人員的經(jīng)驗不足,均有可能產(chǎn)生軟件缺陷.而含有缺陷的軟件在運行時可能會產(chǎn)生意料之外的結(jié)果或行為,嚴重的時候會給企業(yè)造成巨大的經(jīng)濟損失,甚至?xí){到人們的生命安全.在軟件項目的開發(fā)生命周期中,檢測出內(nèi)在缺陷的時間越晚,修復(fù)該缺陷的代價也越高.尤其在軟件發(fā)布后,檢測和修復(fù)缺陷的代價將大幅度增加.因此,項目主管借助軟件測試或代碼審查等軟件質(zhì)量保障手段,希望能夠在軟件部署前盡可能多地檢測出內(nèi)在缺陷.但是,若關(guān)注所有的程序模塊會消耗大量的人力物力,因此,項目主管希望能夠預(yù)先識別出可能含有缺陷的程序模塊,并對其分配足夠的測試資源。
在本發(fā)明作出之前,為了幫助軟件開發(fā)人員盡可能地節(jié)省發(fā)現(xiàn)缺陷的成本,就需要盡可能地提高缺陷預(yù)測的精度,對于軟件缺陷預(yù)測的研究主要集中在對于軟件預(yù)測度量的構(gòu)建和預(yù)測方法的設(shè)計。目前缺陷預(yù)測領(lǐng)域越來越多的利用機器學(xué)習(xí)的方法來構(gòu)建分類器,但是由于目前數(shù)據(jù)集中存在的維數(shù)災(zāi)難問題和特征子集選擇方法不夠成熟,導(dǎo)致某些機器學(xué)習(xí)的分類器(如基于隨機森林的缺陷預(yù)測分類器只能在大規(guī)模標記數(shù)據(jù)上取得較好的效果,而基于樸素貝葉斯的缺陷預(yù)測分類器只能在小規(guī)模數(shù)據(jù)上取得較好的效果)因此整體的缺陷預(yù)測精度不高,達不到工業(yè)級別所需要的精度要求。
發(fā)明內(nèi)容
本發(fā)明的目的就是要克服上述缺陷,研發(fā)出一種基于深度森林網(wǎng)絡(luò)的軟件缺陷預(yù)測方法。
本發(fā)明技術(shù)方法是:
一種基于深度森林網(wǎng)絡(luò)的代碼缺陷預(yù)測方法,其主要技術(shù)特征在于如下步驟:
(1)挖掘代碼歷史倉庫,抽取程序模塊,對程序模塊按照設(shè)定好的度量進行相關(guān)代碼特征數(shù)據(jù)提取。
(2)將步驟(1)代碼特征進行多粒度掃描,篩選出與缺陷相關(guān)度高的代碼特征。
(3)利用步驟(2)中的缺陷特征構(gòu)建多個隨機森林和完全隨機森林模型。
(4)將步驟(3)的多個隨機森林級聯(lián)成缺陷預(yù)測網(wǎng)絡(luò)。
(5)對步驟(2)的缺陷特征向量按照設(shè)定比例進行隨機切片,輸入到步驟(4)中建立的缺陷預(yù)測網(wǎng)絡(luò)進行訓(xùn)練,形成缺陷預(yù)測的分類器。
(6)將步驟(5)切片剩余的數(shù)據(jù)輸入到缺陷預(yù)測分類器中,與真實標記的數(shù)據(jù)進行對比,驗證訓(xùn)練效果,根據(jù)結(jié)果調(diào)整訓(xùn)練參數(shù)后得到最終的缺陷預(yù)測分類器。
本發(fā)明的優(yōu)點和效果在于從深度森林網(wǎng)絡(luò)的角度,結(jié)合多粒度掃描,級聯(lián)森林等技術(shù)來構(gòu)建缺陷預(yù)測分類器,提供有效的代碼缺陷預(yù)測,幫助開發(fā)者合理使用測試資源,大大縮短了軟件開發(fā)周期。具體說,主要有如下一些優(yōu)點:
(1)目前軟件預(yù)測方法只能在一些特定的數(shù)據(jù)集上取得一些精度較好的結(jié)果,但是其離工業(yè)應(yīng)用還有一定的差距,本方法創(chuàng)新性地將機器學(xué)習(xí)方法深度森林應(yīng)用到缺陷預(yù)測中,能夠得到可靠的高精度分類器。
(2)本方法在已有的科學(xué)代碼度量的前提下,利用多粒度掃描算法可以有效的篩選出適合缺陷預(yù)測的度量,從而減少訓(xùn)練集的采樣,節(jié)省資源。
(3)本方法構(gòu)建多層森林樹的缺陷預(yù)測網(wǎng)絡(luò),可以在訓(xùn)練少量的數(shù)據(jù)集的情況下,獲得良好的預(yù)測精度,大大節(jié)省了數(shù)據(jù)標記的成本。
附圖說明
圖1——本發(fā)明流程示意圖。
圖2——本發(fā)明中隨機森林的示例圖。
圖3——本發(fā)明中預(yù)測模型的示例圖。
圖4——本發(fā)明中缺陷預(yù)測網(wǎng)絡(luò)進行預(yù)測的示例圖。
具體實施方式
本發(fā)明的技術(shù)思路是:
本發(fā)明主要幫助軟件開發(fā)者和維護者更有效地檢測軟件的缺陷,從而提高軟件的質(zhì)量。首先選取真實的項目數(shù)據(jù),按照設(shè)定好的度量進行數(shù)據(jù)提取,隨后進行多粒度掃描篩選特征,之后構(gòu)建多個機器學(xué)習(xí)分類器將并其級聯(lián)組合形成新的分類器,輸入切片的特征向量訓(xùn)練分類器,之后將待數(shù)據(jù)預(yù)測的數(shù)據(jù)輸入到訓(xùn)練好的分類器,返回高精度的結(jié)果。高精度的預(yù)測結(jié)果可以極大地引導(dǎo)開發(fā)者進行代碼缺陷的判斷和維護,從而減少測試資源的投入,降低軟件開發(fā)的成本。
下面具體說明本發(fā)明。
如圖1所示,其步驟如下:
步驟1).對源代碼按照設(shè)定好的度量進行特征數(shù)據(jù)提取。
部分數(shù)據(jù)處理如表一所示:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于揚州大學(xué),未經(jīng)揚州大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711290710.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 網(wǎng)絡(luò)和網(wǎng)絡(luò)終端
- 網(wǎng)絡(luò)DNA
- 網(wǎng)絡(luò)地址自適應(yīng)系統(tǒng)和方法及應(yīng)用系統(tǒng)和方法
- 網(wǎng)絡(luò)系統(tǒng)及網(wǎng)絡(luò)至網(wǎng)絡(luò)橋接器
- 一種電力線網(wǎng)絡(luò)中根節(jié)點網(wǎng)絡(luò)協(xié)調(diào)方法和系統(tǒng)
- 一種多網(wǎng)絡(luò)定位方法、存儲介質(zhì)及移動終端
- 網(wǎng)絡(luò)裝置、網(wǎng)絡(luò)系統(tǒng)、網(wǎng)絡(luò)方法以及網(wǎng)絡(luò)程序
- 從重復(fù)網(wǎng)絡(luò)地址自動恢復(fù)的方法、網(wǎng)絡(luò)設(shè)備及其存儲介質(zhì)
- 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法、裝置及存儲介質(zhì)
- 網(wǎng)絡(luò)管理方法和裝置





