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

單元測試數(shù)據(jù)生成方法和單元測試數(shù)據(jù)生成系統(tǒng)的制作方法_3

文檔序號:8412333閱讀:來源:國知局
據(jù)分析。
[0051]在上述技術(shù)方案中,優(yōu)選地,執(zhí)行單元204包括:根據(jù)每條分支路徑的執(zhí)行條件表達式,為每條分支路徑生成參數(shù)范圍表達式。
[0052]在該技術(shù)方案中,可以根據(jù)源代碼分析結(jié)果中的執(zhí)行條件表達式,以及對每條分支路徑進行單獨數(shù)據(jù)分析的分析結(jié)果,生成參數(shù)范圍表達式。
[0053]在上述技術(shù)方案中,優(yōu)選地,生成單元206具體用于:根據(jù)參數(shù)類型,查找類型約束表,并根據(jù)類型約束表的預(yù)設(shè)規(guī)則,生成與參數(shù)類型對應(yīng)的參數(shù)類型對象,以及根據(jù)生成的參數(shù)范圍表達式,查找數(shù)據(jù)生成表,并根據(jù)數(shù)據(jù)生成表,生成參數(shù)類型對象對應(yīng)的參數(shù)數(shù)據(jù),以供生成單元測試數(shù)據(jù)。
[0054]在該技術(shù)方案中,可以根據(jù)確定的參數(shù)類型和參數(shù)范圍表達式,分別在類型約束表和數(shù)據(jù)生成表中進行查找操作,從而得到最終的測試數(shù)據(jù)。通過本技術(shù)方案,可以自動生成單元測試數(shù)據(jù),以直接應(yīng)用于測試方法,使測試人員省去了繁瑣的測試用例數(shù)據(jù)準備工作,不再需要測試人員去完成分析代碼結(jié)構(gòu)、準備測試數(shù)據(jù)、分析測試用例等工作,將手工準備方式變?yōu)樽詣踊煞椒?,大量?jié)約了開發(fā)時間和開發(fā)成本,提高了測試效率。
[0055]在上述技術(shù)方案中,優(yōu)選地,參數(shù)類型包括以下至少之一或其組合:簡單類型、自定義類型、通用類型。
[0056]在該技術(shù)方案中,簡單類型包括int、f 1at等8種基本參數(shù)類型,自定義類型即用戶自定義的數(shù)據(jù)類型,通用類型則為Java定義的常用類和接口。當然,參數(shù)類型也可以是根據(jù)需要除此之外的其他類型。
[0057]圖3示出了根據(jù)本發(fā)明的另一個實施例的單元測試數(shù)據(jù)生成系統(tǒng)的框圖。
[0058]如圖3所示,根據(jù)本發(fā)明的另一個實施例的單元測試數(shù)據(jù)生成系統(tǒng),可以實現(xiàn)以下步驟:
[0059]1、自動化程序源代碼分析:自動分析程序源代碼結(jié)構(gòu),確定方法分支控制流,這些分支控制流可以用來獲得測試該程序代碼需要的測試用例代碼分支路徑。
[0060]2、自動化方法參數(shù)類型分析與參數(shù)構(gòu)造:分析方法參數(shù)類型,針對特殊的方法類型構(gòu)造特殊的測試數(shù)據(jù),而針對代碼中的復(fù)雜數(shù)據(jù)類型進行復(fù)雜類型的參數(shù)構(gòu)造,并將生成的對象存儲到一個持久化對象文件中,以供測試的時候讀取。
[0061]3、自動化數(shù)據(jù)生成與回滾:根據(jù)分析結(jié)果自動生成測試數(shù)據(jù),所得的測試數(shù)據(jù)可以直接用于測試,另外,還可以備份指定數(shù)據(jù)庫表的數(shù)據(jù),測試完成后數(shù)據(jù)回滾到單元測試執(zhí)行之前的狀態(tài),執(zhí)行測試案例按規(guī)則手動執(zhí)行,或者自動執(zhí)行
[0062]單元測試的測試用例設(shè)計有兩種方法,即白盒測試和黑盒測試。白盒測試按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來驗證產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進行,驗證程序中的每條通路是否按預(yù)定要求正確工作,其主要包括條件測試、分支測試和數(shù)據(jù)流測試等。而黑盒測試則通過測試來檢驗每個功能是否能正常使用,黑盒測試不考慮程序內(nèi)部接口和內(nèi)部結(jié)構(gòu),而是在程序接口進行測試,只檢查程序功能是否按照設(shè)計功能要求正確實現(xiàn),黑盒測試用例設(shè)計方法包含等價類劃分、邊界值分析、異常測試以及冒煙測試等。本申請的單元測試數(shù)據(jù)生成系統(tǒng)采用分支條件測試以及數(shù)據(jù)流分析的方法對代碼結(jié)構(gòu)進行白盒測試分析,并采用等價類劃分和邊界值分析的黑盒測試方法進行測試用例分析和測試數(shù)據(jù)的自動生成,最終產(chǎn)生測試用例的用例數(shù)據(jù)。
[0063]測試程序單元進入本申請的單元測試數(shù)據(jù)生成系統(tǒng)之后,首先會被類型分析引擎和路徑分析引擎同時進行處理,類型分析引擎和數(shù)據(jù)分析引擎在完成分析之后將分析結(jié)果傳入數(shù)據(jù)分析引擎進行進一步的分析,同時類型分析引擎將會調(diào)用數(shù)據(jù)生成引擎進行特定參數(shù)類型的約束數(shù)據(jù)生成。數(shù)據(jù)分析引擎根據(jù)類型分析引擎和數(shù)據(jù)分析引擎獲得的分析結(jié)果,調(diào)用搜索引擎對規(guī)則庫進行搜索,獲得對應(yīng)結(jié)果的生成表達式,根據(jù)表達式生成數(shù)據(jù),最終獲得測試用例的測試數(shù)據(jù)。
[0064]如圖3所示,本申請的單元測試數(shù)據(jù)生成系統(tǒng)具體包括:
[0065]1.類型分析引擎:類型分析引擎主要針對方法參數(shù)的類型進行分析,并且根據(jù)分析得到的參數(shù)類型進行相應(yīng)的處理。類型分析引擎將方法參數(shù)分為三種類型:簡單類型,包括int,float等8種基本類型;自定義類型,即指用戶自定義的數(shù)據(jù)類型;通用類型,即Java定義的常用類和接口。這三種類型都需要將分析結(jié)果傳遞給數(shù)據(jù)分析引擎結(jié)合路徑分析引擎得到的范圍表達式結(jié)果生成參數(shù)范圍表達式。同時,自定義類型和通用類型等復(fù)雜數(shù)據(jù)類型直接傳遞給數(shù)據(jù)生成引擎,數(shù)據(jù)生成引擎將會調(diào)用搜索引擎在類型約束表中查找對應(yīng)類型需要測試的約束列表,并根據(jù)相應(yīng)的約束規(guī)則生成對象。
[0066]2.路徑分析引擎:路徑分析引擎采用條件測試(Condit1n Testing)和分支測試(Branch Testing)的方法對需要進行測試方法的源代碼進行分析,得出該方法中需要進行測試的路徑。其中,分支條件測試可以決定要執(zhí)行的路徑條數(shù),通過分析源代碼,確定對該方法測試覆蓋率達到100%需要執(zhí)行多少條測試路徑。路徑分析引擎通過分析輸入方法的源代碼,分析方法源代碼中的分支條件的數(shù)目,計算需要測試的路徑以及每條路徑執(zhí)行的條件以及執(zhí)行的語句,并且得出滿足這些執(zhí)行路徑需要滿足的參數(shù)條件。源代碼在經(jīng)過路徑分析引擎之后,將會被肢解為多條可執(zhí)行路徑,并得出滿足這些路徑的條件表達式,在得到這些信息之后,便可針對每條路徑進行單獨的數(shù)據(jù)分析。
[0067]3.數(shù)據(jù)分析引擎:在獲取到每一條路徑及其路徑條件表達式之后,數(shù)據(jù)分析引擎針對單條路徑上的參數(shù)條件進行分析。轉(zhuǎn)換路徑條件表達式為參數(shù)范圍表達式。
[0068]其中,方法參數(shù)分為簡單參數(shù)和復(fù)雜參數(shù)兩種。數(shù)據(jù)分析引擎將會分析每一個條件表達式中的參數(shù)是簡單參數(shù)還是復(fù)雜參數(shù),并且針對復(fù)雜參數(shù),數(shù)據(jù)分析引擎將會分析條件表達式中的參數(shù)是調(diào)用方法還是調(diào)用屬性,并且進行相應(yīng)的記錄。針對每一個參數(shù),數(shù)據(jù)分析引擎將會生成每一個參數(shù)的范圍表達式,并且記錄相應(yīng)的參數(shù)信息,如果該參數(shù)受到其他方法參數(shù)的影響,則選取其他參數(shù)表達該參數(shù)。
[0069]其中選取標準為:如果參數(shù)在條件表達式中出現(xiàn)次數(shù)最多,則選取該參數(shù)作為第一分析基點,使用該參數(shù)表達其他參數(shù),其次將出現(xiàn)第二多的參數(shù)作為第二分析基點,在表達式中分析基點不存在或者存在多個參數(shù)的時候,優(yōu)先考慮使用分析基點和第二分析基點,依次類推。最終得到每一個參數(shù)的表達式,并且按照分析基點的順序進行排列。這里需要注意的是,復(fù)雜類型在條件表達式中無論是參數(shù)調(diào)用還是屬性調(diào)用,都視為一個變量進行分析。
[0070]4.數(shù)據(jù)生成引擎:在獲得每一個參數(shù)的范圍表達式之后,需要對這些參數(shù)進行生成。數(shù)據(jù)生成引擎需要完成兩個工作,第一個工作為接收來自類型分析引擎的請求,根據(jù)類型分析引擎?zhèn)鬟f過來的類型,調(diào)用規(guī)則搜索引擎查找類型約束表,根據(jù)類型約束表的規(guī)則,生成對應(yīng)的參數(shù)類型對象。第二個工作為接收來自數(shù)據(jù)分析引擎?zhèn)鬟f過來的范圍表達式,規(guī)則搜索引擎查找數(shù)據(jù)生成表,根據(jù)數(shù)據(jù)生成表達式,生成對應(yīng)的參數(shù)數(shù)據(jù)。對于每
當前第3頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
黄冈市| 小金县| 东光县| 宁都县| 客服| 渭源县| 济源市| 雅安市| 黎平县| 巨鹿县| 股票| 建水县| 东方市| 厦门市| 辽阳县| 松桃| 桦甸市| 巫山县| 高碑店市| 拉萨市| 文登市| 琼海市| 樟树市| 镇平县| 广州市| 淮滨县| 常熟市| 商都县| 白银市| 寿宁县| 息烽县| 宝应县| 西平县| 潮安县| 马鞍山市| 兰州市| 东乡县| 巴中市| 桐城市| 罗城| 龙南县|