
【軟件介紹】
Wings是一款用于單元測(cè)試測(cè)試用例驅(qū)動(dòng)框架自動(dòng)生成工具,工具主要是生成單元測(cè)試驅(qū)動(dòng)代碼與測(cè)試數(shù)據(jù)。讓單元測(cè)試智能全自動(dòng)生成,測(cè)試非常高效。【軟件特色】
1.可以為任意復(fù)雜參數(shù)結(jié)構(gòu)c語(yǔ)言開(kāi)發(fā)的系統(tǒng)全自動(dòng)生成測(cè)試驅(qū)動(dòng)程序2.可完成對(duì)于被測(cè)試函數(shù)的參數(shù)進(jìn)行多層編譯解析,并完成復(fù)雜參數(shù)賦值的代碼的自動(dòng)生成。
3.支持被測(cè)函數(shù)引用的全局變量的分析和自動(dòng)賦值程序的生成。
4.能夠區(qū)分系統(tǒng)變量和用戶變量,對(duì)于復(fù)雜的系統(tǒng)變量可由用戶自定義賦值模板。
例如File類型,而不是把復(fù)雜的系統(tǒng)變量全部展開(kāi)。
5.支持多層次的可視化的數(shù)據(jù)表格來(lái)對(duì)變量進(jìn)行賦值,而無(wú)需關(guān)注驅(qū)動(dòng)程序本身。
數(shù)據(jù)表格可以表達(dá)任意深度和多層次的數(shù)據(jù)關(guān)系,用戶只需要對(duì)表格數(shù)據(jù)進(jìn)行編輯,自動(dòng)生成的驅(qū)動(dòng)程序會(huì)自動(dòng)完成表格數(shù)據(jù)的讀取和參數(shù)賦值的構(gòu)造過(guò)程。
6.Wings支持所有C語(yǔ)言的數(shù)據(jù)類型(基礎(chǔ)類型,結(jié)構(gòu)體,指針,數(shù)組,枚舉等)以及高層級(jí)數(shù)據(jù)結(jié)構(gòu)。
例如鏈表的分析和對(duì)應(yīng)的驅(qū)動(dòng)和數(shù)據(jù)表格框架的生成。
7.Wings生成的代碼與人工寫的非常相近,可讀性強(qiáng),自帶注釋和按照層次的縮進(jìn)和代·碼編排。
【功能介紹】
(1) 程序參數(shù)深度分析問(wèn)題Wings通過(guò)編譯器底層技術(shù),將輸入的源文件,按照函數(shù)為單位,形成模塊對(duì)象。對(duì)象中包含函數(shù)的輸入?yún)?shù),返回值類型等信息,供驅(qū)動(dòng)函數(shù)模塊和測(cè)試用例模塊使用。每個(gè)文件作為一個(gè)單元,針對(duì)其中的每個(gè)函數(shù)的每個(gè)參數(shù)進(jìn)行深度解析,對(duì)于嵌套類型,復(fù)雜類型等都可以實(shí)現(xiàn)精確的解析和分解,將復(fù)雜類型逐層講解為基礎(chǔ)數(shù)據(jù)類型,并產(chǎn)生參數(shù)結(jié)構(gòu)的描述文件(PSD)。
(2) 函數(shù)驅(qū)動(dòng)自動(dòng)生成模塊
依據(jù)psd文件的格式信息,自動(dòng)生成被測(cè)源程序的所有驅(qū)動(dòng)函數(shù),單元測(cè)試過(guò)程不再依賴開(kāi)發(fā)人員手動(dòng)編寫測(cè)試函數(shù),只需將生成的驅(qū)動(dòng)函數(shù)和被測(cè)源文件一起編譯,即可執(zhí)行測(cè)試并查看測(cè)試結(jié)果。測(cè)試驅(qū)動(dòng)自動(dòng)生成程序基于PSD描述,全自動(dòng)構(gòu)建驅(qū)動(dòng)被測(cè)程序運(yùn)行的所有參數(shù),必須的全局變量,并可根據(jù)復(fù)雜變量的層級(jí)結(jié)構(gòu)產(chǎn)生結(jié)構(gòu)化的測(cè)試驅(qū)動(dòng)程序,可以節(jié)省大量的單元測(cè)試用例的編寫時(shí)間。
(3) 測(cè)試數(shù)據(jù)自動(dòng)生成與管理
用于自動(dòng)生成測(cè)試數(shù)據(jù),測(cè)試數(shù)據(jù)與被測(cè)函數(shù)提取的信息相互對(duì)應(yīng),數(shù)據(jù)以一定的層次邏輯關(guān)系存儲(chǔ)在json文件中。數(shù)據(jù)和經(jīng)過(guò)分解和展開(kāi)后的數(shù)據(jù)類型是一一對(duì)應(yīng)的。這些數(shù)據(jù)用戶可以根據(jù)業(yè)務(wù)要求隨意邊際,并且用json文件進(jìn)行結(jié)構(gòu)化,層次化展示,非常的清晰。其中的測(cè)試數(shù)據(jù)包括全局變量值、被測(cè)函數(shù)調(diào)用時(shí)的參數(shù)值。
【使用方法】
下面我們嘗試使用wings來(lái)完成單元測(cè)試框架與測(cè)試數(shù)據(jù)的自動(dòng)生成(首先準(zhǔn)備好需要測(cè)試的C語(yǔ)言工程)第一步:打開(kāi)wings工具,選擇被測(cè)工程的主要目錄。

