【技術實現步驟摘要】
頻譜信息去冗優化的軟件缺陷定位方法
本專利技術涉及一種頻譜信息去冗優化的軟件缺陷定位方法,屬于軟件測試領域。
技術介紹
多年來,人們在缺陷定位的研究中提出了許多方法,主要通過程序的靜態信息和動態信息來定位程序錯誤。但獲得靜態信息的開銷較大,對于大型軟件,全面的靜態分析甚至是不現實的,而動態信息的收集只要是運行測試用例,并不會給測試帶來過多的開銷。同時,由于動態信息包含了程序運行時的信息,與利用靜態信息的方法相比,可以提供更準確的結果。利用程序頻譜信息進行缺陷定位,是目前比較切實有效的軟件缺陷定位方法,程序頻譜是一種表示程序運行時覆蓋情況的信息,反應程序運行某一特征的代碼剖面信息。程序頻譜與程序行為之間存在著一定的關系,通過研究運行失敗測試用例得到的頻譜信息與運行成功測試用例得到的頻譜信息之間的差異性可為軟件缺陷定位提供幫助。對于程序的單條語句,被失效測試用例執行的越多,成功的測試用例執行的越少,語句含有錯誤的可能性就越大,發生錯誤的概率就越大。利用這種特征對程序語句被成功測試用例以及失敗測試用例的覆蓋情況進行統計分析,找出含有缺陷的程序語句。對基于程序頻譜的程序定位方法,可以從多角度采取優化策略提高軟件缺陷定位的效率:第一,提高選取測試用例集的有效性;第二,盡量減少收集程序頻譜的開銷;第三,提高可以度算法的精確度性。在以往的優化策略的基礎上,如何提出一種新的優化策略,對覆蓋信息表進行去冗優化,提高依賴程序語句可疑度進行缺陷定位的可靠性,從而達到提高軟件缺陷定位的效率是在基于程序頻譜的程序定位方法的優化過程中應當予以考慮并解決的問題。
技術實現思路
本專利技術對 ...
【技術保護點】
一種頻譜信息去冗優化的軟件缺陷定位方法,其特征在于:通過運行測試用例,收集程序運行結果信息即頻譜信息;對所得頻譜信息進行去冗優化處理,利用頻譜信息計算可疑度;根據可疑度值的大小對語句進行降序排列,根據已排序的語句序列逐個進行排錯,直至找到引發程序異常的語句。
【技術特征摘要】
1.一種頻譜信息去冗優化的軟件缺陷定位方法,其特征在于:通過運行測試用例,收集程序運行結果信息即頻譜信息;對所得頻譜信息進行去冗優化處理,利用頻譜信息計算可疑度;根據可疑度值的大小對語句進行降序排列,根據已排序的語句序列逐個進行排錯,直至找到引發程序異常的語句;具體為:S1、獲取可執行的待測程序以及測試用例集;S2、執行測試用例,獲取程序執行的動態信息;S3、收集所有測試用例的運行情況,并進行去冗余處理,生成無冗余覆蓋信息表;具體為:S31、首個測試用例默認處理;具體為:默認第一個測試用例test1為有效測試用例;對第一個有效測試用例test1進行編號,記為Test1,表示第一個有效測試用例;拓展有效測試用例的執行情況為FF[test1]{Test1,F[test1]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}},即為FF[test1]{Test1,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R};收集測試用例testi的運行情況,記為F[testi]{T(S1),T(S2),T(S3)…T(Sj)…T(Sn),R},也即頻譜信息,表示測試用例運行軌跡,其中,T(S1),T(S2),T(S3)…T(Sj)…T(Sn)分別表示各語句S1,S2,S3,...,Sj,...,Sn覆蓋情況,Sj表示程序P的第j條語句,n為程序語句的總條數,R表示運行結果;S32、將FF[test1]{Test1,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}記入覆蓋信息表G,G由FF[test1]{Test1,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}累積生成;S33、獲取下一條測試用例的執行情況F[testi]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R};S34、判定F[testi]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}是否與覆蓋信息表G已有行F[test]相同,如果“是”,轉步驟S35,否則轉步驟S37;S35、判定測試testi為非有效測試用例;S36、刪除F[testi]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R};S37、判定測試用例testi為有效測試用例;S38、對有效測試用例testi進行編號,編為testI,表示第I個有效測試用例;S39、拓展testi運行結果為FF[testi]{TestI,F[testi]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}},即FF[testi]{TestI,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R};S310、將FF[testi]{TestI,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}記入覆蓋信息表G中;S311、判斷Listsuites中所有測試用例是否都被執行,如果“是”,轉步驟S312,否則轉步驟S33;S312、獲得最終覆蓋信息表G;S4、根據覆蓋信息表進行語句可疑度計算;S5、根據可疑度值,對程序語句進行降序排列,定位缺陷語句。2.如權利要求1所述的頻譜信息去冗優化的軟件缺陷定位方法,其特征在于,步驟S1具體為:S11、獲取待測的可執行程序P;S12、將程序P的每條語句進行編號,按序編為S1,S2,S3,.....
【專利技術屬性】
技術研發人員:張衛豐,張曉紅,王云,王子元,周國強,張迎周,
申請(專利權)人:南京郵電大學,
類型:發明
國別省市:江蘇;32
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。