[發(fā)明專利]一種基于動態(tài)基本塊的缺陷定位測試用例約簡方法無效
| 申請?zhí)枺?/td> | 201110413590.7 | 申請日: | 2011-12-13 |
| 公開(公告)號: | CN102521131A | 公開(公告)日: | 2012-06-27 |
| 發(fā)明(設計)人: | 陳林;馬倩;盧紅敏;徐寶文 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 南京天翼專利代理有限責任公司 32112 | 代理人: | 黃明哲 |
| 地址: | 210093 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 動態(tài) 基本 缺陷 定位 測試 用例約簡 方法 | ||
技術領域
本發(fā)明屬于軟件測試技術領域,涉及軟件測試結果的驗證及缺陷定位技術,主要應用于測試輸入的產生和測試用例的執(zhí)行可以自動完成,但測試結果需要人工比對的場景下,為一種基于動態(tài)基本塊的缺陷定位測試用例約簡方法。
背景技術
基于測試執(zhí)行的語句覆蓋的缺陷定位技術通過運行測試用例集來獲取程序的動態(tài)執(zhí)行信息,根據語句的覆蓋情況和用例的執(zhí)行結果計算各條語句的可疑度,具有高可疑度的語句優(yōu)先被檢查。其中,最具有代表性的是Agrawal等的削片方法,Renieris和Reiss的最近鄰方法,Jones和Harrold等提出的Tarantula方法。
研究表明這些基于覆蓋信息的缺陷定位技術可以有效地減少程序中需要檢查的語句數,從而減少了缺陷定位的工作量。然而,基于覆蓋信息的缺陷定位技術要求測試用例集具有很高的語句覆蓋率,雖然現有的測試用例生成工具可以自動生成高覆蓋率的測試輸入,但是這些測試輸入對應的輸出結果是未知的。人工判斷所有的輸出結果對測試人員來說是及其困難且不現實的。而且,判斷測試輸入的執(zhí)行結果正確與否,是測試領域的難題:測試預言問題。
這個問題的存在嚴重影響了基于覆蓋信息的缺陷定位技術在實際中的應用,帶來了極大的負擔。考慮到用測試用例生成工具自動生成的測試輸入集存在很大的冗余,研究人員提出對測試輸入進行約簡,采用一些策略從測試用例集中挑選出部分用例組成一個子集。測試人員只需檢查這個子集的測試輸出結果,然后在這個子集上應用基于覆蓋信息的缺陷定位技術即可。
Yu?Y和Jones?J等研究了測試用例集的約簡對缺陷定位效果的影響,他們的實驗表明,在測試用例約簡和缺陷定位效果間存在一個折中,一般來說,現有的測試用例約簡策略降低了缺陷定位的效果。Hao?Dan等人提出了一種包含三種策略(下面分別稱為S1,S2,S3)的測試輸入約簡方法(Hao?D,Xie?T,Zhang?L,et?al.Test?input?reduction?for?result?inspection?to?facilitate?fault?localization.Journal?of?Automated?Software?Engineering,2010.5~31.),實驗證明他們的方法可以幫助開發(fā)人員選擇出測試輸入的一個小的子集,檢查這個子集中測試輸入對應的輸出結果并在其覆蓋信息基礎上進行缺陷定位,仍然可以獲得有效的缺陷定位效果。
Baudry?B等人的研究表明,在基于語句覆蓋信息的缺陷定位技術中,缺陷定位算法可以識別的最小單元為動態(tài)基本塊,位于同一個動態(tài)基本塊中的兩條語句將被賦予相同的可疑度。因此,可以利用動態(tài)基本塊覆蓋來進行測試用例約簡。動態(tài)基本塊的基本含義為:假設P為待測試的程序,TS為測試用例集,一個動態(tài)基本塊DBB(dynamic?basic?block)是程序P中被TS中相同測試用例覆蓋的語句的集合。位于同一個動態(tài)基本塊中的語句在覆蓋矩陣中具有相同的行,它們被測試用例集中相同的測試用例所覆蓋,也就是說,測試用例集中任意一條測試用例要么執(zhí)行了這個塊中全部語句,要么沒有執(zhí)行塊中任何一條語句。
發(fā)明內容
本發(fā)明所要解決的技術問題是:現有的基于語句覆蓋的缺陷定位方法需要檢查測試用例執(zhí)行結果,耗費大量人力,如果對測試用例進行約簡,充分利用語句覆蓋信息來幫助挑選用于缺陷定位的測試用例,可以節(jié)約成本,約簡的測試用例集要保證和原有的用例集具有相同或相近的缺陷定位效果。
本發(fā)明的技術方案為:一種基于動態(tài)基本塊的缺陷定位測試用例約簡方法,在基于測試執(zhí)行的語句覆蓋信息的缺陷定位技術中,缺陷定位算法可以識別的最小單元為動態(tài)基本塊,根據測試用例的執(zhí)行路徑構建語句覆蓋矩陣,由語句覆蓋矩陣得到動態(tài)基本塊集合,根據動態(tài)基本塊集合將每條測試用例表示成以動態(tài)基本塊為單位的向量,將語句覆蓋矩陣轉換為動態(tài)基本塊覆蓋矩陣,對其中需要人工檢查結果的測試用例集進行約簡:采用最大劃分策略MDS或均勻劃分策略EDS挑選測試用例,并判斷所挑選的測試用例是否能繼續(xù)對當前已劃分出的動態(tài)基本塊做劃分,如果能,則保留已挑選的測試用例,繼續(xù)挑選余下的測試用例,如果不能,則將已經挑選的所有測試用例構成約簡后的測試用例集,約簡后的測試用例集用于缺陷定位。
2、根據權利要求1所述的一種基于動態(tài)基本塊的缺陷定位測試用例約簡方法,其特征是包括以下步驟:
1)對待測試程序P執(zhí)行測試用例集TS,TS為待約簡的初始測試用例集,根據測試用例執(zhí)行路徑收集語句覆蓋信息,構建語句覆蓋矩陣;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110413590.7/2.html,轉載請聲明來源鉆瓜專利網。





