[發(fā)明專(zhuān)利]一種基于長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的跨項(xiàng)目軟件缺陷預(yù)測(cè)方法在審
| 申請(qǐng)?zhí)枺?/td> | 202010046978.7 | 申請(qǐng)日: | 2020-01-16 |
| 公開(kāi)(公告)號(hào): | CN111209211A | 公開(kāi)(公告)日: | 2020-05-29 |
| 發(fā)明(設(shè)計(jì))人: | 鄧杰瀚;陸璐 | 申請(qǐng)(專(zhuān)利權(quán))人: | 華南理工大學(xué) |
| 主分類(lèi)號(hào): | G06F11/36 | 分類(lèi)號(hào): | G06F11/36;G06F8/41;G06N3/04;G06N3/08 |
| 代理公司: | 廣州市華學(xué)知識(shí)產(chǎn)權(quán)代理有限公司 44245 | 代理人: | 陳宏升 |
| 地址: | 510640 廣*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 短期 記憶 神經(jīng)網(wǎng)絡(luò) 項(xiàng)目 軟件 缺陷 預(yù)測(cè) 方法 | ||
本發(fā)明公開(kāi)了一種基于長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的跨項(xiàng)目軟件缺陷預(yù)測(cè)方法,包括以下步驟:分析項(xiàng)目的源代碼文件,并從源代碼中解析出對(duì)應(yīng)的抽象語(yǔ)法樹(shù);對(duì)所提取的所有抽象語(yǔ)法樹(shù)的節(jié)點(diǎn)轉(zhuǎn)換為T(mén)oken;將Token映射至詞向量空間,使之可以輸入至神經(jīng)網(wǎng)絡(luò)當(dāng)中;遍歷以詞向量形式表示的抽象語(yǔ)法樹(shù),得到以詞向量表示的抽象語(yǔ)法樹(shù)節(jié)點(diǎn)序列;構(gòu)建長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò),并將詞向量表示的抽象語(yǔ)法樹(shù)節(jié)點(diǎn)序列按序輸入至長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)當(dāng)中,提取抽象語(yǔ)法樹(shù)的語(yǔ)義特征;將語(yǔ)義特征輸入至邏輯回歸分類(lèi)器中,分析待檢測(cè)的文件存在缺陷的概率。本發(fā)明結(jié)合深度學(xué)習(xí)自動(dòng)化特征提取技術(shù),解決傳統(tǒng)軟件缺陷預(yù)測(cè)方法中無(wú)法有效利用編程語(yǔ)言的語(yǔ)法語(yǔ)義信息的問(wèn)題。
技術(shù)領(lǐng)域
本發(fā)明涉及軟件工程領(lǐng)域,特別涉及一種基于長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的跨項(xiàng)目軟件缺陷預(yù)測(cè)方法。
背景技術(shù)
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)迅猛發(fā)展,智能手機(jī)功能不斷創(chuàng)新,移動(dòng)應(yīng)用呈現(xiàn)爆炸式增長(zhǎng),其功能也越來(lái)越豐富,從社交娛樂(lè)到生活理財(cái),各式各樣的應(yīng)用程序都涵蓋了我們生活的每一個(gè)方面,而軟件的體積以及復(fù)雜程度也在與日俱增。軟件復(fù)雜度的增加不可避免地導(dǎo)致了軟件缺陷的出現(xiàn),而軟件缺陷的出現(xiàn)嚴(yán)重影響了軟件的質(zhì)量及其可靠性:輕則出現(xiàn)錯(cuò)誤或異常提示,重則導(dǎo)致閃退崩潰甚至造成數(shù)據(jù)丟失,極大地降低了用戶(hù)體驗(yàn),縮短了軟件的生命期。
為保障軟件質(zhì)量,軟件測(cè)試是一種常規(guī)手段,但其成本高,過(guò)程繁瑣復(fù)雜的特點(diǎn)也使得軟件測(cè)試無(wú)法徹底涵蓋軟件開(kāi)發(fā)的每一個(gè)模塊。特別是在一些開(kāi)發(fā)計(jì)劃比較緊迫的項(xiàng)目中,進(jìn)行全面的軟件測(cè)試是不現(xiàn)實(shí)的,軟件缺陷預(yù)測(cè)技術(shù)便應(yīng)運(yùn)而生。傳統(tǒng)的軟件缺陷預(yù)測(cè)技術(shù)主要基于機(jī)器學(xué)習(xí)算法,通過(guò)建立機(jī)器學(xué)習(xí)模型來(lái)學(xué)習(xí)項(xiàng)目源文件的靜態(tài)手工特征與缺陷之間的關(guān)系,具體包括:1)從項(xiàng)目源文件中提取靜態(tài)手工特征;2)利用提取的手工特征建立對(duì)應(yīng)的機(jī)器學(xué)習(xí)模型;3)使用帶缺陷標(biāo)注的數(shù)據(jù)集訓(xùn)練模型;4)從待檢測(cè)的項(xiàng)目源文件中提取同類(lèi)靜態(tài)手工特征并輸入至訓(xùn)練好的模型,來(lái)預(yù)測(cè)每一個(gè)源文件的缺陷概率。
然而傳統(tǒng)的基于機(jī)器學(xué)習(xí)的軟件缺陷預(yù)測(cè)方法不能利用代碼本身的語(yǔ)法和語(yǔ)義信息,導(dǎo)致預(yù)測(cè)結(jié)果非常不理想。長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò),作為一種深度學(xué)習(xí)算法,能夠從輸入的序列中自動(dòng)學(xué)習(xí)任意兩個(gè)輸入時(shí)刻之間的關(guān)系,使之在自然語(yǔ)言處理領(lǐng)域方面被廣泛地使用。與自然語(yǔ)言類(lèi)似,編程語(yǔ)言也蘊(yùn)含了豐富的的語(yǔ)法語(yǔ)義信息,如果能夠從編程語(yǔ)言中提取這些語(yǔ)法和語(yǔ)義信息用于軟件缺陷預(yù)測(cè),將能夠彌補(bǔ)傳統(tǒng)基于靜態(tài)手工特征缺陷預(yù)測(cè)的不足。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的跨項(xiàng)目軟件缺陷預(yù)測(cè)方法,該方法結(jié)合深度學(xué)習(xí)自動(dòng)化特征提取技術(shù),解決傳統(tǒng)軟件缺陷預(yù)測(cè)方法中無(wú)法有效利用編程語(yǔ)言的語(yǔ)法語(yǔ)義信息的問(wèn)題。
本發(fā)明的目的通過(guò)以下的技術(shù)方案實(shí)現(xiàn):
一種基于長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的跨項(xiàng)目軟件缺陷預(yù)測(cè)方法,包括以下步驟:
1)分析項(xiàng)目的源代碼文件,并從源代碼中解析出對(duì)應(yīng)的抽象語(yǔ)法樹(shù);
2)對(duì)步驟1)所提取的所有抽象語(yǔ)法樹(shù)的節(jié)點(diǎn),按節(jié)點(diǎn)所包含信息的粗細(xì)粒度的不同,將所有節(jié)點(diǎn)轉(zhuǎn)換為T(mén)oken;
3)使用詞嵌入技術(shù),將步驟2)轉(zhuǎn)換后的所有抽象語(yǔ)法樹(shù)的節(jié)點(diǎn)的Token映射至詞向量空間,使之可以輸入至神經(jīng)網(wǎng)絡(luò)當(dāng)中;
4)遍歷步驟3)所得到的以詞向量形式表示的抽象語(yǔ)法樹(shù),得到以詞向量表示的抽象語(yǔ)法樹(shù)節(jié)點(diǎn)序列;
5)構(gòu)建長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò),并將步驟4)所得到詞向量表示的抽象語(yǔ)法樹(shù)節(jié)點(diǎn)序列按序輸入至長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)當(dāng)中,提取抽象語(yǔ)法樹(shù)的語(yǔ)義特征;
6)將步驟5)提取的語(yǔ)義特征輸入至邏輯回歸分類(lèi)器中,分析待檢測(cè)的文件存在缺陷的概率。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于華南理工大學(xué),未經(jīng)華南理工大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010046978.7/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 一種短期交易計(jì)劃安全校核的方法
- 用于風(fēng)功率的超短期預(yù)測(cè)的裝置及預(yù)測(cè)方法
- 一種超短期系統(tǒng)負(fù)荷預(yù)測(cè)實(shí)時(shí)在線(xiàn)考核分析方法
- 一種光伏電站發(fā)電功率超短期預(yù)測(cè)方法
- 基于二次修正的微網(wǎng)超短期負(fù)荷預(yù)測(cè)方法
- 風(fēng)電場(chǎng)短期產(chǎn)能預(yù)報(bào)裝置
- 考慮鋼鐵期貨價(jià)格和實(shí)時(shí)電價(jià)因素的短期日負(fù)荷預(yù)測(cè)方法
- 短期電力負(fù)荷預(yù)測(cè)方法
- 基于超限懲罰的獨(dú)立微電網(wǎng)動(dòng)態(tài)回饋修正優(yōu)化調(diào)度方法
- 基于改進(jìn)AlexNet-GRU模型的配電網(wǎng)短期負(fù)荷預(yù)測(cè)方法及裝置
- 硬件神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換方法、計(jì)算裝置、軟硬件協(xié)作系統(tǒng)
- 生成較大神經(jīng)網(wǎng)絡(luò)
- 神經(jīng)網(wǎng)絡(luò)的生成方法、生成裝置和電子設(shè)備
- 一種舌診方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
- 脈沖神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換方法及相關(guān)轉(zhuǎn)換芯片
- 圖像處理方法、裝置、可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)設(shè)備
- 一種適應(yīng)目標(biāo)數(shù)據(jù)集的網(wǎng)絡(luò)模型微調(diào)方法、系統(tǒng)、終端和存儲(chǔ)介質(zhì)
- 用于重構(gòu)人工神經(jīng)網(wǎng)絡(luò)的處理器及其操作方法、電氣設(shè)備
- 一種圖像神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化方法及裝置





