亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種三維曲面表示的軟件錯誤定位方法

文檔序號:6536708閱讀:196來源:國知局
一種三維曲面表示的軟件錯誤定位方法
【專利摘要】本發(fā)明涉及一種三維曲面表示的軟件錯誤定位方法,屬于軟件測試領(lǐng)域,步驟包括:提取訓練程序集中各版本的錯誤語句的運行特征,選擇某種可疑度函數(shù),計算錯誤語句的可疑度,并進行聚類,獲取該聚類的中心,每個聚類中心的特征就代表了一種錯誤模式;將這些聚類中心擬合成三維曲面,該三維曲面函數(shù)就是經(jīng)過校正和優(yōu)化后的可疑度函數(shù);運行測試集中的程序,根據(jù)測試集中程序的每條語句的運行特征,計算每條語句的可疑度,根據(jù)可疑值從大到小對語句進行排序,根據(jù)此順序?qū)Τ绦蛘Z句逐條排查,對程序語句逐條排查,定位程序中的錯誤。本發(fā)明根據(jù)這些錯誤模式來校正和優(yōu)化可疑度函數(shù),使可疑函數(shù)更加符合實際的情況,提高了錯誤定位的準確度。
【專利說明】一種三維曲面表示的軟件錯誤定位方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于軟件測試【技術(shù)領(lǐng)域】,主要涉及軟件調(diào)試范疇的“統(tǒng)計錯誤定位方法”。本發(fā)明采用三維曲面表示對錯誤定位的可疑度函數(shù)的性質(zhì)進行可視化并假以分析,利用軟件開發(fā)工作中的真實錯誤模式對可疑度函數(shù)進行校正和優(yōu)化。
【背景技術(shù)】
[0002]軟件在日常生活中的應用越來越廣泛。隨著軟件功能和架構(gòu)的復雜化,想要在軟件產(chǎn)品中徹底避免軟件錯誤的出現(xiàn),仍然是很困難的。軟件錯誤,即導致軟件實際運行的結(jié)果和預期的運行結(jié)果不相符的那些因素,這些錯誤的存在,導致軟件相應的功能喪失。軟件測試是用于發(fā)現(xiàn)和修改軟件錯誤的常用手段,是一項十分重要但又代價很大的工程,它通常包括三個步驟:錯誤的定位、錯誤的修復和對修改后的代碼的再測試。其中,錯誤的定位是最為重要也是最為費時和費力的過程。
[0003]語句級別的“統(tǒng)計錯誤定位方法”通過收集每條語句在程序執(zhí)行失敗或成功時的運行信息來分析和評估該語句存在錯誤的可疑程度。舉例來說,若某條語句總是在失敗的程序執(zhí)行中被運行,而從未在成功的程序執(zhí)行中被運行過,那么,它很可能是和軟件錯誤相關(guān)的。在此類“統(tǒng)計錯誤定位方法”中,通常采用可疑度函數(shù)來評估語句存在錯誤的可能性。
[0004]在進行錯誤定位時,首先需要多次執(zhí)行程序,統(tǒng)計程序執(zhí)行失敗的次數(shù)m和語句Si的運行次數(shù)failed(Si),以及程序執(zhí)行成功的次數(shù)i和語句Si的運行次數(shù)passed(Si);然后根據(jù)可疑度函數(shù)來評估每條語句存在錯誤的可能性,按照可疑值從大到小對語句進行排序;最后根據(jù)這個排序來逐個查找程序中的錯誤。對于目前的大部分可疑度函數(shù)(如
Tarantula、Jaccard、Ochia1、SBI)而言,一條語句Si的可疑度Rt (Si)只與兩個變量有關(guān)-
該語句在失敗的程序執(zhí)行中運行的次數(shù)failed(Si)和該語句在成功的程序執(zhí)行中運行的次數(shù) passed (Si)。
[0005]然而,單純地利用failed(Si)和passed(Si)來評估語句可疑度的方法與實際情況相差甚遠。在實際編程時,錯誤并不是隨機地、毫無規(guī)律地出現(xiàn),而是呈現(xiàn)出某種模式:某些程序結(jié)構(gòu)可能會頻繁地出現(xiàn)錯誤,而另外一些程序結(jié)構(gòu)可能很少出現(xiàn)錯誤。例如,對C語言的研究表明,有22.8%的錯誤出現(xiàn)在函數(shù)入口處或賦值語句上,相反,只有7.8%的錯誤出現(xiàn)在函數(shù)出口處或返回語句上,最終結(jié)果使軟件錯誤定位準確度不高。

【發(fā)明內(nèi)容】