第二步:點(diǎn)擊工程操作中的分析生成, 對(duì)工程目錄下的.c文件進(jìn)行解析,保存為XML的格式,生成的文件保存在工程目錄下的FunXml與GlobalXml中,分別是函數(shù)信息與全局變量的信息,點(diǎn)擊驅(qū)動(dòng)文件結(jié)構(gòu)圖,即可看到對(duì)應(yīng)文件的函數(shù)結(jié)構(gòu)信息。

上圖可以查看所有.c文件的驅(qū)動(dòng)函數(shù),以及函數(shù)所對(duì)應(yīng)的參數(shù)信息與全局變量的信息。
第三步:點(diǎn)擊功能操作驅(qū)動(dòng)生成, 完成項(xiàng)目的驅(qū)動(dòng)框架自動(dòng)生成,驅(qū)動(dòng)文件保存在wings_projects下的Driver文件夾下。點(diǎn)擊驅(qū)動(dòng)文件,即可看到對(duì)應(yīng).c文件的驅(qū)動(dòng)生成代碼。

點(diǎn)擊單個(gè)函數(shù),可以高亮定位到函數(shù)所在位置,并且雙擊函數(shù)參數(shù),可以定位到每個(gè)參數(shù)的賦值單元,查看每個(gè)參數(shù)的具體驅(qū)動(dòng)賦值代碼。
第四步:點(diǎn)擊值功能操作的值生成按鈕,則對(duì)應(yīng)生成測(cè)試數(shù)據(jù)。

界面上顯示為單個(gè)函數(shù)的測(cè)試數(shù)據(jù),可依據(jù)需要修改測(cè)試次數(shù),重新生成測(cè)試數(shù)據(jù)文件,也可依據(jù)需要修改特定的測(cè)試數(shù)據(jù)。
第五步:將驅(qū)動(dòng)文件加載到所在工程目錄,與源文件一起編譯,即可運(yùn)行。
如果想查看對(duì)應(yīng)的函數(shù)信息與全局變量信息,則右鍵對(duì)應(yīng)打開(kāi)對(duì)應(yīng)的Parameter Struture Description(函數(shù)信息結(jié)構(gòu)體)與Global Parameter Struture Description(全局變量結(jié)構(gòu)圖)。
Parameter Struture Description(函數(shù)信息結(jié)構(gòu)體):顯示函數(shù)的名稱,參數(shù)個(gè)數(shù),參數(shù)類型以及復(fù)雜類型的展開(kāi)形式。
Global Parameter Struture Description(全局變量結(jié)構(gòu)圖):顯示全局變量的結(jié)構(gòu)信息。

使用過(guò)程中注意事項(xiàng):
(1)編譯源文件過(guò)程中,需要手動(dòng)注釋調(diào)源文件中的main函數(shù),wings將自動(dòng)生成調(diào)用驅(qū)動(dòng)函數(shù)的主函數(shù)。
(2)遇到特殊類型的賦值,可自行添加模板賦值方式,添加之后,再次生成驅(qū)動(dòng)文件即可。
例如:遇到FILEL類型的賦值,可在模板中添加對(duì)應(yīng)的賦值方式。



































