[發(fā)明專(zhuān)利]一種面向條件判定覆蓋的測(cè)試數(shù)據(jù)自動(dòng)生成方法有效
| 申請(qǐng)?zhí)枺?/td> | 201410271284.8 | 申請(qǐng)日: | 2014-06-17 |
| 公開(kāi)(公告)號(hào): | CN104050083B | 公開(kāi)(公告)日: | 2017-05-03 |
| 發(fā)明(設(shè)計(jì))人: | 陳鑫;歐建生;成新;周巖;鞠秀芳 | 申請(qǐng)(專(zhuān)利權(quán))人: | 南京大學(xué) |
| 主分類(lèi)號(hào): | G06F11/36 | 分類(lèi)號(hào): | G06F11/36 |
| 代理公司: | 江蘇銀創(chuàng)律師事務(wù)所32242 | 代理人: | 孫計(jì)良 |
| 地址: | 210046 江蘇*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 條件 判定 覆蓋 測(cè)試數(shù)據(jù) 自動(dòng) 生成 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種測(cè)試數(shù)據(jù)自動(dòng)生成方法,特別涉及自動(dòng)化單元測(cè)試中條件/判定覆蓋測(cè)試的測(cè)試用例數(shù)據(jù)的生成方法。
背景技術(shù)
測(cè)試技術(shù)是保障軟件系統(tǒng)質(zhì)量最重要和最有效的方法之一,一直以來(lái)也是工業(yè)界保證軟件系統(tǒng)正確性最主要的手段。受計(jì)算能力和時(shí)間、空間資源的限制,測(cè)試無(wú)法窮盡軟件所有可能的執(zhí)行,實(shí)踐中,各種測(cè)試充分度準(zhǔn)則被用于驅(qū)動(dòng)和評(píng)估測(cè)試過(guò)程。因此,面向給定的測(cè)試充分度準(zhǔn)則,如何生成對(duì)應(yīng)的測(cè)試用例集合,以驅(qū)動(dòng)程序的執(zhí)行覆蓋相應(yīng)的結(jié)構(gòu),成為測(cè)試過(guò)程中最關(guān)鍵的技術(shù)環(huán)節(jié)。目前測(cè)試用例的設(shè)計(jì)基本依靠人工手動(dòng)完成,不僅費(fèi)時(shí)費(fèi)力,而且用例的有效性也難以得到保證。如何自動(dòng)地為各種測(cè)試充分度準(zhǔn)則生成有效的測(cè)試用例,已成為測(cè)試技術(shù)研究的熱點(diǎn)問(wèn)題之一。
面向條件/判定的測(cè)試覆蓋(簡(jiǎn)稱(chēng):C/DC,即Condition/Decision Coverage)準(zhǔn)則,是應(yīng)用較廣泛的一種白箱測(cè)試充分度準(zhǔn)則,它要求設(shè)計(jì)足夠的測(cè)試用例,使得判定中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判定的所有可能判定結(jié)果至少執(zhí)行一次。舉例來(lái)說(shuō),判斷語(yǔ)句S=A and(B or C),其中,A、B、C為判定中的條件。當(dāng)ABC取值為T(mén)TF時(shí),S取值為T(mén);當(dāng)ABC取值為FFT時(shí),S取值為F。測(cè)試集{TTF、FFT}下,每個(gè)條件,即條件ABC均存在T和F的取值情形,而判斷語(yǔ)句S也存在T和F的取值。
理論研究已經(jīng)證明,不存在通用有效的算法可以為程序中任意判定的任意條件取值組合生成測(cè)試輸入。已有的研究工作可分為基于靜態(tài)分析和基于動(dòng)態(tài)執(zhí)行兩類(lèi)方法?;陟o態(tài)分析的方法無(wú)法有效的處理判定中的非線(xiàn)性約束條件,動(dòng)態(tài)方法容易陷入局部最優(yōu)點(diǎn)而無(wú)法發(fā)現(xiàn)可行的輸入,它們?cè)谔幚韺?shí)際問(wèn)題時(shí)存在很大的局限性。
科學(xué)和工程問(wèn)題中,通??梢圆捎弥T如采樣、實(shí)驗(yàn)等方法獲得若干離散的數(shù)據(jù),根據(jù)這些數(shù)據(jù),我們往往希望得到一個(gè)逼近于實(shí)際函數(shù)或者更加密集的離散方程與已知數(shù)據(jù)相吻合,這個(gè)過(guò)程叫做擬合。線(xiàn)性擬合是比較簡(jiǎn)單的擬合方式,數(shù)據(jù)點(diǎn)使用直線(xiàn)進(jìn)行連接,結(jié)果是一個(gè)多邊形。線(xiàn)性擬合簡(jiǎn)單易用,它可以在比較短的時(shí)間內(nèi)得到逼近函數(shù),縮短了算法自動(dòng)生成測(cè)試數(shù)據(jù)的前期工作量。
發(fā)明內(nèi)容
本發(fā)明所要解決的問(wèn)題是為待測(cè)試源程序自動(dòng)構(gòu)建測(cè)試數(shù)據(jù)(測(cè)試用例),使得在這些測(cè)試數(shù)據(jù)下執(zhí)行待測(cè)試源程序能夠覆蓋該待測(cè)試源程序的所有判定的可能取值及判定中所有條件的可能取值,完成條件/判定覆蓋測(cè)試。
為解決上述問(wèn)題,本發(fā)明采用的方案如下:
一種面向條件判定覆蓋的測(cè)試數(shù)據(jù)自動(dòng)生成方法,包括分析待測(cè)源程序獲得待測(cè)源程序所有路徑的集合和所有分支節(jié)點(diǎn)的集合BS以及分支節(jié)點(diǎn)的關(guān)聯(lián)路徑集的集合的步驟,該方法還包括對(duì)分支節(jié)點(diǎn)集BS中的每一分支節(jié)點(diǎn)B執(zhí)行以下步驟:
S1:根據(jù)B的關(guān)聯(lián)路徑集中各路徑上位于B(含B)之前的各分支節(jié)點(diǎn)的各個(gè)條件,構(gòu)建關(guān)于輸入變量向量X的分支函數(shù)Fk,i,j(X);所述輸入變量向量X為所述待測(cè)源程序輸入變量構(gòu)成的向量;所述分支函數(shù)Fk,i,j(X)表示路徑k上第i個(gè)分支節(jié)點(diǎn)的第j個(gè)條件的分支函數(shù);所述路徑k經(jīng)過(guò)分支節(jié)點(diǎn)B;
S2:構(gòu)建初始的輸入向量集U;所述初始的輸入向量集U至少包含兩個(gè)輸入向量;
S3:計(jì)算以輸入向量集U中每個(gè)輸入向量作為待測(cè)源程序的輸入執(zhí)行待測(cè)源程序時(shí)與所述分支節(jié)點(diǎn)B關(guān)聯(lián)的各路徑k上位于B之前(含B)的每個(gè)分支節(jié)點(diǎn)上的各分支函數(shù)Fk,i,j(X)獲得分支函數(shù)值的集合V以及最遠(yuǎn)公共分支節(jié)點(diǎn)mk;當(dāng)執(zhí)行待測(cè)源程序時(shí)的執(zhí)行路徑經(jīng)過(guò)分支節(jié)點(diǎn)B時(shí)計(jì)算B的判定和判定中各個(gè)條件的取值;假如輸入向量集U中存在一個(gè)輸入向量執(zhí)行待測(cè)源程序時(shí)執(zhí)行路徑經(jīng)過(guò)分支節(jié)點(diǎn)B且使B的判定或判定中某個(gè)條件產(chǎn)生新的取值,則記錄該輸入向量作為所述分支節(jié)點(diǎn)B的一個(gè)測(cè)試數(shù)據(jù);假如所述分支節(jié)點(diǎn)B的測(cè)試數(shù)據(jù)集覆蓋了B的判定及判定中各條件所有可能取值,則返回該測(cè)試數(shù)據(jù)集作為所述分支節(jié)點(diǎn)B的測(cè)試數(shù)據(jù)集;
S4:根據(jù)分支節(jié)點(diǎn)B的關(guān)聯(lián)路徑集中各路徑k上位于B之前(含B)的各個(gè)分支節(jié)點(diǎn)上的各分支函數(shù)值的集合V以及最遠(yuǎn)公共節(jié)點(diǎn)mk構(gòu)建路徑k上位于最遠(yuǎn)公共節(jié)點(diǎn)mk之前(含mk)的每個(gè)分支節(jié)點(diǎn)的各分支函數(shù)的擬合函數(shù)LFk,i,j;LFk,i,j表示路徑k上第i個(gè)分支節(jié)點(diǎn)的第j個(gè)條件的分支函數(shù)的線(xiàn)性擬合函數(shù);
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于南京大學(xué),未經(jīng)南京大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410271284.8/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 限制條件解決方法、限制條件解決裝置、以及限制條件解決系統(tǒng)
- 制造條件設(shè)定系統(tǒng)及制造條件設(shè)定方法
- 成形條件確定方法及成形條件確定系統(tǒng)
- 成形條件設(shè)定裝置、成形條件設(shè)定方法及成形條件設(shè)定畫(huà)面
- 攝影條件設(shè)定設(shè)備、攝影條件設(shè)定方法和攝影條件設(shè)定程序
- 生理?xiàng)l件監(jiān)視系統(tǒng)、生理?xiàng)l件傳感器和生理?xiàng)l件儀表
- 成形條件設(shè)定裝置、成形條件設(shè)定方法及成形條件設(shè)定畫(huà)面
- 條件訪(fǎng)問(wèn)設(shè)備
- 用于條件切換的裝置、方法、介質(zhì)和系統(tǒng)
- 基于條件分布的條件生成對(duì)抗網(wǎng)絡(luò)





