[發明專利]一種表格驅動的單元測試系統和方法有效
| 申請號: | 201310690605.3 | 申請日: | 2013-12-15 |
| 公開(公告)號: | CN104714881B | 公開(公告)日: | 2018-10-16 |
| 發明(設計)人: | 不公告發明人 | 申請(專利權)人: | 廣州凱樂軟件技術有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 510315 廣東省廣州市海*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 表格 驅動 單元測試 系統 方法 | ||
本發明公開了一種表格驅動的單元測試系統和方法,包括:類型解析裝置,用于解析數據類型定義獲得類型信息;樹表裝置,由樹形控件和表格控件組成;賦值裝置,用于將樹表裝置中的輸入值賦給變量,包括基本類型和復合類型;比較裝置,用于將樹表裝置中的輸出值與變量的實際值進行比較,并輸出測試失敗信息;測試驅動裝置,用于執行測試過程。本發明還可以增加回調裝置和類型替換裝置,使不便以使用表格驅動的特殊數據,也能方便地實現表格驅動。還可以提供數據分配、轉移、類型修改、驅動生成、顯示簡化表格等功能。利用本發明,無論是否涉及復合類型、數組、空指針等數據,都可以實現表格驅動,大幅降低單元測試的難度及綜合成本。
技術領域
本發明涉及軟件測試技術,特別是涉及軟件單元測試技術。
背景技術
單元測試是軟件開發過程中保證代碼質量,提升開發產能的重要手段。
單元測試的基本方法是利用測試驅動代碼,設定輸入和預期輸出,執行被測試程序,自動判斷實際輸出是否符合預期。輸入數據和預期輸出稱為測試用例,也就是測試數據,這是單元測試工作的基本要素,而對輸入的賦值過程和判斷輸出的比較過程,則是單元測試執行過程的核心。
傳統的單元測試過程是:手工編寫或使用工具生成測試驅動代碼來執行測試,由測試驅動代碼給變量賦輸入值,并由測試驅動代碼判斷輸出是否符合預期,也就是說,對輸入的賦值過程和判斷輸出的比較過程,是由測試驅動代碼直接完成的。例如下面的C++語言代碼:
其中add()是被測試函數,add_test()是測試函數,TEST_ASSERT是一個宏,其參數為一個布爾表達式,當該布爾表達式的計算結果為假時,表示被測試函數的實際計算結果不符合預期,向用戶輸出測試失敗信息。
add_test()的兩個用例意義是一樣的,只是寫法不同,后一種更清晰地劃分了輸入和輸出。現在以用例2做進一步說明:用例的輸入是:a=1,b=2,通過測試驅動代碼直接賦值,而預期輸出是:返回值為3,判斷實際輸出是否符合預期的比較過程,則通過表達式ret==3直接完成。
以上是傳統單元測試的工作過程示例,其中,對輸入的賦值過程和判斷輸出的比較過程是由測試驅動代碼直接完成的,單元測試已有幾十年歷史,出現了大量的開源或商業單元測試工具,但賦值和比較過程,基本上都采用這種方式。對傳統賦值和比較過程的一個改進思路是:使用宏語法對測試驅動代碼進行封裝,這種方式不適合于沒有預處理特性的語言,且賦值和比較過程仍然是由測試驅動代碼完成的,也無法滿足對復雜對象的處理。
傳統單元測試方式下,測試數據混合在測試驅動代碼中,而測試驅動代碼的數量往往是產品代碼的二至五倍,且測試驅動代碼本身也需要調試和維護,導致單元測試的綜合成本很高。如果將單元測試過程改為表格驅動,由表格來決定哪些變量需要設定輸入值及設定什么值,由表格來確定哪些變量需要判斷預期輸出以及預期輸出的值,那么,用戶只要在數據表格中建立和編輯測試數據,就可以高效地建立大量用例,測試數據也更易于維護和重用。同時,將減少和簡化測試驅動代碼,使測試驅動代碼更易以由工具生成,對于工具完全自動生成的測試驅動代碼,當產品代碼更新時,工具也可以自動刷新,用戶不需編寫、調試和維護大量的測試驅動代碼。總之,表格驅動的單元測試方式可以顯著降低單元測試的綜合成本。
已經有個別單元測試工具實現了測試數據的表格化,例如廣州凱樂軟件技術有限公司于2013年3月份發布的單元測試工具Visual Unit3.0。Visual Unit3.0的賦值和比較過程仍然是由測試驅動代碼直接完成的,只支持將測試驅動代碼中的基本類型的數據,如字符串、數字、字符等,移到表格中,并不是真正的表格驅動。下面是針對前面的示例,Visual Unit3.0的測試驅動代碼的摘錄:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州凱樂軟件技術有限公司,未經廣州凱樂軟件技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310690605.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種閃存數據管理方法及裝置
- 下一篇:一種海量文件的快速備份與恢復的方法





