国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于高斯過程的安全攸關(guān)系統(tǒng)缺陷定位方法

2019-07-08 03:41:08顏培皓路紅
軟件導(dǎo)刊 2019年6期

顏培皓 路紅

摘 要:軟件缺陷定位的有效性和及時性是提升軟件質(zhì)量的關(guān)鍵因素,現(xiàn)有自動缺陷定位方法和手工調(diào)試方法具有一定局限性。為解決這一問題,基于高斯過程的缺陷定位方法和軟件自動修復(fù)對缺陷定位的有效性評估機制,設(shè)計了一種新的面向安全攸關(guān)系統(tǒng)的缺陷定位框架。基于ManyBugs和 IntroClass設(shè)計了軟件缺陷定位測試數(shù)據(jù)集構(gòu)造方法和實驗方案。實驗結(jié)果表明,該設(shè)計方案有效可行。

關(guān)鍵詞:缺陷定位;反調(diào)試;反動態(tài)跟蹤;抗靜態(tài)分析;高斯過程

DOI:10. 11907/rjdk. 191445

中圖分類號:TP309

文獻標(biāo)識碼:A文章編號:1672-7800(2019)006-0200-04

Abstract: The effectiveness and timeliness of software defect location is a key factor in improving software quality. The existing automatic defect location method and manual debugging method have certain limitations in defect location. Based on this, this paper proposes a method based on Gaussian process for security critical software defect location by combining the Gaussian process-based defect location method and the automatic evaluation mechanism for the effectiveness of software automatic repair for defect locatio. It analyzes the basic principles and framework design of the method. Finally, based on ManyBugs and IntroClass, the software defect location test data set construction method and experimental scheme are designed. The results show that the design is effective and feasible.

Key Words: defect location; anti-debugging; anti-dynamic tracking; anti-static analysis; gaussian process

0 引言

軟件可靠性是提高軟件質(zhì)量的關(guān)鍵,軟件維護愈來愈重要[1],其已占整個軟件生命周期的2/3,定位并修復(fù)軟件缺陷是其一項重要工作。因此,能使軟件系統(tǒng)更可靠的自動調(diào)試方法成為研究熱點。軟件缺陷定位作為其中的一種方法,雖然實現(xiàn)困難且成本較高,但隨著軟件規(guī)模和復(fù)雜度的不斷增加,其地位越來越重要[2-4]。因為軟件系統(tǒng)錯誤的原因越早發(fā)現(xiàn)越能及時處理,而且發(fā)現(xiàn)程序錯誤并進行處理的速度越快,系統(tǒng)故障修復(fù)的時間就越少,軟件系統(tǒng)可靠性也能得到提高[5-6]。

在航空航天、武器裝備、醫(yī)療設(shè)備、交通、核能、金融等安全攸關(guān)應(yīng)用領(lǐng)域,軟件系統(tǒng)失效將導(dǎo)致災(zāi)難性的后果[7]。安全攸關(guān)系統(tǒng)(Safety-critical System)指由于不確定條件的發(fā)生或功能缺陷導(dǎo)致人員傷亡、財產(chǎn)損失、環(huán)境破壞的軟件系統(tǒng)。安全攸關(guān)系統(tǒng)開發(fā)越來越多地采用模塊化方式,其軟件和硬件可能來自不同生產(chǎn)廠商,這種開發(fā)方式的轉(zhuǎn)變使安全攸關(guān)系統(tǒng)出現(xiàn)缺陷的概率明顯增加,嚴(yán)重威脅到整個系統(tǒng)運行。

軟件調(diào)試是軟件開發(fā)和維護過程中的一項重要任務(wù),其關(guān)鍵是缺陷語句的定位、理解和修復(fù)[8]。軟件定位是軟件修復(fù)的第一個環(huán)節(jié),也是最困難、最繁瑣、最耗時、成本最昂貴的一項活動。當(dāng)軟件開發(fā)者發(fā)現(xiàn)測試用例執(zhí)行失敗時,傳統(tǒng)的缺陷定位方法是從中選出某一個失敗測試用例,然后依次在不同的可疑語句處設(shè)置程序斷點,采用手工調(diào)試方法執(zhí)行該測試用例并觀察程序斷點處的變量值,直至找到真正的缺陷語句為止。然而,這種采用設(shè)置斷點和手工調(diào)試方法定位缺陷語句的代價高、費時費力,不能充分利用測試用例的執(zhí)行行為和執(zhí)行結(jié)果[9]。

研究人員就自動軟件缺陷定位技術(shù)進行了廣泛的研究并取得一定成果[10]。當(dāng)前軟件工程領(lǐng)域絕大數(shù)自動缺陷定位方法普遍存在依賴測試用例集問題,即利用測試用例集執(zhí)行目標(biāo)程序,根據(jù)程序執(zhí)行過程中收集的信息判斷可能存在缺陷的程序語句。然而,許多新開發(fā)的軟件系統(tǒng)或開源軟件測試用例集較少或不成熟,但這些軟件在開發(fā)和升級過程中積累了一些歷史缺陷信息(缺陷庫)和代碼變化歷史記錄(代碼庫),根據(jù)缺陷庫和代碼更新日志提取缺陷修復(fù)所對應(yīng)修改的源文件,利用缺陷與源文件的鏈接關(guān)系建立缺陷與源文件之間的關(guān)系圖,就把軟件缺陷定位轉(zhuǎn)變?yōu)閷?yīng)缺陷與源文件之間的鏈接預(yù)測問題。在機器學(xué)習(xí)領(lǐng)域,高斯過程(Gaussian process)是解決鏈接預(yù)測問題的有效方法[11-12]。陳理國等 [13]基于高斯過程提出了一種高斯過程缺陷定位方法(Gaussian processes bug localization,簡稱GPBL),用于預(yù)測新產(chǎn)生的缺陷可能發(fā)生在軟件系統(tǒng)的哪些源文件中。

雖然這種軟件缺陷定位方法不需要測試用例集,也不需要收集程序執(zhí)行信息,但其缺陷定位的準(zhǔn)確性與訓(xùn)練數(shù)據(jù)的質(zhì)量關(guān)系較大。如果歷史缺陷信息記錄不規(guī)范、源文件中標(biāo)識符的命名沒有統(tǒng)一規(guī)則,高斯過程缺陷定位方法效果就會受到很大影響。此外,訓(xùn)練數(shù)據(jù)只有達到一定規(guī)模才能保證準(zhǔn)確定位缺陷所在的源文件。由于一個源文件可能包含數(shù)百條語句,僅指出缺陷所在源文件信息并不能定位缺陷可能存在的具體程序語句,這對幫助程序開發(fā)者準(zhǔn)確定位缺陷語句、調(diào)試和修復(fù)程序意義并不大。

当雄县| 新宾| 定远县| 双辽市| 城口县| 肥城市| 临安市| 松溪县| 黄平县| 临江市| 阳西县| 长顺县| 安平县| 扎囊县| 申扎县| 西安市| 泸定县| 平远县| 靖安县| 泗水县| 铁岭市| 滦南县| 旬阳县| 盐城市| 探索| 白水县| 綦江县| 太仓市| 景东| 天等县| 新民市| 梧州市| 札达县| 馆陶县| 兴业县| 东乡族自治县| 米林县| 马关县| 临湘市| 海宁市| 阿拉善盟|