基于輸入?yún)?shù)特征譜的軟件缺陷定位方法
【專利摘要】本發(fā)明涉及一種基于輸入?yún)?shù)特征譜的軟件缺陷定位方法,基于程序輸入?yún)?shù)特征譜的軟件缺陷定位方法。使用了程序輸入?yún)?shù)特征譜和執(zhí)行切片信息進行軟件缺陷定位。對程序參數(shù)特征譜進行分析時,為了得到更加精確的結果,將每個參數(shù)域劃分為多個子域進行統(tǒng)計分析。執(zhí)行切片信息主要用來構建程序執(zhí)行依賴圖,這是對傳統(tǒng)SBFL方法的有效補充。本方法與已有的缺陷定位方法相比,可以有效提高缺陷定位的準確性至少10%以上。此外,該方法給缺陷修復者提供可疑語句的同時,提供了導致該語句可疑的參數(shù)和可疑區(qū)間,這些信息非常有助于缺陷的快速修復。
【專利說明】基于輸入?yún)?shù)特征譜的軟件缺陷定位方法
【技術領域】
[0001]本發(fā)明屬于軟件工程【技術領域】中的軟件缺陷定位技術,特別涉及一種基于輸入?yún)?shù)特征譜的軟件缺陷定位方法。
【背景技術】
[0002]隨著信息技術的飛速發(fā)展,計算機軟件已經(jīng)滲透到社會的各個領域,為了確保軟件質(zhì)量,實施大量的軟件測試是軟件開發(fā)中重要的步驟。測試中常常需要對所發(fā)現(xiàn)的軟件缺陷進行定位,傳統(tǒng)的軟件缺陷定位通常都是設置斷點、重新執(zhí)行錯誤代碼,檢查程序狀態(tài)的變化,這樣不斷迭代縮小查錯的范圍,直至識別出可疑的程序?qū)嶓w。由于該過程需要耗費大量的資源,因此軟件缺陷定位被視為軟件測試中最昂貴和最耗時的工作之一,見文獻 J.A.Jones and M.J.HarroId.Empirical evaluation of the tarantula automaticfault-localization technique.1n20th IEEE/ACM International Conference onAutomated Software Engineering, ASE2005, pp.273 - 282.。如何提高缺陷定位的效率和準確度成為一個重要的問題,研究人員已經(jīng)提出了多種自動化的錯誤定位技術以解決該問題?,F(xiàn)有的自動化軟件錯誤定位方法可分為七類,見文獻W.E.Wong and V.Debroy.Asurvey of software fault localization.Technical report,The University of Texasat Dallas, 2009.,其中基于切片和基于程序特征譜的方法是兩種最廣泛應用的方法。
[0003]切片技術是最早提出的一種缺陷定位技術。假設給定一個程序P,一個可疑語句s以及其中的一個變量V,切片就是影響s中的V值的語句集合,也就是切片會去除與V值無關的部分,這樣可以縮小可疑程序?qū)嶓w的搜索空間。切片技術可以分為靜態(tài)切片、動態(tài)切片以及執(zhí)行切片。由于動態(tài)切片與具體的軟件錯誤執(zhí)行關系密切,大部分研究人員主要關注動態(tài)切片,但收集動態(tài)切片需要更多的時間和相關文件。對于一個給定測試用例,執(zhí)行切片即是將執(zhí)行測試用例時所經(jīng)過的各種覆蓋信息轉(zhuǎn)化成另一種格式的信息。由于執(zhí)行切片信息的易獲取性,文獻 H.Agrawal, J.R.Horgan, S.London, and ff.E.Wong.Faultlocalization using execution slices and dataflow tests.Proceedings of the6thInternational Symposium on Software Reliability Engineering, ISSRE1995, pagesl43-151,文萬志,李必信,孫小兵,齊珊珊.基于條件執(zhí)行切片譜的多錯誤定位.計算機研究與發(fā)展,2013,50 (5):1030 - 1043.的研究中都使用執(zhí)行切片代替了動態(tài)切片。然而,切片通常都比較大,其所包含的噪聲信息可能會降低缺陷直接相關的信息的重要度。文獻文萬志,李必信,孫小兵,齊珊珊.基于條件執(zhí)行切片譜的多錯誤定位.計算機研究與發(fā)展,2013,50(5):1030 - 1043.,W.Z.Wen.Software fault localization based on programslicing spectrum.1n 201234th International Conference on Software Engineering,ICSE2012,pagesl511 - 1514.中將切片技術與其他缺陷定位技術相結合(如程序特征譜定位),取得了較好的定位效果。
[0004]程序特征譜,也被稱為程序光譜/程序行為特征,是程序執(zhí)行特征的統(tǒng)計信息,例如語句覆蓋、定義使用對覆蓋、控制覆蓋等信息?;诔绦蛱卣髯V的缺陷定位方法(Spectrum-Based Fault Localization,SBFL),通常假設失敗的測試執(zhí)行會表現(xiàn)出異常的程序行為特征,所以成功執(zhí)行和失敗執(zhí)行中的行為特征的差異可以用于指導缺陷定位。Jones 等人在文獻 J.A.Jones, M.J.Harroldj and J.Stask0.Visualization of testinformation to assist fault localization.1n24th International Conference onSoftware Engineering, ICSE2002,pages467 - 477.中作了大量的實驗,結果表明程序出現(xiàn)異常的行為特征未必意味著代碼中存在故障,但是錯誤的程序運行往往會表現(xiàn)出異常的行為特征。在SBFL中,可疑度計算公式是判定某程序?qū)嶓w是否可疑的重要依據(jù)。目前已有超過三十種不同的SBFL中的可疑度計算公式,例如Tarantula,Ochiaij Wong等,見文獻:1、J.A.Jones, M.J.Harroldj and J.Stask0.Visualization of test informationto assist fault localization.1n24th International Conference on Software Engineering,ICSE2002,pages467 - 477.,2、R.Abreuj P.Zoetewei j,and A.J.C.Van Gemund.An evaluation of similarity coefficients for software fault localization.1nl2th Pacific Rim International Symposium on Dependable Computing, PRDC2006,pages39 - 46,2006.3、W.E.Wong and Y.Q1.Effective program debugging basedon execution slices and inter-block data dependency.Journal of Systems andSoftware, 79(7):891 - 903,2006。Xie等人用理論證明和實驗驗證了這些可疑度計算公式,結果表明對于程序中僅有一個缺陷的情況下,有五種方法效果比較好,并將它們分為兩個等價組:ER1 (Naishl, Naish2)和 ER5 (Wongl, Russell&Rao, and Binary),見文獻 X.Y.Xie,Τ.Y.Chen,F(xiàn).C.Kuo,and B.W.Xu.A theoretical analysis of the riskevaluation formulas for spectrum-based fault localization.Acm Transactionson Software Engineering and Methodology, 22(4):40, 2013.:。Naish 等人在文獻 L.Naishj H.J.Lee, and K.Ramamohanara0.A model for spectra-based softwarediagnosis.Acm Transactions on Software Engineering and Methodology,20(3),2011中的實驗中發(fā)現(xiàn)ERl組方法平均優(yōu)于ER2組方法。不同的程序特征譜包括可以用于定位不同類型的錯誤,也有研究[11,12]將多種不同特征譜進行不同策略的組合后用于缺陷定位取得較好的定位效果,見文獻 1、R.Santelicesj J.A.Jonesj Y.Yuj and M.J.HarroId.Lightweight fault-localization using multiple coverage types.1n200931stInternational Conference on Software Engineering,ICSE2009,pages56 - 66.1EEEComputer Society.;2、K.Yu,M.Lin,Q.Gao,H.Zhang,and X.Zhang.Locating faults usingmultiple spectra—specific models.1n26th Annual ACM Symposium on Applied Computing,SAC2011,pagesl404 - 1410.。
[0005]現(xiàn)有的基于程序特征譜的缺陷定位方法有效提高了定位的效率和準確度,然而我們發(fā)現(xiàn)測試用例作為SBFL方法的重要輸入信息之一,其所包含的數(shù)據(jù)中還蘊藏著很多對軟件缺陷定位有價值的知識。傳統(tǒng)SBFL方法沒有充分考慮程序本身固有的依賴信息,從而使錯誤定位的精度受限。因此,將測試用例數(shù)據(jù)的特征譜分析結果與執(zhí)行切片信息進行結合,將會有效提高缺陷定位的準確性。
【發(fā)明內(nèi)容】
[0006]要解決的技術問題[0007]為了避免現(xiàn)有技術的不足之處,本發(fā)明提出一種基于輸入?yún)?shù)特征譜的軟件缺陷定位方法,充分利用程序輸入?yún)?shù)信息提高缺陷定位的準確性。
[0008]技術方案
[0009]一種基于輸入?yún)?shù)特征譜的軟件缺陷定位方法,其特征在于步驟如下:
[0010]步驟1:將每一個數(shù)值型參數(shù)的域進行區(qū)間離散化,將其劃分為多個子域;所述數(shù)值型參數(shù)包括每個值本身就是一個子域的離散型數(shù)值,以及連續(xù)性數(shù)值;
[0011]所述連續(xù)性數(shù)值的區(qū)間離散化,以下述公式計算出每個子域的步長Steplength以及每個子域i的取值區(qū)間,得到若干個子域,
[0012]
【權利要求】
1.一種基于輸入?yún)?shù)特征譜的軟件缺陷定位方法,其特征在于步驟如下: 步驟1:將每一個數(shù)值型參數(shù)的域進行區(qū)間離散化,將其劃分為多個子域;所述數(shù)值型參數(shù)包括每個值本身就是一個子域的離散型數(shù)值,以及連續(xù)性數(shù)值; 所述連續(xù)性數(shù)值的區(qū)間離散化,以下述公式計算出每個子域的步長Steplength以及每個子域i的取值區(qū)間,得到若干個子域,
【文檔編號】G06F11/36GK103914386SQ201410161786
【公開日】2014年7月9日 申請日期:2014年4月21日 優(yōu)先權日:2014年4月21日
【發(fā)明者】王瑞, 田宇立, 李寧, 張延園, 李戰(zhàn)懷 申請人:西北工業(yè)大學