[發(fā)明專利]一種面向巧合一致性問題的統(tǒng)計學軟件缺陷定位方法有效
| 申請?zhí)枺?/td> | 201210340190.2 | 申請日: | 2012-09-13 |
| 公開(公告)號: | CN102831065A | 公開(公告)日: | 2012-12-19 |
| 發(fā)明(設計)人: | 鄭征;郝鵬;張震宇;蔡開元 | 申請(專利權)人: | 北京航空航天大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京慧泉知識產權代理有限公司 11232 | 代理人: | 王順榮;唐愛華 |
| 地址: | 100191*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 巧合 一致性 問題 統(tǒng)計學 軟件 缺陷 定位 方法 | ||
技術領域
本發(fā)明涉及一種動態(tài)的軟件缺陷定位方法,特別是涉及一種面向巧合一致性問題的統(tǒng)計學軟件缺陷定位方法,它是一種集成了概率分布判據和標準化類間距離計算的統(tǒng)計學軟件缺陷定位方法。該方法屬于軟件測試技術領域。
背景技術
統(tǒng)計學軟件缺陷定位方法(該方法本質上是一種算法,下文中出于習慣用法,一律用算法一詞)通過比較程序運行成功和失敗時程序單元執(zhí)行譜的差異,來查找最有可能與程序缺陷有關的程序單元。
在現(xiàn)有的統(tǒng)計學軟件缺陷定位方法中,較有代表性的是Tarantula算法、CBI算法、SOBER算法(這些名稱是算法的發(fā)明人命名,現(xiàn)在暫無中文名稱)。Tarantula算法是哈羅德等人在“一種利用可視化信息的缺陷定位方法”(詳見2002年《第二十四屆國際軟件工程會議》)一文中提出的,其選擇的插樁方法是語句插樁,即對所有可執(zhí)行語句進行插樁,統(tǒng)計成功與失敗測試用例對每條可執(zhí)行語句的覆蓋情況。該算法所基于的假設是如果一條可執(zhí)行語句被所有失敗測試用例覆蓋而沒有被成功測試用例覆蓋,則該可執(zhí)行語句越可疑。然而,程序中大多數語句都很少導致缺陷,針對所有可執(zhí)行語句的缺陷定位不僅會造成信息的冗余,而且還會使缺陷定位成本增大。針對這個問題,本.里布里特等人在“一種可擴展的基于統(tǒng)計學的故障隔離方法”(詳見2005年《美國計算機學會<編程語言的設計和實現(xiàn)>會議》)一文中提出了CBI算法。該算法選擇的插樁方法是謂詞插樁,對分支語句、返回語句以及數量對語句進行插樁,通過收集和處理謂詞在程序運行時的動態(tài)執(zhí)行信息來實現(xiàn)缺陷定位。里布里特雖然解決了Tarantula算法中的信息冗余問題,但并沒有充分地收集謂詞的執(zhí)行信息(主要表現(xiàn)在里布里特僅僅考慮了謂詞是否在一次程序運行中被執(zhí)行到,并沒有考慮該謂詞在一次程序中被執(zhí)行了幾次)。信息不充分導致CBI算法的定位效果還有待提高。為此,劉超等人在“基于統(tǒng)計學的程序糾錯:一種基于假設檢驗的方法”(詳見2006年《電機及電子學工程師聯(lián)合會軟件工程匯刊》)一文中提出了SOBER算法。該算法有效地解決了謂詞執(zhí)行信息收集不充分的問題,表現(xiàn)為它不僅記錄了謂詞是否在一次程序運行中被執(zhí)行到,而且記錄了謂詞在一次程序運行中執(zhí)行的次數,包括謂詞判斷為“真”和判斷為“假”的次數。將這兩種統(tǒng)計信息也包括到謂詞缺陷相關度的計算當中,并引入假設檢驗的方法來計算謂詞的可疑度。實驗結果表明,SOBER算法的定位效果要優(yōu)于CBI算法。然而SOBER算法在應用時需要假設謂詞執(zhí)行譜分布是正態(tài)分布,張震宇等人在“非參統(tǒng)計學缺陷定位”(詳見2011年《系統(tǒng)與軟件期刊》)一文中曾證明有些程序的謂詞執(zhí)行譜并不符合正態(tài)分布,因此提出Wilcoxon算法和Mann-Whitney算法。該算法利用統(tǒng)計學中非參數假設檢驗的方法來比較謂詞執(zhí)行譜的差異,經大量實驗證明,Wilcoxon算法和Mann-Whitney算法在現(xiàn)有基于謂詞的缺陷定位算法中定位效果最優(yōu)。
盡管統(tǒng)計學軟件缺陷定位方法可以取得很高的定位精度,但是,該類方法的定位精度會受輸入數據特性的影響。之前的研究發(fā)現(xiàn),巧合一致性(巧合一致性是指程序運行時缺陷語句被執(zhí)行,但程序并沒有表現(xiàn)出失效)問題的存在會降低統(tǒng)計學缺陷定位方法的定位精度。因為巧合使程序運行成功的測試用例的執(zhí)行剖面與使程序運行失敗的測試用例的執(zhí)行剖面相近,如果將這部分測試用例歸入到成功的測試用例中,會對比較謂詞成功與失敗執(zhí)行譜差異產生負面影響。因此,現(xiàn)有技術主要集中于找到使程序巧合運行正確的測試用例,并且將其移除。但是,這些方法首先受限于如何正確找到存在巧合一致性的測試用例。其次,移除存在巧合一致性的測試用例,將會減少輸入的測試數據,影響算法中統(tǒng)計學方法的應用。
如何在允許巧合一致性存在的前提下,利用巧合一致性問題的相關特性來進行缺陷定位正是本發(fā)明所基于的考慮。
發(fā)明內容
本發(fā)明一種面向巧合一致性問題的統(tǒng)計學軟件缺陷定位方法,其目的是:克服現(xiàn)有方法易受巧合一致性問題影響的缺點,從巧合一致性問題本身的特性出發(fā),提供一種新的統(tǒng)計學軟件缺陷定位方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京航空航天大學,未經北京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210340190.2/2.html,轉載請聲明來源鉆瓜專利網。