[0006]本發(fā)明技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種三維曲面表示的軟件錯誤定位方法,采用三維曲面對錯誤定位技術(shù)的可疑度函數(shù)進行可視化分析,利用錯誤模式對三維曲面進行校正和優(yōu)化,使得可疑度函數(shù)更符合實際情況,從而提高錯誤定位技術(shù)的準確度。本發(fā)明技術(shù)解決方案:一種三維曲面表示的軟件錯誤定位方法,實現(xiàn)步驟如下:
[0007](I)提取訓練集中各程序的錯誤語句的運行特征,選擇某種可疑度函數(shù),計算錯誤語句的可疑度,然后對這些錯誤語句進行聚類;所述錯誤語句的運行特征包括該錯誤語句在失敗的程序執(zhí)行中運行的次數(shù)和在成功的程序執(zhí)行中運行的次數(shù);
[0008](2)根據(jù)每個聚類中錯誤語句的運行特征和相應的可疑度值,對每個聚類進行中心化,獲取該聚類的中心,以獲取每個聚類的某種特性,每個聚類中心的特征就代表了一種錯誤模式;
[0009](3)將所述聚類中心擬合成三維曲面,該三維曲面函數(shù)就是經(jīng)過校正和優(yōu)化后的可疑度函數(shù);
[0010](4)運行測試集中的程序,根據(jù)所述程序的執(zhí)行信息,利用所述經(jīng)過校正和優(yōu)化后的可疑度函數(shù)計算程序中各語句的可疑度,按照可疑度值的大小對各語句進行排序,得到可疑度排位表,根據(jù)可疑度排位表,對程序語句逐條排查,定位程序中的錯誤;所述執(zhí)行信息包括程序執(zhí)行成功與否,以及程序每條語句分別在成功的程序執(zhí)行中的運行次數(shù)和在失敗的程序執(zhí)行中的運行次數(shù)。
[0011]所述步驟(I)選擇可疑度函數(shù)采用Tarantula, Jaccard, Ochiai或SBI函數(shù)計算所述錯誤語句的可疑度。
[0012]所述步驟(I)中的聚類方法采用KNN算法或K-means算法。
[0013]所述步驟(2)根據(jù)錯誤語句在失敗的程序中運行的次數(shù),在成功的程序中運行的次數(shù)以及該錯誤語句的可疑度值,分別求取它們的均值來對聚類進行中心化。
[0014]所述步驟(3)采用樣條插值方法或?qū)⑦@些聚類中心擬合成三維曲面。
[0015]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:本發(fā)明不僅利用語句的運行特征來評估程序各條語句的可疑度,還考慮了實際編程中程序出錯的各種錯誤模式,根據(jù)這些錯誤模式來校正和優(yōu)化可疑度函數(shù),以至于可疑函數(shù)更加符合實際的情況,從而提高了錯誤定位的準確度。
【專利附圖】

【附圖說明】
[0016]圖1為本發(fā)明方法的實現(xiàn)流程圖;
[0017]圖2為幾種可疑度函數(shù)的三維曲面,其中(a)為Tarantula可疑度函數(shù),(b)為Jaccard可疑度函數(shù),(C)為Ochiai可疑度函數(shù),(d)為SBI可疑度函數(shù);
[0018]圖3為幾種方法的實驗效果對比。
【具體實施方式】
[0019]如圖1所示,本發(fā)明具體實現(xiàn)步驟如下:
[0020]1.訓練
[0021](I)運行程序代碼,記錄程序的執(zhí)行信息m和m',以及訓練集中各條錯誤語句的運行信息 failed(Si) passed(Si);
[0022](2)采用某種可疑函數(shù)Tx,計算每條錯誤語句的可疑度
[0023](3)采用某種聚類方法(如KNN)對二維點集Kfailed(Si), passed(Si))}進行聚類(每個聚類代表一種錯誤模式);
[0024](4)每個聚類用一個中心點表示,如第k個聚類Ck的中心點為:
【權(quán)利要求】
1.一種三維曲面表示的軟件錯誤定位方法,其特征在于實現(xiàn)步驟如下: (1)提取訓練集中各程序的錯誤語句的運行特征,選擇某種可疑度函數(shù),計算錯誤語句的可疑度,然后對這些錯誤語句進行聚類;所述錯誤語句的運行特征包括該錯誤語句在失敗的程序執(zhí)行中運行的次數(shù)和在成功的程序執(zhí)行中運行的次數(shù); (2)根據(jù)每個聚類中錯誤語句的運行特征和相應的可疑度值,對每個聚類進行中心化,獲取該聚類的中心,以獲取每個聚類的某種特性,每個聚類中心的特征就代表了一種錯誤模式; (3)將所述聚類中心擬合成三維曲面,該三維曲面函數(shù)就是經(jīng)過校正和優(yōu)化后的可疑度函數(shù); (4)運行測試集中的程序,根據(jù)所述程序的執(zhí)行信息,利用所述經(jīng)過校正和優(yōu)化后的可疑度函數(shù)計算程序中各語句的可疑度,按照可疑度值的大小對各語句進行排序,得到可疑度排位表,根據(jù)可疑度排位表,對程序語句逐條排查,定位程序中的錯誤;所述執(zhí)行信息包括程序執(zhí)行成功與否,以及程序每條語句分別在成功的程序執(zhí)行中的運行次數(shù)和在失敗的程序執(zhí)行中的運行次數(shù)。
2.根據(jù)權(quán)利要求1所述的三維曲面表示的軟件錯誤定位方法,其特征在于:所述步驟(I)選擇可疑度函數(shù)采用Tarantula, Jaccard, Ochiai或SBI函數(shù)計算所述錯誤語句的可疑度。
3.根據(jù)權(quán)利要求1所述的三維曲面表示的軟件錯誤定位方法,其特征在于:所述步驟(1)中的聚類方法采用KNN算法或K-means算法。
4.根據(jù)權(quán)利要求1所述的三維曲面表示的軟件錯誤定位方法,其特征在于:所述步驟(2)根據(jù)錯誤語句在失敗的程序中運行的次數(shù),在成功的程序中運行的次數(shù)以及該錯誤語句的可疑度值,分別求取它們的均值來對聚類進行中心化。
5.根據(jù)權(quán)利要求1所述的三維曲面表示的軟件錯誤定位方法,其特征在于:所述步驟(3)采用樣條插值方法或?qū)⑦@些聚類中心擬合成三維曲面。
【文檔編號】G06F11/36GK103744789SQ201410033461
【公開日】2014年4月23日 申請日期:2014年1月23日 優(yōu)先權(quán)日:2014年1月23日
【發(fā)明者】張震宇, 石瓊, 李恒 申請人:中國科學院軟件研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1