[發(fā)明專利]基于代碼表示的軟件缺陷自動(dòng)修復(fù)加速方法在審
| 申請(qǐng)?zhí)枺?/td> | 202111337290.5 | 申請(qǐng)日: | 2021-11-12 |
| 公開(公告)號(hào): | CN114064472A | 公開(公告)日: | 2022-02-18 |
| 發(fā)明(設(shè)計(jì))人: | 姜佳君;楊晨;陳俊潔;龍金強(qiáng);陳宇濤 | 申請(qǐng)(專利權(quán))人: | 天津大學(xué) |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36;G06F8/41;G06F8/65 |
| 代理公司: | 天津市北洋有限責(zé)任專利代理事務(wù)所 12201 | 代理人: | 李素蘭 |
| 地址: | 300072*** | 國(guó)省代碼: | 天津;12 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 代碼 表示 軟件 缺陷 自動(dòng) 修復(fù) 加速 方法 | ||
1.一種基于代碼表示的軟件缺陷自動(dòng)修復(fù)加速方法,其特征在于,該方法包括以下步驟:
步驟一:候選相似代碼向量化,即對(duì)于給定的代碼片段m和n,使用代碼表示模型來(lái)獲得它們的向量表示:
首先,對(duì)于給定的錯(cuò)誤程序和自動(dòng)缺陷修復(fù)工具以函數(shù)的粒度提取出潛在的候選相似代碼;其次,將提取出的候選相似代碼進(jìn)行預(yù)處理,之后輸入ASTNN神經(jīng)網(wǎng)絡(luò)和CodeBERT神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到訓(xùn)練后的候選相似代碼的向量表示;對(duì)于每個(gè)候選相似代碼段,利用代碼表示模型ASTNN從語(yǔ)法層面和語(yǔ)義層面共同提取候選相似代碼段信息,以及,利用代碼表示模型CodeBERT從語(yǔ)義層面將候選相似代碼段作為自然語(yǔ)言進(jìn)行處理,使用預(yù)訓(xùn)練語(yǔ)言模型對(duì)候選相似代碼段進(jìn)行編碼,得到候選相似代碼的向量表示;
步驟二:利用ASTNN算法和CodeBERT算法分別計(jì)算候選相似代碼段與疑似的錯(cuò)誤代碼段、生成的候選補(bǔ)丁與疑似的錯(cuò)誤代碼段的相似度之間的相似度;
步驟三:動(dòng)態(tài)過(guò)濾,即在候選補(bǔ)丁列表中根據(jù)候選補(bǔ)丁與疑似的錯(cuò)誤代碼段之間的相似度以及各個(gè)候選補(bǔ)丁之間的相似度進(jìn)行候選補(bǔ)丁篩選,其中與疑似的錯(cuò)誤代碼段相似度低于閾值的候選補(bǔ)丁以及與已知錯(cuò)誤補(bǔ)丁相似度高于閾值的候選補(bǔ)丁被動(dòng)態(tài)過(guò)濾掉;
步驟四:修復(fù)驗(yàn)證,在大規(guī)模使用的基準(zhǔn)數(shù)據(jù)集上進(jìn)行驗(yàn)證,根據(jù)驗(yàn)證的結(jié)果對(duì)前面的動(dòng)態(tài)過(guò)濾過(guò)程進(jìn)行信息反饋,直到成功修復(fù)或程序運(yùn)行結(jié)束。
2.如權(quán)利要求1所述的一種基于代碼表示的軟件缺陷自動(dòng)修復(fù)加速方法,其特征在于,其中所述步驟一中的預(yù)訓(xùn)練語(yǔ)言模型基于大量開源代碼的雙模態(tài)和單模態(tài)數(shù)據(jù)訓(xùn)練得到。
3.如權(quán)利要求1所述的一種基于代碼表示的軟件缺陷自動(dòng)修復(fù)加速方法,其特征在于,其中所述步驟四中的驗(yàn)證處理具體包括以下步驟:
根據(jù)每個(gè)補(bǔ)丁與疑似的錯(cuò)誤代碼之間的相似性過(guò)濾掉相似度低的補(bǔ)丁;接下來(lái),在對(duì)一個(gè)補(bǔ)丁進(jìn)行驗(yàn)證時(shí),首先將該補(bǔ)丁應(yīng)用在待修復(fù)的疑似錯(cuò)誤代碼上,然后在應(yīng)用補(bǔ)丁后的代碼上執(zhí)行測(cè)試,如果通過(guò)了所有測(cè)試,則認(rèn)為是候選正確補(bǔ)丁,進(jìn)一步人工驗(yàn)證其是否與數(shù)據(jù)集中給定的正確補(bǔ)丁語(yǔ)義等價(jià)來(lái)確定補(bǔ)丁是否正確;若未能通過(guò)全部測(cè)試,則說(shuō)明該補(bǔ)丁不正確,此時(shí)過(guò)濾掉剩余待驗(yàn)證補(bǔ)丁中與該不正確補(bǔ)丁相似度高于閾值的補(bǔ)丁,實(shí)現(xiàn)動(dòng)態(tài)過(guò)濾,即將每次補(bǔ)丁驗(yàn)證的結(jié)果反饋給動(dòng)態(tài)過(guò)濾的過(guò)程。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于天津大學(xué),未經(jīng)天津大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111337290.5/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
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ò)誤
- 遙控器代碼格式結(jié)構(gòu)及其收發(fā)信方法及裝置
- 在虛擬機(jī)中驗(yàn)證代碼模塊的方法及裝置
- 一種用于代碼的管理方法及裝置
- 虛擬代碼提供系統(tǒng)、生成裝置、驗(yàn)證裝置、提供方法
- 一種自動(dòng)化代碼質(zhì)量檢查方法及系統(tǒng)
- 代碼掃描方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于更新代碼的方法和裝置
- 前端代碼打包方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種代碼審查服務(wù)同步方法、裝置及計(jì)算機(jī)設(shè)備
- 一種高效智能源代碼安全管理平臺(tái)
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測(cè)方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲(chǔ)介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動(dòng)態(tài)惡意軟件分析來(lái)擴(kuò)展惡意軟件的動(dòng)態(tài)檢測(cè)
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測(cè)驗(yàn)軟件的裝置與方法





