欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種支持表格驅(qū)動底層輸入的單元測試系統(tǒng)和方法

文檔序號:8412441閱讀:281來源:國知局
一種支持表格驅(qū)動底層輸入的單元測試系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及軟件測試技術(shù),特別是涉及軟件單元測試技術(shù)。
【背景技術(shù)】
[0002] 單元測試是軟件開發(fā)過程中保證代碼質(zhì)量,提升開發(fā)產(chǎn)能的重要手段。
[0003] 單元測試的基本方法是利用測試驅(qū)動代碼,設(shè)定輸入和預(yù)期輸出,執(zhí)行被測試程 序,自動判斷實際輸出是否符合預(yù)期。輸入數(shù)據(jù)和預(yù)期輸出稱為測試用例,也就是測試數(shù) 據(jù),這是單元測試工作的基本要素,而對輸入的賦值過程和判斷輸出的比較過程,則是單元 測試執(zhí)行過程的核心。
[0004] 實施單元測試的一個主要障礙是底層輸入問題。底層輸入,就是調(diào)用底層函數(shù)獲 得的輸入。底層函數(shù),就是被測試函數(shù)所調(diào)用的關(guān)聯(lián)函數(shù)。
[0005] 例如下面的C++語言代碼:
[0006]
【主權(quán)項】
1. 一種支持表格驅(qū)動底層輸入的單元測試系統(tǒng),包括測試驅(qū)動代碼,其特征在于,包 括: A:類型解析裝置,用于解析數(shù)據(jù)類型定義獲得類型信息; B:樹表裝置,由樹形控件和表格控件組成,用于樹狀顯示變量及其成員,并提供表格供 用戶填寫測試用例的輸入值; C:賦值裝置,用于將所述樹表裝置中的所述輸入值賦給變量,所述變量的數(shù)據(jù)類型包 括基本類型和復(fù)合類型; D:底層變量設(shè)定裝置,用于供用戶指定底層函數(shù)的底層變量,并將所述底層變量加入 裝置B,所述底層函數(shù),是指被測試函數(shù)調(diào)用的函數(shù),所述底層變量包括以下變量之一或以 下變量的任意組合: 所述底層函數(shù)的返回值、所述底層函數(shù)的輸出參數(shù)、所述底層函數(shù)改寫的成員變量、所 述底層函數(shù)改寫的全局變量, 所述底層變量的數(shù)據(jù)類型包括基本類型和復(fù)合類型; E:底層輸入設(shè)置裝置,用于查詢用戶在裝置B中是否設(shè)置了所述底層變量,及調(diào)用裝 置C和/或讓所述底層函數(shù)繼續(xù)執(zhí)行; F:函數(shù)調(diào)用攔截裝置,用于攔截所述底層函數(shù)的調(diào)用,并調(diào)用裝置E。
2. 根據(jù)權(quán)利要求1所述的單元測試系統(tǒng),其特征在于,所述類型信息包括:類型名稱、 內(nèi)存大小,各成員的成員名稱、類型名稱、偏移量。
3. 根據(jù)權(quán)利要求1所述的單元測試系統(tǒng),其特征在于,所述賦值裝置包括:遞歸掃描變 量及其成員,對需要初始化的變量或成員初始化,對于對應(yīng)輸入值不為空的變量或成員,拷 貝對應(yīng)輸入值;所述對應(yīng)輸入值,是指所述樹表裝置中,變量或成員對應(yīng)的當(dāng)前用例的輸入 值。
4. 根據(jù)權(quán)利要求1所述的單元測試系統(tǒng),其特征在于,裝置D所述的底層變量進(jìn)一步包 括:用于控制所述底層函數(shù)是否直接跳過的變量。
5. 根據(jù)權(quán)利要求1所述的單元測試系統(tǒng),其特征在于,裝置D所述的底層變量進(jìn)一步包 括:所述底層函數(shù)的被調(diào)用次數(shù),裝置B所述的表格進(jìn)一步包括:供用戶填寫測試用例的輸 出值的單元格。
6. 根據(jù)權(quán)利要求1所述的單元測試系統(tǒng),其特征在于,裝置D進(jìn)一步包括:解析被測試 代碼獲得可能的底層變量列表供用戶選擇。
7. 根據(jù)權(quán)利要求1至6任一權(quán)利要求所述的單元測試系統(tǒng),其特征在于,裝置F包括以 下步驟之一或以下步驟的任意組合: 函數(shù)鉤子,用于在所述底層函數(shù)被調(diào)用時跳轉(zhuǎn)到裝置E; 指令跳轉(zhuǎn),用于在所述底層函數(shù)被調(diào)用前跳轉(zhuǎn)到裝置E; 插入攔截代碼,用于在所述底層函數(shù)插入攔截代碼,所述攔截代碼在所述底層函數(shù)實 現(xiàn)代碼執(zhí)行前執(zhí)行,并調(diào)用裝置E; 代碼替換,用于將對所述底層函數(shù)的調(diào)用替換為對代替函數(shù)的調(diào)用,所述代替函數(shù),是 指具有調(diào)用裝置E功能的代替所述底層函數(shù)的函數(shù)。
8. 根據(jù)權(quán)利要求7所述的單元測試系統(tǒng),其特征在于,所述代碼替換包括:如果所述底 層函數(shù)未實現(xiàn)或被隔離,則用與所述底層函數(shù)同名的函數(shù)代替所述底層函數(shù);否則用與所 述底層函數(shù)不同名的函數(shù)作為所述代替函數(shù),并直接修改被測試代碼或通過預(yù)編譯機(jī)制間 接修改被測試代碼,將對所述底層函數(shù)的調(diào)用替換為對所述代替函數(shù)的調(diào)用。
9. 一種支持表格驅(qū)動底層輸入的單元測試方法,包括測試驅(qū)動代碼,其特征在于,包 括: A:類型解析步驟,用于解析數(shù)據(jù)類型定義獲得類型信息; B:樹表步驟,所述樹表由樹形控件和表格控件組成,用于樹狀顯示變量及其成員,并提 供表格供用戶填寫測試用例的輸入值; C:賦值步驟,用于將所述樹表中的所述輸入值賦給變量,所述變量的數(shù)據(jù)類型包括基 本類型和復(fù)合類型; D:底層變量設(shè)定步驟,用于供用戶指定底層函數(shù)的底層變量,并將所述底層變量加入 所述樹表,所述底層函數(shù),是指被測試函數(shù)調(diào)用的函數(shù),所述底層變量包括以下變量之一或 以下變量的任意組合: 所述底層函數(shù)的返回值、所述底層函數(shù)的輸出參數(shù)、所述底層函數(shù)改寫的成員變量、所 述底層函數(shù)改寫的全局變量, 所述底層變量的數(shù)據(jù)類型包括基本類型和復(fù)合類型; E:底層輸入設(shè)置步驟,用于查詢用戶在所述樹表中是否設(shè)置了所述底層變量,及調(diào)用 步驟C和/或讓所述底層函數(shù)繼續(xù)執(zhí)行; F:函數(shù)調(diào)用攔截步驟,用于攔截所述底層函數(shù)的調(diào)用。
10. -種根據(jù)要求1所述的單元測試系統(tǒng),其特征在于,用特征G代替特征B: G:表格裝置,用于供用戶填寫測試用例的輸入值。
【專利摘要】本發(fā)明公開了一種支持表格驅(qū)動底層輸入的單元測試系統(tǒng)和方法,包括:類型解析裝置,用于解析數(shù)據(jù)類型定義獲得類型信息;樹表裝置,由樹形控件和表格控件組成;賦值裝置,用于將樹表裝置中的輸入值賦給變量;底層變量設(shè)定裝置,用于供用戶指定底層變量并加入樹表;底層輸入設(shè)置裝置,用于查詢用戶設(shè)置的底層變量,及調(diào)用賦值裝置和/或讓底層函數(shù)繼續(xù)執(zhí)行;函數(shù)調(diào)用攔截裝置,用于攔截底層函數(shù)的調(diào)用,并調(diào)用底層輸入設(shè)置裝置。本發(fā)明使底層輸入由表格驅(qū)動,即完全由表格來控制底層輸入,簡化了測試數(shù)據(jù)的管理和維護(hù),提升了測試數(shù)據(jù)的可重用性。本發(fā)明解決了函數(shù)的調(diào)用耦合形成的單元測試障礙,使單元測試的效率大幅度提升。
【IPC分類】G06F11-36
【公開號】CN104731695
【申請?zhí)枴緾N201310703548
【發(fā)明人】不公告發(fā)明人
【申請人】廣州凱樂軟件技術(shù)有限公司
【公開日】2015年6月24日
【申請日】2013年12月19日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
正阳县| 乌拉特中旗| 车致| 宣汉县| 赫章县| 唐山市| 全南县| 泾川县| 顺昌县| 平罗县| 海盐县| 临泽县| 肃宁县| 景谷| 五原县| 调兵山市| 通化县| 绥阳县| 遂川县| 扎赉特旗| 鹿邑县| 永平县| 龙江县| 株洲县| 六盘水市| 汝城县| 惠东县| 砚山县| 蓬安县| 河南省| 宁蒗| 隆昌县| 都江堰市| 卓尼县| 湖南省| 古丈县| 育儿| 德令哈市| 咸丰县| 彰武县| 临汾市|