[發(fā)明專利]一種面向軟件版本一致性缺陷的自動(dòng)修復(fù)方法有效
| 申請(qǐng)?zhí)枺?/td> | 201710848984.2 | 申請(qǐng)日: | 2017-09-13 |
| 公開(公告)號(hào): | CN107643905B | 公開(公告)日: | 2021-01-12 |
| 發(fā)明(設(shè)計(jì))人: | 孫小兵;王璐;李斌;朱俊武 | 申請(qǐng)(專利權(quán))人: | 揚(yáng)州大學(xué) |
| 主分類號(hào): | G06F8/71 | 分類號(hào): | G06F8/71 |
| 代理公司: | 南京中新達(dá)專利代理有限公司 32226 | 代理人: | 孫鷗;朱杰 |
| 地址: | 225009 *** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 軟件 版本 一致性 缺陷 自動(dòng) 修復(fù) 方法 | ||
本發(fā)明涉及一種面向軟件版本一致性缺陷的自動(dòng)修復(fù)方法。本發(fā)明將bug描述、源代碼、相關(guān)配置文件作為輸入數(shù)據(jù),并提取bug描述中的關(guān)鍵信息,用自然語(yǔ)言處理工具轉(zhuǎn)化為特征向量,然后在bug的源代碼中進(jìn)行向前切片,再用基于統(tǒng)計(jì)計(jì)算的程序譜故障定位方法對(duì)源代碼進(jìn)行定位,再分析定位好的源代碼與提取的信息對(duì)bug進(jìn)行修復(fù)。本發(fā)明克服了對(duì)于軟件產(chǎn)品版本問(wèn)題的修復(fù)大多由開發(fā)人員手動(dòng)修改與更新,耗時(shí)又耗力的缺陷。本發(fā)明實(shí)行程序語(yǔ)言版本問(wèn)題修復(fù)和系統(tǒng)所屬的配置版本問(wèn)題修復(fù),有效地提高軟件維護(hù)的效率,減少了成本與人力。
技術(shù)領(lǐng)域
本發(fā)明涉及軟件缺陷修復(fù)領(lǐng)域,特別涉及一種面向軟件版本一致性缺陷的自動(dòng)修復(fù)方法。
背景技術(shù)
隨著軟件規(guī)模的日益增長(zhǎng),軟件升級(jí)越來(lái)越頻繁,程序bug是軟件開發(fā)中不可避免的產(chǎn)物,其中軟件版本不一致的問(wèn)題越來(lái)越突出。其產(chǎn)生的原因可以追溯到軟件開發(fā)的每個(gè)階段,包括維護(hù)階段,演化階段等。為了盡快地修復(fù)軟件bug,程序員必須花費(fèi)大量的時(shí)間和精力查找導(dǎo)致軟件失效的原因,并發(fā)布補(bǔ)丁。大量的歷史數(shù)據(jù)表明,超過(guò)45%的軟件開發(fā)成本用于定位和修復(fù)bug的過(guò)程中,且定位和修復(fù)程序bug是軟件工程問(wèn)題的核心內(nèi)容。為了降低修復(fù)過(guò)程中的時(shí)間和人力成本,自動(dòng)程序修復(fù)方法應(yīng)運(yùn)而生。
自動(dòng)程序修復(fù)方法依據(jù)給定的程序問(wèn)題,自動(dòng)生成程序補(bǔ)丁,進(jìn)而修復(fù)程序中的錯(cuò)誤。修復(fù)中產(chǎn)生的程序補(bǔ)丁既可以自動(dòng)添加到程序中,也可以用于指導(dǎo)開發(fā)者繼續(xù)改進(jìn)代碼。根據(jù)自動(dòng)程序修復(fù)方法的依據(jù),產(chǎn)生了很多該領(lǐng)域的技術(shù)。
在本發(fā)明之前,這些技術(shù)沒(méi)有從版本一致性角度來(lái)修復(fù)與版本相關(guān)的bug,目前軟件產(chǎn)品不斷的更新?lián)Q代,對(duì)軟件的編寫語(yǔ)言和產(chǎn)品中的配置版本的要求不斷提高,對(duì)于軟件產(chǎn)品版本問(wèn)題的修復(fù)大多由開發(fā)人員手動(dòng)修改與更新,耗時(shí)又耗力。
隨著軟件產(chǎn)品的不斷更新,軟件版本問(wèn)題越來(lái)越突出需要解決。基于面向版本一致性的自動(dòng)修復(fù)方法從bug描述、bug源代碼、bug所屬系統(tǒng)的相關(guān)配置文件出發(fā),將版本修復(fù)問(wèn)題主要分為兩類:修復(fù)程序語(yǔ)言版本和修復(fù)系統(tǒng)中的配置版本這兩個(gè)問(wèn)題。該方法從新的方向--軟件產(chǎn)品中出現(xiàn)的版本不一致問(wèn)題出發(fā),對(duì)這些bug進(jìn)行自動(dòng)修復(fù),減少開發(fā)人員的時(shí)間和精力。
發(fā)明內(nèi)容
本發(fā)明的目的就在于克服上述缺陷,研制一種面向軟件版本一致性缺陷的自動(dòng)修復(fù)方法。
本發(fā)明的技術(shù)方案是:
一種面向版本一致性的自動(dòng)修復(fù)方法,其主要技術(shù)特征在于如下步驟:
(1)對(duì)于一個(gè)與版本相關(guān)的bug,將該bug的描述,源代碼以及包含版本號(hào)說(shuō)明的相關(guān)配置文件作為本發(fā)明的輸入數(shù)據(jù);
(2)分析bug描述,提取關(guān)鍵信息,如配置名、文件名、變量名等,并將提取的關(guān)鍵信息用自然語(yǔ)言處理工具轉(zhuǎn)化成特征向量;
(3)根據(jù)步驟(2)提取的關(guān)鍵信息,在bug的源代碼中進(jìn)行向前切片,再用基于統(tǒng)計(jì)計(jì)算的程序譜故障定位方法對(duì)源代碼進(jìn)行定位。
(4)分析已經(jīng)定位的源代碼上下文,這里分為兩種修復(fù)可能:程序語(yǔ)言版本修復(fù)和配置版本修復(fù);bug所屬的系統(tǒng)的程序語(yǔ)言的版本出錯(cuò),查看輸入數(shù)據(jù)中的相關(guān)配置文件,讀取配置文件,提取關(guān)鍵信息“versionName”對(duì)應(yīng)的版本號(hào),根據(jù)文件中配置的版本號(hào)進(jìn)行修復(fù);bug所屬系統(tǒng)的其他配置版本出錯(cuò):若bug描述中涉及到配置的局部變量在分配前引用,則將該配置變量設(shè)置為null,并修改配置的版本至最新;若bug描述涉及到配置的改進(jìn),則將該配置模塊加載重定向到新版本;
(5)用測(cè)試用例對(duì)修復(fù)結(jié)束的軟件進(jìn)行測(cè)試;若測(cè)試成功,則修復(fù)成功,輸出bug修復(fù)片段;若測(cè)試失敗,則回到步驟(2)重新進(jìn)行修復(fù)。
本發(fā)明的優(yōu)點(diǎn)和效果在于從bug的版本問(wèn)題出發(fā),分析bug的描述和源代碼,將版本問(wèn)題的bug分為兩類:程序語(yǔ)言版本問(wèn)題修復(fù)和系統(tǒng)所屬的配置版本問(wèn)題修復(fù),該方法可有效地提高軟件維護(hù)的效率,減少了成本與人力。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于揚(yáng)州大學(xué),未經(jīng)揚(yáng)州大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710848984.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:一種用于淬火機(jī)的錐齒輪淬火輔助裝置
- 下一篇:一種鍛軋鋼球回火用球筐
- 一種基于應(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)軟件的裝置與方法





