[發明專利]一種面向條件判定覆蓋的測試數據自動生成方法有效
| 申請號: | 201410271284.8 | 申請日: | 2014-06-17 |
| 公開(公告)號: | CN104050083B | 公開(公告)日: | 2017-05-03 |
| 發明(設計)人: | 陳鑫;歐建生;成新;周巖;鞠秀芳 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 江蘇銀創律師事務所32242 | 代理人: | 孫計良 |
| 地址: | 210046 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 條件 判定 覆蓋 測試數據 自動 生成 方法 | ||
1.一種面向條件判定覆蓋的測試數據自動生成方法,包括分析待測源程序獲得待測源程序所有路徑的集合和所有分支節點的集合BS以及分支節點的關聯路徑集的集合的步驟,其特征在于,該方法還包括對分支節點集BS中的每一分支節點B執行以下步驟:
S1:根據B的關聯路徑集中各路徑上位于B之前的各分支節點的各個條件,構建關于輸入變量向量X的分支函數Fk,i,j(X);所述輸入變量向量X為所述待測源程序輸入變量構成的向量;所述分支函數Fk,i,j(X)表示路徑k上第i個分支節點的第j個條件的分支函數;所述路徑k經過分支節點B;k為分支節點B的關聯路徑集中路徑的序號;
S2:構建初始的輸入向量集U;所述初始的輸入向量集U至少包含兩個輸入向量;
S3:計算以輸入向量集U中每個輸入向量作為待測源程序的輸入執行待測源程序時與所述分支節點B的關聯路徑集中各路徑上位于B之前的每個分支節點上的各分支函數Fk,i,j(X)獲得分支函數值的集合V以及最遠公共分支節點mk;當執行待測源程序時的執行路徑經過分支節點B時計算B的判定和判定中各個條件的取值;假如輸入向量集U中存在一個輸入向量執行待測源程序時執行路徑經過分支節點B且使B的判定或判定中某個條件產生新的取值,則記錄該輸入向量作為所述分支節點B的一個測試數據;假如所述分支節點B的測試數據集覆蓋了B的判定及判定中各條件所有可能取值,則返回該測試數據集作為所述分支節點B的測試數據集;所述最遠公共分支節點mk為路徑k的最遠公共分支節點;
S4:根據分支節點B的關聯路徑集中各路徑上位于B之前的各個分支節點上的各分支函數值的集合V以及最遠公共節點mk構建路徑k上位于最遠公共節點mk之前的每個分支節點的各分支函數的擬合函數LFk,i,j;LFk,i,j表示路徑k上第i個分支節點的第j個條件的分支函數的線性擬合函數;
S5:根據分支節點B的關聯路徑集中各路徑上位于B之前的每個分支節點中的各分支函數的線性擬合函數LFk,i,j和待測源程序計算可行區間I;所述可行區間I={I1,I2,...,Is},其中,s為輸入變量的個數,Ii為第i個輸入變量的可行區間,Ii={Ii,1,Ii,2,...,Ii,Mi},其中,Ii,j為第i個輸入變量第j個可行分段區間,Mi為第i個輸入變量可行分段區間數;
S6:在可行區間I內隨機選取各輸入變量的輸入值得到測試數據集加入至輸入向量集U中;當Mi為1時,從Ii為第i個輸入變量的可行區間的唯一分段區間Ii,1的擴展區間中隨機取值構建測試數據;
S7:重復執行步驟S3至S6直到步驟S3至S6執行的次數達到限定的次數;
S8:返回所有記錄的所述分支節點B的測試數據作為所述分支節點B的測試數據集;
所述步驟S5包括:
S51:計算分支節點B的關聯路徑集中各路徑上位于B之前的各個分支節點中各分支函數的可行區間Dk,i,j;所述可行區間Dk,i,j為路徑k上第i個分支節點的第j個分支函數的可行區間;
S52:合并每個分支節點內的各分支函數的可行區間Dk,i,j得到各分支節點的可行區間Dk,i;所述可行區間Dk,i為路徑k上第i個分支節點的可行區間;
S53:合并最遠公共分支節點mk前的各分支節點的可行區間Dk,i得到分支節點B在路徑k上的可行區間Ik;所述可行區間Ik為路徑k的可行區間;
S54:合并分支節點B在各路徑上的可行區間Ik,得到分支節點B的可行區間I。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410271284.8/1.html,轉載請聲明來源鉆瓜專利網。





