[發明專利]一種基于謂詞自適應隨機測試的測試用例集擴增方法有效
| 申請號: | 201110306943.3 | 申請日: | 2011-10-10 |
| 公開(公告)號: | CN102508770A | 公開(公告)日: | 2012-06-20 |
| 發明(設計)人: | 陳振宇;房春榮;楊忠軍;趙志宏;張杰 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 南京天翼專利代理有限責任公司 32112 | 代理人: | 黃明哲 |
| 地址: | 210093 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 謂詞 自適應 隨機 測試 用例集 擴增 方法 | ||
技術領域
本發明屬于軟件測試技術領域,尤其是軟件測試中回歸測試技術領域,用于進行測試用例集的擴增,實現對新版本軟件更全面地測試,為一種基于謂詞自適應隨機測試的測試用例集擴增方法。
背景技術
由于功能修改、性能調優、軟件重構和錯誤修復等因素,軟件需要修改演化。回歸測試是對軟件修改進行檢測以確保其未引入新錯誤。現有回歸測試研究通常分為三大類:測試用例選擇(Test?Case?Selection),測試用例修復(Test?Case?Repairing),以及測試用例集擴增(Test?Suite?Augmentation)。測試用例選擇的主要任務就是從原有測試用例中進行挑選,按目標不同可分為三類:回歸測試選擇、測試用例集約簡和測試用例優先級。軟件的修改可能使得原有測試用例不可用;測試用例修復的目標是將其修復成可用測試用例。測試用例集擴增則通過新增測試用例進行更加全面的回歸測試。
過去二十年回歸測試研究主要集中在測試用例選擇。然而在面向軟件演化測試的一些應用中,重用部分甚至全部測試用例也不能完全滿足軟件演化帶來的測試需求。例如,原有測試用例往往不能測試到新增模塊。因而需要新的測試用例來滿足測試需求。測試用例集擴增通過軟件修改分析提取新的測試需求,并通過特定測試用例生成方法得到新測試用例。測試用例集擴增的主要挑戰是如何將軟件修改分析與測試用例生成有機結合,以降低測試成本并提高回歸測試的精度。當前的測試用例集擴增主要基于符號執行、啟發式搜索等測試用例生成技術。白盒測試技術適合與軟件修改分析相結合,但用其進行測試用例生成往往受限于過高的代價。
發明內容
本發明要解決的問題是:現有的測試用例擴增方法不能滿足回歸測試中測試用例集擴增對測試成本和測試精度的要求,需要新的測試用例擴增方法來滿足這些需求。
本發明的技術方案為:一種基于謂詞自適應隨機測試的測試用例集擴增方法,程序中的分支條件表達式稱為分支,由分支條件回溯至輸入域的表達式稱為謂詞,用于回歸測試,結合軟件修改分析的白盒測試技術與自適應隨機測試ART的黑盒測試技術,首先進行謂詞提取,然后通過謂詞距離引導ART進行測試用例集擴增,包括以下步驟:
1)使用Dejavu測試用例選擇方法,從原測試用例集中選擇經過修改部分的測試用例,構成“選擇的測試用例集”;
2)靜態分析回歸測試的新版本程序,提取程序中所有可能被提取的謂詞;
3)采用謂詞序列值的Jaccard距離計算測試用例之間的距離:將提取出的謂詞組成一個謂詞集合,謂詞數量記為Nall,謂詞結果集中相同值的數量記為Nsame;然后使用測試用例t靜態執行謂詞得到一個謂詞結果集合R;通過謂詞結果集合R計算測試用例間的謂詞距離,測試用例間的謂詞距離D(t1,t2)采用Jaccard距離計算,如下所示:
將所得謂詞距離定義為測試用例間的距離;
4)進行基于謂詞的自適應測試用例生成過程,生成新的測試用例集,具體過程為:在輸入域上隨機生成n個測試用例,分別計算生成的測試用例與已選擇測試用例集的各個測試用例之間的謂詞距離,并將所得最小距離作為該生成的測試用例與已選擇測試用例集之間的距離,然后將這n個測試用例中與已選擇測試用例集距離最大的那個作為新增的測試用例,重復此過程m次,整個過程終止,m為需要擴增的測試用例數量;或者在設定的時間內未擴增新的測試用例時,整個過程終止。
作為優選,步驟4)中,在輸入域上隨機生成n個測試用例,n=10。
步驟2)中的謂詞提取為:從程序分支中靜態回溯所提取的表達式,并表示為輸入域變量和程序常量的表達式,其具體形式如下:
ExpressionΘConstant
Θ表示比較符號,Expression表示一個包含變量的表達式,Constant表示常量,對于謂詞的其它形式,通過變換表示成此形式;對于Expression中含有非輸入參數的變量,通過規約表示為輸入參數的形式,規約后的謂詞形式如下:
Expression?only?with?argumentsΘConstant
謂詞提取時:
1)忽略含有全局變量的分支;
2)忽略含有對庫函數和第三方函數調用的謂詞。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110306943.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種金剛石繩鋸連接裝置
- 下一篇:一種電動控制彎角的內窺鏡





