[發(fā)明專利]一種面向版本缺陷的基于修復(fù)模式的修復(fù)推薦方法有效
| 申請?zhí)枺?/td> | 201910071219.3 | 申請日: | 2019-01-25 |
| 公開(公告)號: | CN109918100B | 公開(公告)日: | 2022-05-17 |
| 發(fā)明(設(shè)計)人: | 孫小兵;周威;李斌;張正華 | 申請(專利權(quán))人: | 揚州大學(xué) |
| 主分類號: | G06F8/65 | 分類號: | G06F8/65;G06F8/71;G06F11/36 |
| 代理公司: | 南京理工大學(xué)專利中心 32203 | 代理人: | 馬魯晉 |
| 地址: | 225009*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 版本 缺陷 基于 修復(fù) 模式 推薦 方法 | ||
本發(fā)明公開了一種面向版本缺陷的基于修復(fù)模式的修復(fù)推薦方法,包括步驟:首先提取與版本相關(guān)的已修復(fù)的bug,分析修復(fù)前后的代碼片段,確定bug的錯誤類型和修復(fù)模式;其次確定待推薦修復(fù)的版本bug的錯誤類型;之后計算待推薦修復(fù)的版本bug報告與歷史bug報告的相似度,提取歷史bug報告的修復(fù)模式;然后根據(jù)相似度對修復(fù)模式進(jìn)行排序,并提取修復(fù)模式所需的變量;之后結(jié)合源文件,分別從候選代碼、待推薦修復(fù)的版本bug報告、歷史修復(fù)記錄中提取變量;最后通過匹配提取的變量與修復(fù)模式所需的變量,推薦修復(fù)模式推薦給開發(fā)人員。本發(fā)明的方法通過推薦修復(fù)模式,減少了修復(fù)的時間和成本,提高了開發(fā)人員缺陷修復(fù)的效率,且不受程序語言約束,普適性強。
技術(shù)領(lǐng)域
本發(fā)明屬于軟件缺陷修復(fù)領(lǐng)域,特別是一種面向版本缺陷的基于修復(fù)模式的修復(fù)推薦方法。
背景技術(shù)
隨著科技的逐步發(fā)展,手機,電腦成為人們生活中必不可少的通訊與工作工具。目前,人們的需求不斷地增多,存在于手機、電腦上的軟件的規(guī)模也變得越來越大,軟件的產(chǎn)品結(jié)構(gòu)也隨之變得越來越復(fù)雜,軟件故障也變得越來越普遍和復(fù)雜。作為計算機的靈魂,高可靠和復(fù)雜的系統(tǒng)依賴于軟件的可靠性,軟件故障難以修復(fù),軟件的可靠性就得不到保證。一個未能及時修復(fù)的軟件故障可能導(dǎo)致整個系統(tǒng)的失效、癱瘓,甚至導(dǎo)致災(zāi)難性后果。比如,2005年4月軟件失靈、繼而導(dǎo)航失誤,導(dǎo)致耗資1.1億美元的nasa自主交會任務(wù)dart實驗失敗。美國國家標(biāo)準(zhǔn)與技術(shù)研究所的一項研究表明“軟件故障如此普遍并且危害巨大,每年損失美國經(jīng)濟的595億美元或國民生產(chǎn)總值的0.6%”。最近的一項研究表明,軟件調(diào)試的全球成本是每年3,120億美元,軟件開發(fā)人員將50%的時間花在修復(fù)上。軟件版本bug是在軟件不斷的更新?lián)Q代中產(chǎn)生的,目前很多軟件不斷開發(fā)新版本,很多服務(wù)器都是在以前的接口邏輯上進(jìn)行修改,版本升級后會產(chǎn)生不兼容舊版本的問題,以及很多不同的應(yīng)用需要用到不同的軟件版本,比如空間數(shù)據(jù)處理和算法應(yīng)用需要用到不同的Python版本:Python2和Python3,此時多個版本共存時會產(chǎn)生不兼容的問題。版本bug的直接影響是軟件不能及時的升級和更新,軟件不能在所有設(shè)備上運行,導(dǎo)致用戶無法體驗新的功能,且體驗效果差等。近年來,自動程序修復(fù)已經(jīng)獲得了先進(jìn)性,因為它可以通過自動建議針對給定缺陷的補丁來減少手工調(diào)試工作。事實上,最先進(jìn)的程序修復(fù)系統(tǒng)已經(jīng)被證明能夠解決現(xiàn)實軟件中的缺陷。
自動程序修復(fù)的主要目標(biāo)是修復(fù)有bug的軟件,生成的修復(fù)通常是對展示缺陷的軟件系統(tǒng)進(jìn)行增量修改,以便以自動方式修復(fù)錯誤,并減少手工修復(fù)bug所需的人工勞動。然而,自動生成的補丁的低質(zhì)量仍然是軟件開發(fā)人員在實踐中采用該技術(shù)的一個巨大障礙。自動生成的補丁質(zhì)量低的主要原因是缺少預(yù)期行為的規(guī)范。大多數(shù)程序修復(fù)系統(tǒng)將測試作為正確標(biāo)準(zhǔn),但是測試是一個不完整的規(guī)范,生成的補丁通常與開發(fā)人員的意圖不符。為了增加自動生成補丁的質(zhì)量,研究者提出補丁優(yōu)先級,反模式等技術(shù)。雖然這些技術(shù)增加了正確補丁的概率,但是,這些技術(shù)沒有針對版本缺陷進(jìn)行修復(fù),并且版本缺陷有自己的錯誤類型的同時也有特定的修復(fù)模式。對于版本缺陷,它們并不提供任何正確性保證。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種針對軟件開發(fā)過程中的與版本相關(guān)的bug進(jìn)行修復(fù)推薦的方法,從而減少版本缺陷修復(fù)所需的時間和精力。
實現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種面向版本缺陷的基于修復(fù)模式的修復(fù)推薦方法,包括以下步驟:
步驟1、從bug存儲庫中提取與版本相關(guān)的已修復(fù)的bug,分析對比bug修復(fù)前后的代碼片段,確定bug的錯誤類型和修復(fù)模式;
步驟2、針對待推薦修復(fù)的版本bug對應(yīng)的候選代碼,提取所述候選代碼的變量信息,并將變量信息與錯誤類型進(jìn)行匹配,確定待推薦修復(fù)的版本bug的錯誤類型;
步驟3、求取待推薦修復(fù)的版本bug報告與歷史每個bug報告的相似度,之后對相似度進(jìn)行降序排列,并依次提取前n個相似度對應(yīng)的歷史bug對應(yīng)的修復(fù)模式;
該專利技術(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/201910071219.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





