付文豪, 虞慧群, 范貴生
(華東理工大學(xué)計(jì)算機(jī)科學(xué)與工程系,上海 200237)
?
一種提高錯(cuò)誤定位效率的測(cè)試用例選擇方法
付文豪,虞慧群,范貴生
(華東理工大學(xué)計(jì)算機(jī)科學(xué)與工程系,上海 200237)
為提高錯(cuò)誤定位的效率,提出了多種測(cè)試用例約簡與選擇的方法,然而,過度的約簡與不適的選擇造成了部分測(cè)試信息丟失,引起了錯(cuò)誤定位有效性的損失。本文提出了一種相似測(cè)試用例選擇方法,用以約簡測(cè)試集。該方法能消除偶然測(cè)試用例對(duì)錯(cuò)誤定位準(zhǔn)確性造成的偏差,通過為每個(gè)失敗測(cè)試用例選擇執(zhí)行軌跡與其相似的成功測(cè)試用例的方式,最大限度地保留測(cè)試的全部信息;基于選擇出的測(cè)試用例信息,利用已有的錯(cuò)誤定位方法輸出程序語句的可疑值列表。以Siemens程序集作為實(shí)驗(yàn)對(duì)象,證明了本文測(cè)試用例選擇方法能顯著提高錯(cuò)誤定位的有效性。
調(diào)試; 錯(cuò)誤定位; 測(cè)試用例選擇; 相似測(cè)試用例
為了節(jié)省軟件調(diào)試的開銷,研究人員提出了許多軟件錯(cuò)誤自動(dòng)定位的方法。這些方法利用軟件測(cè)試過程的測(cè)試用例產(chǎn)生的結(jié)果和執(zhí)行信息,分析程序的異常并提供一組程序的可疑代碼供開發(fā)人員進(jìn)一步檢測(cè),以便快速發(fā)現(xiàn)軟件的缺陷。然而定位中所使用的測(cè)試用例及其執(zhí)行信息直接影響了此類方法的有效性,因此如何選擇合適的測(cè)試用例集合成為錯(cuò)誤定位的一個(gè)關(guān)鍵問題。為了減少錯(cuò)誤定位的開銷并達(dá)到更好的錯(cuò)誤定位效率,研究人員提出了多種測(cè)試用例約簡的方法,并進(jìn)一步研究了測(cè)試用例約簡與錯(cuò)誤定位有效性之間的關(guān)系。
Abreu等[1]研究了錯(cuò)誤定位的效率與選擇的測(cè)試用例數(shù)量之間的關(guān)系。Baudry等[2]驗(yàn)證了測(cè)試用例集的改變可以提高錯(cuò)誤定位的準(zhǔn)確性。Graves等[3]對(duì)多種測(cè)試用例選擇方法進(jìn)行了實(shí)驗(yàn)研究,并分析了它們的開銷與提高的效率。Harrold等[4]提出了一個(gè)減少測(cè)試用例規(guī)模的啟發(fā)式的算法HGS。Chen等[5]進(jìn)一步規(guī)范了測(cè)試用例的約簡問題并提出了兩個(gè)啟發(fā)式的約簡算法。Hao等[6]假設(shè)相似的或冗余的測(cè)試用例會(huì)降低錯(cuò)誤定位的有效性,并基于已有的錯(cuò)誤定位方法,提出了3種測(cè)試用例約簡的策略。Hsu等[7]提出了一個(gè)測(cè)試集最小化框架,這個(gè)框架允許測(cè)試人員處理涉及多種測(cè)試準(zhǔn)則的問題,并基于線性規(guī)劃計(jì)算出一個(gè)最優(yōu)的解決方案。而Yu等[9]基于4種覆蓋分析方法,通過一系列的實(shí)驗(yàn),進(jìn)一步研究了測(cè)試用例約簡方法對(duì)錯(cuò)誤定位有效性的影響。
不同于已有的測(cè)試用例選擇或約簡的方法,本文單獨(dú)考慮失敗測(cè)試用例集中的每種可能的執(zhí)行軌跡,從成功測(cè)試用例集中選取執(zhí)行軌跡與失敗測(cè)試用例相似的測(cè)試用例,約簡那些執(zhí)行軌跡與相應(yīng)的失敗測(cè)試用例執(zhí)行軌跡具有較大差異的測(cè)試用例,利用選擇出的測(cè)試用例集和現(xiàn)有的錯(cuò)誤定位的方法,計(jì)算程序中代碼的可疑度值,并產(chǎn)生一個(gè)供開發(fā)人員檢測(cè)的代碼序列。以西門子程序集為實(shí)驗(yàn)對(duì)象進(jìn)行了研究,結(jié)果表明,該方法能顯著地提高錯(cuò)誤定位的有效性,同時(shí)發(fā)現(xiàn),錯(cuò)誤定位的有效性會(huì)隨著相似比例的變化呈現(xiàn)規(guī)律性地變化。
1.1基于語句的相似測(cè)試用例選擇方法框架
相似測(cè)試用例選擇的主要目標(biāo)是為每個(gè)失敗測(cè)試用例單獨(dú)地挑選與其相似的成功用例,然后利用現(xiàn)有的錯(cuò)誤定位方法計(jì)算每條語句的可疑度值。該方法基于兩個(gè)思路:
(1) 對(duì)于單個(gè)錯(cuò)誤的程序而言,每一個(gè)失敗的測(cè)試用例均執(zhí)行了錯(cuò)誤語句;
(2) 與失敗測(cè)試用例的執(zhí)行軌跡相似的成功測(cè)試用例,其對(duì)錯(cuò)誤的貢獻(xiàn)最大。
這是因?yàn)橄嗨频某晒y(cè)試用例的執(zhí)行軌跡僅在某些代碼部分與失敗測(cè)試用例存在差異,且若這些差異語句僅被包含在失敗測(cè)試用例的執(zhí)行軌跡中,那么這些語句出錯(cuò)的可能性更高。為每個(gè)失敗的測(cè)試用例選擇與其執(zhí)行軌跡相似的成功測(cè)試用例,最終構(gòu)成該失敗測(cè)試用例的相似測(cè)試用例集,用這個(gè)相似測(cè)試集可以更準(zhǔn)確地確定出錯(cuò)語句。
圖1示出了測(cè)試用例選擇方法的基本框架。該框架包括3個(gè)階段:測(cè)試用例約簡階段、相似測(cè)試用例選擇階段和語句排序計(jì)算階段。整個(gè)方法的輸入包含一個(gè)單個(gè)錯(cuò)誤的程序以及一組測(cè)試套件,使用程序的執(zhí)行結(jié)果和執(zhí)行過程中收集的語句覆蓋信息,利用現(xiàn)有的錯(cuò)誤定位的方法,輸出程序中所有可執(zhí)行語句的可疑度列表。在測(cè)試用例約簡階段,通過提取程序中的高可疑語句,排除了測(cè)試集中的偶然成功測(cè)試用例。在測(cè)試用例選擇階段,一個(gè)測(cè)試用例被選擇,當(dāng)且僅當(dāng)其執(zhí)行軌跡與對(duì)應(yīng)的失敗測(cè)試用例的軌跡相似度達(dá)到一定值時(shí),每一個(gè)失敗測(cè)試用例的相似測(cè)試用例集被選擇并產(chǎn)生。在語句排序計(jì)算階段,語句的最終可疑度值通過給定的錯(cuò)誤定位方法與每一個(gè)相似測(cè)試用例集中的頻譜信息計(jì)算得出。
1.2測(cè)試用例約簡
測(cè)試用例約簡階段的主要目的是將一部分偶然成功測(cè)試用例從原有的成功測(cè)試集中刪除,得到一個(gè)優(yōu)化的新成功測(cè)試用例集。對(duì)于單個(gè)錯(cuò)誤的程序而言,成功測(cè)試用例中也可能執(zhí)行了錯(cuò)誤語句,這類成功測(cè)試用例被歸為偶然成功測(cè)試用例。偶然成功測(cè)試用例是指那些執(zhí)行了錯(cuò)誤語句但卻得到正確結(jié)果的測(cè)試用例。由于本文方法利用失敗測(cè)試用例與成功測(cè)試用例之間的軌跡差異來指導(dǎo)錯(cuò)誤定位,若選擇了偶然成功測(cè)試用例,那么它的執(zhí)行軌跡將使得某些語句的頻譜發(fā)生變化,最終必然會(huì)影響語句的可疑度值排序,直接影響錯(cuò)誤定位的準(zhǔn)確性,因此消除這類成功測(cè)試用例是該方法中一個(gè)重要的階段。在包含單個(gè)錯(cuò)誤的程序中,每個(gè)失敗測(cè)試用例必然包含了錯(cuò)誤語句,因此,被所有失敗測(cè)試用例執(zhí)行過的語句必然具有較高出錯(cuò)的可能性,定義為高可疑語句(HSS)。由于程序錯(cuò)誤語句未知,偶然成功測(cè)試用例無法完全確定,但可以肯定的是,包含所有HSS的成功測(cè)試用例必然為偶然成功測(cè)試用例。
根據(jù)測(cè)試用例的執(zhí)行結(jié)果,原有的測(cè)試套件可以分為失敗測(cè)試集合FT={f1,f2,…,fx}和成功測(cè)試集合PT= {p1,p2,…,py},測(cè)試用例t的執(zhí)行軌跡可以表示為et(t)={s1,s2,…,sn},其中n表示程序P中可執(zhí)行語句的數(shù)目。
(1)
如前所述,由于錯(cuò)誤語句是未知的,所以我們定義包含所有高可疑語句(HSS)的成功測(cè)試用例為偶然成功測(cè)試用例。因此需要從所有失敗測(cè)試用例中提取出HHS。如果語句被所有失敗測(cè)試用例覆蓋,即在所有失敗測(cè)試用例的執(zhí)行軌跡et中,si=1或si=0 (1≤i≤n)分別表示語句為高可疑語句或普通語句,那么高可疑語句可以表示為
圖1 基于語句的測(cè)試用例選擇方法Fig.1 Statement-based test suite selection approach
(2)
在確定高可疑語句之后,需逐一檢測(cè)PT中的偶然成功測(cè)試用例。依據(jù)之前的定義,若HSS ?et(pj) (1 ≤j≤y),即意味著測(cè)試用例pj的執(zhí)行軌跡中包含了所有的高可疑語句,那么測(cè)試用例pj被認(rèn)為是偶然成功測(cè)試用例,需從原PT中將其刪除。遍歷PT中的所有測(cè)試用例,直到將所有此類偶然成功測(cè)試用例刪除,得到新的成功測(cè)試集NPT。
1.3測(cè)試用例選擇
測(cè)試用例選擇階段的主要目標(biāo)是為每個(gè)失敗測(cè)試用例選擇與其執(zhí)行軌跡最為相近的成功測(cè)試用例,得到僅包含該失敗測(cè)試用例和若干成功測(cè)試用例的相似用例集。定義一個(gè)相似比例(Similar Proportion,SP)作為選擇的標(biāo)準(zhǔn)。相似比例表示了兩個(gè)測(cè)試用例共同執(zhí)行的語句占待檢測(cè)語句的比例。給定兩個(gè)測(cè)試用例f和p,其執(zhí)行軌跡分別為et(f)= {a1,a2,…,an} 和et(p) = {b1,b2,…,bm},定義E={e1,e2,…,en}為一個(gè)一維數(shù)組,對(duì)于ek∈E,
(3)
(4)
在測(cè)試用例選擇階段,給定一個(gè)失敗用例,當(dāng)且僅當(dāng)成功測(cè)試用例與其相似比例滿足SP(pj|fi) ≥θ(1≤j≤y,1≤l≤x)時(shí),該成功測(cè)試用例才能被選擇。θ為給定閾值,表示了選擇標(biāo)準(zhǔn)需達(dá)到的最小值,θ在0與1之間。根據(jù)式(4)的要求,最終得到每個(gè)失敗測(cè)試用例的相似測(cè)試用例集。在相似測(cè)試用例集中僅包含一個(gè)失敗測(cè)試用例和若干個(gè)與該失敗測(cè)試用例執(zhí)行軌跡相似的成功測(cè)試用例。
1.4語句排序
語句排序階段的主要目標(biāo)是利用現(xiàn)有的錯(cuò)誤定位技術(shù)(如Tarantula[10]方法等)與選擇產(chǎn)生的相似測(cè)試集,計(jì)算得出每條語句的最終可疑值,并按照從高到底的順序輸出。該階段主要分為兩個(gè)部分:可疑值分組計(jì)算和組合調(diào)整。在計(jì)算語句可疑值時(shí),應(yīng)利用每個(gè)相似測(cè)試集中的語句頻譜信息,計(jì)算出語句的可疑值,最終,對(duì)所有組計(jì)算的結(jié)果進(jìn)行調(diào)整,得到語句最終的可疑值。
以Tarantula 方法為例,各組中語句的可疑值計(jì)算見式(5)。
(5)
其中:suspi(s)表示語句s由測(cè)試用例fi與其相似測(cè)試集計(jì)算得出的可疑度值;tp(s)表示相似測(cè)試集中覆蓋了語句s的成功測(cè)試用例數(shù)量;tp表示該相似測(cè)試集中的成功測(cè)試用例總數(shù)量。
根據(jù)式(5)計(jì)算出程序語句在每個(gè)相似測(cè)試集中的可疑度值,對(duì)各組中的語句可疑度值進(jìn)行統(tǒng)計(jì)分析,得到語句的最終可疑度值,見式(6)。
(6)
其中:score(s)表示語句s最終的可疑度值;x表示失敗測(cè)試用例的數(shù)量,即相似測(cè)試集的數(shù)量?;谒姓Z句的最終可疑度值,本文方法最終提供了程序語句的可疑度值的排序列表。
2.1評(píng)測(cè)標(biāo)準(zhǔn)
錯(cuò)誤定位的有效性可以定義為當(dāng)檢測(cè)到錯(cuò)誤語句時(shí),已檢測(cè)的語句(或未被檢測(cè)的語句)占待檢測(cè)的總語句的百分比,這個(gè)標(biāo)準(zhǔn)被定義為Expense。但為了進(jìn)一步驗(yàn)證測(cè)試用例選擇方法對(duì)錯(cuò)誤定位有效性的影響,本文定義了一個(gè)評(píng)價(jià)標(biāo)準(zhǔn)ExpenseDecrease。
ExpenseDecrease=
(7)
ExpenseDecrease表示錯(cuò)誤定位方法在應(yīng)用原有測(cè)試用例與選擇出的測(cè)試用例上的效率的差值,若ExpenseDecrease的值為正,表明測(cè)試用例選擇的方法提高了錯(cuò)誤定位的效率; 若為負(fù)值,則表明該方法使得錯(cuò)誤定位的效率降低。使用ExpenseDecrease衡量測(cè)試用例選擇方法對(duì)錯(cuò)誤定位有效性的影響,可以規(guī)范不同規(guī)模程序的錯(cuò)誤定位有效性的判定。
2.2實(shí)驗(yàn)結(jié)果與分析
為了評(píng)估測(cè)試用例選擇方法對(duì)錯(cuò)誤定位有效性的影響,本文設(shè)計(jì)并實(shí)施了一系列實(shí)驗(yàn)來解決以下兩個(gè)問題:
(1) 相似測(cè)試用例選擇的方法是否能提高錯(cuò)誤定位的有效性?
(2) 在實(shí)驗(yàn)中,測(cè)試用例選擇的標(biāo)準(zhǔn)θ值的改變,會(huì)對(duì)錯(cuò)誤定位的有效性產(chǎn)生怎么樣的影響?
本文選擇Siemens程序集作為實(shí)驗(yàn)對(duì)象。Siemens程序包含7組實(shí)現(xiàn)不同功能的C程序,每組程序通過人工注入的方式創(chuàng)建了132個(gè)不同的錯(cuò)誤版本,每個(gè)版本中包含1個(gè)錯(cuò)誤。Siemens程序集被廣泛地應(yīng)用于錯(cuò)誤定位方法的研究中,排除不可用版本,實(shí)驗(yàn)中僅用了123個(gè)版本。在用測(cè)試用例選擇方法之前,需要完成一些基本實(shí)驗(yàn)來獲取測(cè)試用例的執(zhí)行結(jié)果及軌跡信息。依據(jù)測(cè)試用例的執(zhí)行結(jié)果,將測(cè)試用例劃分為成功測(cè)試集和失敗測(cè)試集。為了使實(shí)驗(yàn)結(jié)果更具有說服性,選取了3種被普遍研究的錯(cuò)誤定位技術(shù):Tarantula、Ochiai[11]、Naish[12]。
圖2 (a)示出了采用Tarantula方法,錯(cuò)誤定位的效率在原有測(cè)試集和本文方法(θ為0.50,0.60,0.70,0.80)上的比較結(jié)果。圖中橫坐標(biāo)表示當(dāng)定位出錯(cuò)誤時(shí)已檢測(cè)的語句占程序總語句的比例,縱坐標(biāo)表示已檢測(cè)出的程序版本占錯(cuò)誤總版本數(shù)的比例。被檢測(cè)的語句所占的比例越低,表示錯(cuò)誤定位的效率越高。將本文方法中的θ取不同值時(shí),相應(yīng)的相似選擇方法定義為S(θ) (θ=0.50,0.60,0.70,0.80)。從圖2(a)中可以看出,利用測(cè)試用例選擇的方法進(jìn)行錯(cuò)誤定位的效率比使用原有測(cè)試用例集的效率要好。在同一程序中,當(dāng)檢測(cè)相同比例的程序語句時(shí),使用測(cè)試用例選擇方法能定位出更多的錯(cuò)誤版本。例如,當(dāng)少于10%的語句被檢測(cè)時(shí),能確定錯(cuò)誤語句的錯(cuò)誤版本所占的比例依次為53.28%、 54.1%、 63.12% 、66.39%,高于使用原測(cè)試集時(shí)的效率(40.98%)。當(dāng)檢測(cè)更多比例的錯(cuò)誤語句時(shí),這一趨勢(shì)保持不變。得出這樣一個(gè)簡單的結(jié)論:在相似測(cè)試用例選擇的方法中,隨著相似比例的增大,錯(cuò)誤定位的有效性也不斷提高。此外,當(dāng)θ≥0.85時(shí),某些程序錯(cuò)誤版本無法為失敗的測(cè)試用例選擇出達(dá)到條件的相似成功測(cè)試用例。對(duì)于進(jìn)行選擇操作的其他錯(cuò)誤程序,錯(cuò)誤定位的效率仍然得到了大幅的提高,如圖2(b)所示。
Yu等[9]研究了使用了10種基于語句的測(cè)試用例約簡方法(SA)時(shí)Tarantula方法的效率,Gong等[8]也使用Tarantula方法對(duì)他們提出的測(cè)試用例約簡方法(CRV+PRV)進(jìn)行了研究。為了進(jìn)一步比較方法的有效性,對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行了對(duì)比,見表1。在表1中,我們發(fā)現(xiàn),SA方法的ExpenseDecrease值均為負(fù),由此表明,SA約簡策略降低了錯(cuò)誤定位方法的效率;CRV+PRV方法的ExpenseDecrease均為正值,但普遍偏小,說明錯(cuò)誤定位的效率提高不明顯; 而使用本文方法,不管θ取何值,計(jì)算得出的ExpenseDecrease值均為正,且數(shù)值偏大,錯(cuò)誤定位的效率提高明顯。ExpenseDecrease值的變化趨勢(shì)也證明了θ值影響錯(cuò)誤定位效率的結(jié)論。
圖2 使用被選擇的測(cè)試用例與原測(cè)試集時(shí)Tarantula方法的錯(cuò)誤定位效率Fig.2 Comparison of Tarantula between selected test suite and unselected test suite 表1 利用Tarantula方法,各測(cè)試用例約簡方法的平均ExpenseDecrease值 Table 1 Mean ExpenseDecrease using Tarantula on test suite selection
ProgramExpenseDecreaseS(0.50)S(0.60)S(0.70)S(0.80)CRV+PRVSAprint_tokens9.0709.0709.0709.0702.077-4.93print_tokens28.7098.4088.4089.0091.723-4.60replace2.5912.7333.1332.68231.172-4.76schedule3.7533.7533.7533.6145.022-8.81schedule23.3010.92516.91826.1693.322-6.08tcas1.4472.64610.41710.4170.921-6.85totinfo10.26710.73111.99612.0380.614-4.90Average5.5926.8969.099310.4292.122-5.85
本文還使用Ochiai和Naish方法對(duì)測(cè)試用例選擇方法進(jìn)行了實(shí)驗(yàn)研究。圖3 示出了語句檢測(cè)率與錯(cuò)誤版本定位率之間的關(guān)系圖。結(jié)果表明,使用測(cè)試用例選擇方法,Ochiai和Naish方法得出的錯(cuò)誤定位的有效性得以提高,并且當(dāng)θ達(dá)到可取的最大值時(shí),錯(cuò)誤定位的效率也是最高的。這一結(jié)果與Tarantula方法計(jì)算出的結(jié)果保持一致。表2和表3分別給出了利用Ochiai和Naish方法,結(jié)合測(cè)試用例約簡方法計(jì)算出的錯(cuò)誤定位有效性的變化值。表中的數(shù)據(jù)表明了本文提出的相似測(cè)試用例選擇方法提高了錯(cuò)誤定位的有效性。在表中,“replace”程序的錯(cuò)誤定位效率有少許降低,但從程序總體看,錯(cuò)誤定位的有效性得到了明顯的提高。
圖3 使用測(cè)試用例選擇方法與原測(cè)試集時(shí),Ochiai和Naish的錯(cuò)誤定位效率Fig.3 Comparison of Ochiai and Naish between selected test suite and unselected test suite
本文提出了一種相似測(cè)試用例選擇的方法用以提高錯(cuò)誤定位的有效性。該方法的主要思想是為每一個(gè)失敗測(cè)試用例選擇與其執(zhí)行軌跡最為相似的成功測(cè)試用例,利用選擇出的相似測(cè)試用例及其執(zhí)行軌跡信息,用現(xiàn)有的錯(cuò)誤定位方法計(jì)算出語句的最終可疑度值,輸出最終的語句可疑值列表。對(duì)待選擇的成功測(cè)試集中的偶然成功測(cè)試用例進(jìn)行了排除操作,提高了本文方法在錯(cuò)誤定位上的準(zhǔn)確性。最終,Siemens程序集上的實(shí)驗(yàn)研究證明了相似測(cè)試用例選擇的方法能提高錯(cuò)誤定位的有效性,并且,隨著相似比例的提高,錯(cuò)誤定位的有效性提高更為明顯。
表2 Ochiai方法的平均
表3 Naish方法的平均
本文突出考慮每一種失敗執(zhí)行軌跡,對(duì)于單個(gè)錯(cuò)誤的程序而言,每一個(gè)失敗測(cè)試用例必然執(zhí)行了錯(cuò)誤語句,因此,失敗測(cè)試用例對(duì)錯(cuò)誤定位的貢獻(xiàn)最大,通過分析比較與失敗測(cè)試用例的執(zhí)行信息相似的成功測(cè)試用例,將差異語句突顯出來,成為了提高錯(cuò)誤定位有效性的關(guān)鍵。在未來的工作中,我們將進(jìn)一步研究基于其他粒度(分支,方法等)的測(cè)試用例的約簡策略。本文的研究重點(diǎn)關(guān)注在小規(guī)模單錯(cuò)誤的程序上,未來將考慮大規(guī)模多錯(cuò)誤的程序中測(cè)試用例選擇方法的研究。
[1]ABREU R,ZOETEWEIJ P,VAN GEMUND A J C.On the accuracy of spectrum-based fault localization[C]//Testing:Academic and Industrial Conference Practice and Research Techniques,MUTATION 2007.Windsor:IEEE,2007:89-98.
[2]BAUDRY B,FLEUREY F,TRAONY LE.Improving test suites for efficient fault localization[C]//Proceedings of the 28th International Conference on Software Engineering.Shanghai:ACM,2006:82-91.
[3]GRAVES T L,HARROLD M J,KIM J M,etal.An empirical study of regression test selection techniques[J].ACM Transactions on Software Engineering and Methodology (TOSEM),2001,10(2):184-208.
[4]HARROLD M J,GUPTA R,SOFFA M L.A methodology for controlling the size of a test suite[J].ACM Transactions on Software Engineering and Methodology (TOSEM),1993,2(3):270-285.
[5]CHEN T Y,LAU M F.A new heuristic for test suite reduction[J].Information and Software Technology,1998,40(5):347-354.
[6]HAO Dan,XIE Tao,ZHANG Lu,etal.Test input reduction for result inspection to facilitate fault localization[J].Automated Software Engineering,2010,17(1):5-31.
[7]HSU H Y,ORSO A.MINTS:A general framework and tool for supporting test-suite minimization[C]//IEEE 31st International Conference on Software Engineering.USA:IEEE,2009:419-429.
[8]DANDAN G,TIANTIAN W,XIAOHONGS,etal.A test-suite reduction approach to improving fault-localization effectiveness[J].Computer Languages,Systems & Structures,2013,39(3):95-108.
[9]YU YANBIN,JONES J A,HARROLD M J.An empirical study of the effects of test-suite reduction on fault localization[C]//Proceedings of the 30th International Conference on Software Engineering.Leipzig,Germany:ACM,2008:201-210.
[10]JONES J A,HARROLD M J,STASKO J.Visualization of test information to assist fault localization[C]//Proceedings of the 24th International Conference on Software Engineering.New York:ACM,2002:467-477.
[11]CAMPOS J,ABREU R.Leveraging a constraint solver for minimizing test suites[C]//2013 13th International Conference on Quality Software (QSIC).Nanjing:IEEE,2013:253-259.
[12]LEE NAISH,LEE H J,RAMAMOHANARAO K.A model for spectra-based software diagnosis[J].ACM Transactions on Software Engineering and Methodology (TOSEM),2011,20(3):11.
A Test Suite Selection Approach to Improving the Effectiveness of Fault Localization
FU Wen-hao,YU Hui-qun,FAN Gui-sheng
(Department of Computer Science and Engineering,East China University of Science and Technology,Shanghai 200237,China)
In order to improve the effectiveness of fault localization,various test suite reduction and selection methods have been proposed in recent years.However,excessive reduction or improper selection on test cases may result in the loss of some testing information and affect the fault localization.In this paper,a new test suite selection approach is proposed to improve spectrum-based fault localization (SFL).The proposed approach can eliminate the deviation in the accuracy of fault localization caused by coincidental passed test cases.By selecting similar test cases for each failed test case from the past test set,testing information is retained as more as possible.Besides,a ranking list is constructed by using an SFL technique with the new spectra.Finally,it is shown via experimental results on Siemens programs that the proposed approach can improve fault-localization effectiveness significantly.
debugging; fault localization; test suite selection; similar test case
1006-3080(2016)04-0557-06
10.14135/j.cnki.1006-3080.2016.04.018
2015-11-06
付文豪(1990-),女,博士生,主要研究方向?yàn)檐浖{(diào)試、錯(cuò)誤定位等。E-mail:whfu2012@163.com
通信聯(lián)系人:虞慧群,E-mail:yhq@ecust.edu.cn
TP312
A