[發明專利]xUnit框架下面向對象軟件中測試目標的自動化選擇方法有效
| 申請號: | 201310146574.5 | 申請日: | 2013-04-24 |
| 公開(公告)號: | CN103309805A | 公開(公告)日: | 2013-09-18 |
| 發明(設計)人: | 顧慶;陳道蓄 | 申請(專利權)人: | 南京大學鎮江高新技術研究院 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 江蘇圣典律師事務所 32237 | 代理人: | 賀翔 |
| 地址: | 212000 江蘇省鎮*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | xunit 框架 面向 對象 軟件 測試 目標 自動化 選擇 方法 | ||
技術領域
本發明涉及面向對象軟件的自動化測試中,關鍵測試目標的識別和選擇、以及測試用例設計問題;特別針對xUnit框架,以對象類為測試目標,在大量的對象類中選擇出關鍵的測試目標集合,據以設計測試用例,提高軟件測試性能和效率。
背景技術
xUnit框架又稱為單元測試框架,最初用于設計單元測試工具SUnit,測試面向對象編程語言SmallTalk所編寫的軟件。其后制作者將SUnit移植到Java語言,開發出著名的Java軟件單元測試框架JUnit。隨著JUnit的成功應用和推廣,xUnit框架被廣泛用于設計和開發各種編程語言的單元測試工具,其中包括AUnit、CUnit和CppUnit等,分別對應Ada語言、C語言和C++語言等。xUnit框架還推廣到Python、JavaScript、以及PHP等腳本語言。雖然被稱為單元測試框架,但是xUnit框架的功能并不局限于單元測試,可以拓展到集成測試甚至系統測試。目前xUnit框架已成為測試驅動開發理念的重要支持設施之一。
按照xUnit框架要求,測試人員或者開發人員編寫可以自動運行的測試用例(TestCase)。每一個測試用例針對一個測試目標;例如JUnit中的一個TestCase類對應被測Java軟件的一個對象類。測試用例中包含多個測試方法(TestMethod),針對測試目標中的組成元素;例如JUnit中TestCase類的每一個TestMethod方法對應Java類中定義的一個或多個方法。測試方法是最基本的執行單元,其中的重要成分是斷言(Assertion),用于判定測試用例執行是通過還是未通過。測試斷言根據測試目標的狀態來設定謂詞條件,測試時基于謂詞條件的判定值決定測試結果。多個測試用例組合在一起構成測試用例集(TestSuite)。xUnit框架以測試用例集為單位調度和執行測試用例,其中需要編寫測試代碼構建測試環境(TestContexts),主要完成多個測試目標的實例化和初始化。xUnit框架為測試人員和開發人員的有效合作提供便利,能夠提升軟件測試自動化程度,減少軟件測試的時間和成本。
目前軟件自動化測試技術主要分三大類,分別是隨機測試、基于搜索的測試、以及符號執行。其中隨機測試技術通過隨機地選擇函數/過程/方法調用序列和隨機確定輸入參數值來生成測試用例;可以增加測試用例的多樣性并保證測試結果的無偏性,但是不能保證軟件測試的覆蓋率,使得軟件缺陷檢測的幾率過低。基于搜索的測試將待覆蓋的測試目標轉換為目標函數,例如代碼距離等;采用啟發式搜索方法,例如遺傳算法、模擬退火等,搜索確定輸入參數值,進而生成測試用例。符號執行技術將軟件中的變量轉換為符號變量,將待覆蓋的測試目標轉換為路徑表達式,即路徑上分支謂詞的組合;通過求解路徑表達式生成對應的測試用例。這些自動化測試方法都需要考慮測試目標的設定問題。對于較大規模的計算機軟件,測試目標動輒上千,各個測試目標之間的依賴關系復雜;針對一個測試目標設計的測試用例,通常能夠覆蓋與其關聯的其他測試目標。另一方面,測試時間和成本有限,測試用例生成數量受到限制,不可能對所有測試目標設計和執行測試用例。有鑒于此,需要考慮測試目標的合理選擇問題:不應對所有測試目標一視同仁,而應該確定測試目標的優先級和排序,選擇關鍵測試目標集來設計和執行測試用例。
發明內容
本發明所要解決的技術問題是提供一種xUnit框架下面向對象軟件中測試目標的自動化選擇方法,該方法是在xUnit框架下對面向對象軟件實施自動化測試時,選擇關鍵測試目標集,并據以設計測試用例;從而以較少的測試用例數量達到較高的軟件測試覆蓋率,提高軟件缺陷檢測的幾率,使得自動化測試更具有導向性和目的性;有效提高軟件測試的性能和效率。。
本發明所述的一種xUnit框架下面向對象軟件中測試目標的自動化選擇方法,其包含以下步驟:
1)基于xUnit框架,以被測軟件中的對象類作為測試目標;通過分析對象類之間的依賴關系構建類依賴圖;
2)根據類依賴圖和測試需求,基于節點的兩跳可達集,選擇影響范圍最大的關鍵節點集合;
3)將關鍵節點集合映射為關鍵類集合,以關鍵類集合中的對象類作為測試目標,再按照xUnit框架設計和執行相應的測試用例。
上述步驟1)具體過程為:首先獲取被測軟件的源代碼,解析其中所有的類(Class);然后以每一個類為單位,根據類定義和類方法實現,分析類之間的依賴關系,確定類之間的關聯;最后將解析出的類映射為節點,關聯映射為有向邊,構建類依賴圖,該依賴圖為簡單的有向圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學鎮江高新技術研究院,未經南京大學鎮江高新技術研究院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310146574.5/2.html,轉載請聲明來源鉆瓜專利網。





