[發明專利]一種基于程序結構影響感知的軟件錯誤定位方法有效
| 申請號: | 201410546645.5 | 申請日: | 2014-10-15 |
| 公開(公告)號: | CN104317707B | 公開(公告)日: | 2017-09-29 |
| 發明(設計)人: | 李恒;張震宇;劉暢 | 申請(專利權)人: | 中國科學院軟件研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京科迪生專利代理有限責任公司11251 | 代理人: | 成金玉,孟卜娟 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 程序結構 影響 感知 軟件 錯誤 定位 方法 | ||
技術領域
本發明涉及一種基于程序結構影響感知的軟件錯誤定位方法,屬于軟件測試技術領域。
背景技術
軟件在日常生活中的應用越來越廣泛。隨著軟件功能和架構的復雜化,想要在軟件產品中徹底避免軟件錯誤的出現,仍然是很困難的。軟件錯誤,即導致軟件實際運行的結果和預期的運行結果不相符的那些因素,這些錯誤的存在,導致軟件相應的功能喪失。軟件調試是用于修改軟件錯誤的常用手段,是一項十分重要但又代價很大的工程,它通常包括三個步驟:錯誤的定位、錯誤的修復和對錯誤修復后的再確認。其中,錯誤的定位是最為重要也是最為費時和費力的過程。
語句級別的統計錯誤定位方法通過收集每條語句在程序執行失敗或成功時的運行信息來分析和評估該語句存在錯誤的可疑程度。舉例來說,若某條語句總是在失敗的程序執行中被運行,而從未在成功的程序執行中被運行過,那么,它很可能是和軟件錯誤相關的。在此類統計錯誤定位方法中,通常采用可疑度函數來評估語句存在錯誤的可能性。
在進行錯誤定位時,首先需要多次執行程序,統計失敗測試用例的條數m和語句si的覆蓋次數failed(si),以及成功測試用例的條數m'和語句的覆蓋si次數passed(si);然后根據可疑度函數來評估每條語句存在錯誤的可能性,按照可疑值從大到小對語句進行排序;最后根據這個排序來逐個查找程序中的錯誤。對于目前的大部分可疑度函數(如Tarantula、Jaccard、Ochiai、Ochiai2)而言,一條語句si的可疑度RT(si)只與兩個變量有關——該語句在失敗的程序執行中運行的次數failed(si)和該語句在成功的程序執行中運行的次數passed(si)。
然而,單純地利用failed(si)和passed(si)來評估語句可疑度的方法與實際情況相差甚遠,在進行錯誤定位時,受程序結構的影響,某些語句在計算可疑度值時總是具有較高的可疑度值,而有些語句總是具有較低的可疑度值。這些都可能會造成軟件開發者反復多次地查看正確的程序片段,反而漏掉了一些難以察覺的錯誤。目前這種錯誤定位的方法很低,很難用于工業界。本發明考慮程序結構對可疑度值的影響,以對初始的可疑度值進行校正和優化,提供了一種準確度更高的錯誤定位方法。
發明內容
本發明技術解決問題:克服現有技術的不足,提供一種基于程序結構影響感知的軟件錯誤定位方法,本發明考慮了實際編程中程序結構對錯誤定位方法的影響,提出了一個通用的錯誤定位校正和優化策略,用以感知程序結構對錯誤定位效果的影響并予以消除,以至于可疑函數更加符合語言特性和實際情況,從而提高了錯誤定位的準確度。
本發明技術解決方案:一種基于程序結構影響感知的軟件錯誤定位方法,統計在軟件錯誤定位過程中程序實體的歷史可疑度值并進行分析,構造程序結構對程序實體可疑度值的影響函數,進而校正和優化當前的可疑度函數,在后續錯誤定位過程中消除程序結構對錯誤定位效果的影響,使得可疑度函數更加遵循程序的語言特性,從而提高錯誤定位的準確度。
具體實現步驟如下:
(1)提取程序集中各版本的程序語句的覆蓋信息,即錯誤語句在失敗的程序執行中運行的次數和語句在成功的程序執行中運行的次數;
(2)選擇某種可疑度函數,計算錯誤語句的可疑度;
(3)統計程序錯誤版本中各語句的可疑度值,以估算程序結構對錯誤定位方法的影響;
(4)構造程序結構對當前使用的錯誤定位方法的影響函數,利用該影響函數對可疑度函數進行校正和優化;
(5)在程序后續各版本的錯誤定位過程中,根據程序的每條語句的運行特征,利用步驟(4)中所述的策略不斷校正和優化可疑度函數,然后計算每條語句的可疑度,然后根據可疑值從大到小對語句進行排序,根據此順序對程序語句逐條排查,定位程序中的錯誤。
所述步驟(4)中使用簡單移動平均法來構造程序結構對錯誤定位方法的影響函數。
本發明不限定具體的錯誤定位方法,其他的錯誤定位方法也可以應用;
本發明不限定具體的估算方法,其它估算方法也可以應用。
本發明與現有技術相比的優點在于:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院軟件研究所,未經中國科學院軟件研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410546645.5/2.html,轉載請聲明來源鉆瓜專利網。





