[發(fā)明專利]xUnit框架下面向?qū)ο筌浖袦y試目標(biāo)的自動化選擇方法有效
| 申請?zhí)枺?/td> | 201310146574.5 | 申請日: | 2013-04-24 |
| 公開(公告)號: | CN103309805A | 公開(公告)日: | 2013-09-18 |
| 發(fā)明(設(shè)計)人: | 顧慶;陳道蓄 | 申請(專利權(quán))人: | 南京大學(xué)鎮(zhèn)江高新技術(shù)研究院 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 江蘇圣典律師事務(wù)所 32237 | 代理人: | 賀翔 |
| 地址: | 212000 江蘇省鎮(zhèn)*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | xunit 框架 面向 對象 軟件 測試 目標(biāo) 自動化 選擇 方法 | ||
1.一種xUnit框架下面向?qū)ο筌浖袦y試目標(biāo)的自動化選擇方法,其特征在于包含以下步驟:
1)基于xUnit框架,以被測軟件中的對象類作為測試目標(biāo);通過分析對象類之間的依賴關(guān)系構(gòu)建類依賴圖;
2)根據(jù)類依賴圖和測試需求,基于節(jié)點(diǎn)的兩跳可達(dá)集,選擇影響范圍最大的關(guān)鍵節(jié)點(diǎn)集合;
3)將關(guān)鍵節(jié)點(diǎn)集合映射為關(guān)鍵類集合,以關(guān)鍵類集合中的對象類作為測試目標(biāo),再按照xUnit框架設(shè)計和執(zhí)行相應(yīng)的測試用例。
2.根據(jù)權(quán)利要求1所述的xUnit框架下面向?qū)ο筌浖袦y試目標(biāo)的自動化選擇方法,其特征在于,步驟1)具體過程為:首先獲取被測軟件的源代碼,解析其中所有的類(Class);然后以每一個類為單位,根據(jù)類定義和類方法實(shí)現(xiàn),分析類之間的依賴關(guān)系,確定類之間的關(guān)聯(lián);最后將解析出的類映射為節(jié)點(diǎn),關(guān)聯(lián)映射為有向邊,構(gòu)建類依賴圖,該依賴圖為簡單的有向圖。
3.根據(jù)權(quán)利要求2所述的xUnit框架下面向?qū)ο筌浖袦y試目標(biāo)的自動化選擇方法,其特征在于,任意兩個類之間的依賴關(guān)系定義分6種情況,假設(shè)給定兩個不同的類c1和c2:
情況1.類c1繼承(inherit)或?qū)崿F(xiàn)(implement)了類c2;
情況2.類c1中的一個或多個域變量(field)的定義類型是類c2;
情況3.類c1中一個或多個方法(method)的返回值類型是類c2;
情況4.類c1中某一個方法的一個或多個參數(shù)(parameter)類型是類c2;
情況5.類c1中某一個方法的實(shí)現(xiàn)中,存在一個或多個局部變量(variable)的定義類型是類c2;
情況6.類c1中某一個方法的實(shí)現(xiàn)中,調(diào)用了類c2中的一個或多個方法;
如果存在這6種依賴關(guān)系之一,則定義兩個類之間的關(guān)聯(lián)<c1,c2>;類之間的關(guān)聯(lián)是有向的,<c1,c2>和<c2,c1>是兩個不同的關(guān)聯(lián)。
4.根據(jù)權(quán)利要求1、2或3所述的xUnit框架下面向?qū)ο筌浖袦y試目標(biāo)的自動化選擇方法,其特征在于,步驟2)具體過程為:首先根據(jù)測試需求設(shè)定關(guān)鍵節(jié)點(diǎn)集的規(guī)模,然后計算每一個節(jié)點(diǎn)的關(guān)鍵度指標(biāo)κ,為從該節(jié)點(diǎn)出發(fā),兩跳可達(dá)集內(nèi)的節(jié)點(diǎn)數(shù)量;接下來開始迭代,每次選擇一個關(guān)鍵節(jié)點(diǎn),直到選擇出符合前述規(guī)模的足夠數(shù)量的關(guān)鍵節(jié)點(diǎn)為止;最后將所選關(guān)鍵節(jié)點(diǎn)對應(yīng)的類輸出為關(guān)鍵類集合。
5.根據(jù)權(quán)利要求4所述的xUnit框架下面向?qū)ο筌浖袦y試目標(biāo)的自動化選擇方法,其特征在于,一次迭代選擇一個關(guān)鍵節(jié)點(diǎn)的處理流程是:考慮已經(jīng)被選中的節(jié)點(diǎn),計算候選節(jié)點(diǎn)關(guān)鍵度指標(biāo)的折扣值δ;給定候選節(jié)點(diǎn)vi,令兩跳可達(dá)集內(nèi)已被選中的節(jié)點(diǎn)數(shù)量是ti1,同vi直接相鄰的父節(jié)點(diǎn)中已被選中的節(jié)點(diǎn)數(shù)量是ti2,前述父節(jié)點(diǎn)定義為終止節(jié)點(diǎn)為vi之有向邊的起始節(jié)點(diǎn);令p為影響概率;節(jié)點(diǎn)vi的折扣值δi計算如下:
δi=ti1+(κi-ti1)×ti2×p
候選節(jié)點(diǎn)的權(quán)重w定義為關(guān)鍵度指標(biāo)和折扣值的差,即節(jié)點(diǎn)vi的權(quán)重wi的計算如下:
wi=κi-δi
根據(jù)節(jié)點(diǎn)權(quán)重,找出候選節(jié)點(diǎn)中權(quán)重最大的節(jié)點(diǎn),作為本次迭代所選擇的關(guān)鍵節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求5所述的xUnit框架下面向?qū)ο筌浖袦y試目標(biāo)的自動化選擇方法,其特征在于,步驟3)過程為:對于關(guān)鍵類集中的每一個關(guān)鍵類,首先根據(jù)關(guān)鍵類中的每一個公共方法(public)編寫對應(yīng)的測試方法;然后采用隨機(jī)測試或符號執(zhí)行方法達(dá)到既定的測試覆蓋要求。
7.根據(jù)權(quán)利要求6所述的xUnit框架下面向?qū)ο筌浖袦y試目標(biāo)的自動化選擇方法,其特征在于,達(dá)到既定的測試覆蓋的具體過程為:當(dāng)給定關(guān)鍵類c1,要求對以c1為起始節(jié)點(diǎn)的所有關(guān)聯(lián)覆蓋至少n次,n根據(jù)測試需求和測試成本決定;如果關(guān)聯(lián)對應(yīng)不止1個依賴關(guān)系,則要求對所有相應(yīng)的依賴關(guān)系覆蓋至少1次;達(dá)到測試覆蓋要求,所有關(guān)鍵類處理完畢后,在xUnit框架支持下執(zhí)行測試用例,完成自動化測試。
8.根據(jù)權(quán)利要求7所述的xUnit框架下面向?qū)ο筌浖袦y試目標(biāo)的自動化選擇方法,其特征在于對類之間關(guān)聯(lián)的覆蓋,由類之間的依賴關(guān)系決定,對應(yīng)依賴關(guān)系的6種情況;給定關(guān)聯(lián)<c1,c2>,關(guān)聯(lián)覆蓋定義如下:
情況1.對類c1進(jìn)行實(shí)例化;
情況2.對類c2實(shí)例化,賦予類c1中相應(yīng)的域變量(field);
情況3.執(zhí)行類c1中的相應(yīng)方法,返回非空(null)的類c2對象實(shí)例;
情況4.對類c2實(shí)例化,在調(diào)用類c1中相應(yīng)方法時,賦予類型為c2的參數(shù);
情況5.對類c2實(shí)例化,賦予類c1相應(yīng)方法實(shí)現(xiàn)中類型為c2的局部變量;
情況6.調(diào)用類c1中的相應(yīng)方法,執(zhí)行其中的針對類c2方法的調(diào)用語句。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京大學(xué)鎮(zhèn)江高新技術(shù)研究院,未經(jīng)南京大學(xué)鎮(zhèn)江高新技術(shù)研究院許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310146574.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





