一種測試用例解析方法
【專利摘要】本發(fā)明提供一種測試用例解析方法,包括以下步驟:步驟S1、將測試用例文本逐行讀入內(nèi)存中;步驟S2、將單個測試用例片段拆分出來,每個測試用例片段作為單個元素依次寫入鏈表caseList中;步驟S3、以鏈表caseList為輸入,創(chuàng)建測試用例模型樹;步驟S4、保存測試用例模型。本發(fā)明的測試用例解析方法不需要重復(fù)地復(fù)制測試用例文本;將分離出的測試用例模型以XML格式存儲起來,便于二次開發(fā)和多樣化呈現(xiàn);任何應(yīng)用程序只需要對測試用例模型進行編程就能很方便地操縱和傳輸測試用例文本。
【專利說明】一種測試用例解析方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及軟件測試的【技術(shù)領(lǐng)域】,特別是涉及一種測試用例解析方法。
【背景技術(shù)】
[0002] 測試用例(Test Case,TC)是為某個特殊目標而編制的一組測試輸入、執(zhí)行條件以 及預(yù)期結(jié)果,以便測試某個程序路徑或核實是否滿足某個特定需求。在自動化測試的開發(fā) 過程中,測試腳本中往往包含測試用例說明,這部分文檔事實上就是測試用例本身。
[0003] 理論上來講,當(dāng)一個腳本開發(fā)完畢的同時,測試用例文本也應(yīng)開發(fā)完畢。但是,問 題在于,測試部的用例文本是存檔在單獨的庫中的。如果測試用例文本需要鏡像到多個不 同的地點,就需要額外的同步動作。如果同時有不止一個工程師在開發(fā)測試用例文本,那么 每個人都需要重復(fù)同樣的動作,這勢必造成巨大的浪費。
[0004] 另外,在自動化測試工作在實施過程中不可避免地需要引入各種平臺框架,這些 平臺框架通常都有自己的日志系統(tǒng),其中信息部分都會需要測試用例文本作為支持。因此, 對于多種平臺框架,所需的測試用例文本呈現(xiàn)多樣性的需要。
[0005] 現(xiàn)有技術(shù)中,申請?zhí)枮?01110362223. 9、發(fā)明名稱為《測試用例與測試腳本同步的 方法及裝置》的中國專利中公開一種測試用例與測試腳本同步的方法,其包括:依次掃描測 試腳本目錄中包含的每一個測試腳本,確定該測試腳本發(fā)生變化時,獲得該測試腳本的腳 本信息,所述腳本信息包括腳本標識;根據(jù)預(yù)先存儲的腳本標識與統(tǒng)一標識符的映射關(guān)系, 查找所述腳本標識對應(yīng)的統(tǒng)一標識符;將發(fā)生變化的測試腳本的腳本信息和查找到的統(tǒng)一 標識符提交至用例管理TC系統(tǒng),指示所述TC系統(tǒng)對自身存儲的、所述統(tǒng)一標識符對應(yīng)的測 試用例與發(fā)生變化的測試腳本進行同步操作。由上可知,該申請是通過檢測腳本變化從而 在TC管理系統(tǒng)中進行標識,無法解決現(xiàn)有技術(shù)中測試用例文本多樣性呈現(xiàn)和同步的問題。
[0006] 另外,申請?zhí)枮?01310317357. 8、發(fā)明名稱為《一種基于XML的測試用例復(fù)用方 法》的中國專利申請中公開一種基于XML的測試用例復(fù)用方法,其具體復(fù)用過程為:一、測 試人員根據(jù)被測試軟件的功能特點,定義需要的測試用例類型;二、根據(jù)所定義的測試用例 從測試用例庫中查找滿足要尋求的測試用例;三、如果測試用例庫中可以找到需要的測試 用例,則從中提取出可復(fù)用的測試用例,程序結(jié)束;四、如果測試用例庫中無法找到需要的 測試用例,則設(shè)計此測試用例并用XML形式表示,驗證其正確性,如果正確,添加到測試用 例庫中中,以便以后進行復(fù)用,程序結(jié)束。由上可知,該申請采用直接手動方式來編輯出XML 測試用例,導(dǎo)致效率較低,操作較為復(fù)雜。
【發(fā)明內(nèi)容】
[0007] 鑒于以上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種測試用例解析方法, 定義了一個標準的基于XML的測試用例模型(Test Case Model,TCM),并提出了一種用于 將某種特定格式的測試用例文本轉(zhuǎn)化為TCM的方法,從而簡化自動化測試開發(fā)的過程,提 高工作效率。
[0008] 為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種測試用例解析方法,包括以下 步驟:步驟S1、將測試用例文本逐行讀入內(nèi)存中;步驟S2、將單個測試用例片段拆分出來, 每個測試用例片段作為單個元素依次寫入鏈表caseList中;步驟S3、以鏈表caseList為 輸入,創(chuàng)建測試用例模型樹;步驟S4、保存測試用例模型。
[0009] 根據(jù)上述的測試用例解析方法,其中:所述測試用例文本須包括以下關(guān)鍵字:測 試用例邊界線、測試目標、測試case的位置、所在模塊、腳本名字、測試步驟和測試結(jié)果;
[0010] 所述測試用例邊界線由若干個短劃線組成;
[0011] 所述測試目標代表測試用例的測試標的,采用單行文本類型;
[0012] 所述測試case的位置代表case存儲位置,采用單行文本類型;
[0013] 所述所在模塊代表測試case文本屬于哪個自動化測試模塊,采用單行文本類型;
[0014] 所述腳本名字代表所在測試腳本的名字,采用單行文本類型;
[0015] 所述測試步驟代表一系列測試操作動作,采用多行文本類型;
[0016] 所述測試結(jié)果代表一系列期望出現(xiàn)的結(jié)果標準值,采用多行文本類型。
[0017] 進一步地,根據(jù)上述的測試用例解析方法,其中:所述步驟S2中,利用測試用例邊 界線將單個測試用例片段拆分出來。
[0018] 根據(jù)上述的測試用例解析方法,其中:所述步驟S3中,循環(huán)讀取鏈表caseList的 元素,并將讀取的元素解析后掛載到測試用例模型樹根上來創(chuàng)建測試用例模型樹。
[0019] 根據(jù)上述的測試用例解析方法,其中:所述步驟S3中,創(chuàng)建測試用例模型樹包括 以下步驟:
[0020] 步驟S41、創(chuàng)建空的測試用例模型;
[0021] 步驟S42、判斷從鏈表caseLine中獲取一個元素是否成功,若是,轉(zhuǎn)入步驟S43 ;若 否,流程結(jié)束。
[0022] 步驟S43、創(chuàng)建單個case子樹,將新case子樹掛載到測試用例模型樹根上,轉(zhuǎn)入步 驟 S42。
[0023] 進一步地,根據(jù)上述的測試用例解析方法,其中:創(chuàng)建單個case子樹時,對于單行 文本信息,分別取出信息,將其制作成case子樹的葉子;對于多行文本信息,轉(zhuǎn)化成節(jié)點 時,需要首先提取多行文本信息,再制作成步驟節(jié)點。
[0024] 更進一步地,根據(jù)上述的測試用例解析方法,其中:提取多行文本信息時,利用首 位行正則表達式匹配的方法,從單個測試用例文本中獲取對應(yīng)的多行片段。
[0025] 根據(jù)上述的測試用例解析方法,其中:所述步驟S4中,測試用例模型保存到任意 磁盤位置上。
[0026] 根據(jù)上述的測試用例解析方法,其中:所述測試用例模型采用XML格式。
[0027] 如上所述,本發(fā)明的測試用例解析方法,具有以下有益效果:
[0028] (1)不需要重復(fù)地復(fù)制測試用例文本;
[0029] (2)將分離出的測試用例文本以XML格式存儲起來,便于二次開發(fā)和多樣化呈現(xiàn);
[0030] (3)任何應(yīng)用程序只需要對TCM進行編程就能很方便地操縱和傳輸用例文本。
【專利附圖】
【附圖說明】
[0031] 圖1顯示為本發(fā)明的TCM模型的結(jié)構(gòu)示意圖;
[0032] 圖2顯示為本發(fā)明的測試用例解析方法的流程圖;
[0033] 圖3顯示為本發(fā)明的裁剪用例的流程圖;
[0034] 圖4顯示為本發(fā)明的創(chuàng)建TCM樹的流程圖;
[0035] 圖5(a)顯示為本發(fā)明的創(chuàng)建單個case子樹的前半部分的流程圖;
[0036] 圖5(b)顯示為本發(fā)明的創(chuàng)建單個case子樹的后半部分的流程圖;
[0037] 圖6顯示為本發(fā)明的提取多行文本的流程圖;
[0038] 圖7顯示為本發(fā)明的多行文本剪切的流程圖;
[0039] 圖8顯示為本發(fā)明的葉子結(jié)點生成的流程圖。
[0040] 圖9(a)顯示為本發(fā)明的制作步驟節(jié)點的前半部分流程圖;
[0041] 圖9(b)顯示為本發(fā)明的制作步驟節(jié)點的后半部分流程圖。
【具體實施方式】
[0042] 以下通過特定的具體實例說明本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書 所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的具體實 施方式加以實施或應(yīng)用,本說明書中的各項細節(jié)也可以基于不同觀點與應(yīng)用,在沒有背離 本發(fā)明的精神下進行各種修飾或改變。
[0043] 需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想, 遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪 制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可 能更為復(fù)雜。
[0044] 本發(fā)明的測試用例解析方法輸入一份測試用例文本,輸出是一份稱之為TCM的 XML格式的文本,從而為后續(xù)的測試用例的自動化管理提供標準模型。
[0045] 下面將分別介紹作為輸入的測試用例文本和作為輸出的TCM。
[0046] 具體地,測試用例文本的示例如下:
[0047] ---------------------------------------------------------------------
[0048] cdrouter_icmp_l
[0049] 測試目標:驗證ICMP Ping操作是否能正確通過無線路由器
[0050] 測試 case 所在 CDRouter 位置:
[0051] 所在模塊:icmp. tcl
[0052] 腳本名字:cdrouter_icmp_l
[0053] 測試步驟:
[0054] 步驟1 :按照拓撲將⑶Router和被測設(shè)備連接。
[0055] 從 CDRouter LAN 測 192. 168. 2. 101 向 Internet 側(cè)遠端主機 3. 3. 3. 3 發(fā)起 pinglO 次。
[0056] 步驟2 :測試IOping響應(yīng)是否均可以收到。
[0057] 測試結(jié)果:
[0058] 步驟1 :抓包可以看到每次ping有兩個ICMP Echo Request包可以抓到,一個是 源IP192. 168. 2. 101,第二個是經(jīng)過路由器后轉(zhuǎn)為源IP :192. 168. 200. 2。
[0059] the first package :source IP :192. 168. 2. 101, dst IP :3. 3. 3. 3
[0060] the second package :source IP :192. 168. 200. 2, dst IP :3. 3. 3. 3
[0061] 步驟2 :10次ping響應(yīng)ICMP Echo R印Iy均可以收到。
[0062] 抓包可以看到每次ping有兩個響應(yīng)包,一個是接收者是路由器的WAN 口(目的 IP)是 196. 168. 200. 2,第二個是客戶端側(cè)(CDRouter LAN 側(cè))IP 是 192. 168. 2. 101
[0063] the first package :source IP :3. 3. 3. 3, dst IP :192. 168. 200. 2
[0064] the second package :source IP :3. 3. 3. 3, dst IP :192. 168. 2. 101
[0065] ---------------------------------------------------------------------
[0066] 其中,需要說明的是,除了用例名和用例邊界線之間不允許有空行之外,其他空行 不受限。由于程序通過關(guān)鍵字捕獲信息,所以測試用例文本中的關(guān)鍵字是不能夠錯的,共有 7種,分別如下:
[0067] :代表測試用例邊界線,由若干個短劃線組成。
[0068] 測試目標:代表測試用例的測試標的,采用單行文本類型。
[0069] 測試用例(case)在CDRouter中的位置:代表case存儲位置,采用單行文本類型。
[0070] 所在模塊:代表測試case文本屬于哪個自動化測試模塊;通常是一個腳本文件名 字,采用單行文本類型。
[0071] 腳本名字:代表所在測試腳本的名字,采用單行文本類型。
[0072] 測試步驟:代表一系列測試操作動作,采用多行文本類型。其中,每個步驟關(guān)鍵字 的后面跟著一個阿拉伯?dāng)?shù)字表示步驟序號,該序號不能是中文或羅馬文字等其它類型的字 符。
[0073] 測試結(jié)果:代表一系列期望出現(xiàn)的結(jié)果標準值;通常與具體的測試步驟有關(guān)系, 采用多行文本類型。
[0074] 具體地,作為輸出的TCM與測試用例文本相對應(yīng),TCM的具體示例如下:
[0075]
【權(quán)利要求】
1. 一種測試用例解析方法,其特征在于:包括以下步驟: 步驟S1、將測試用例文本逐行讀入內(nèi)存中; 步驟S2、將單個測試用例片段拆分出來,每個測試用例片段作為單個元素依次寫入鏈 表 caseList 中; 步驟S3、以鏈表caseList為輸入,創(chuàng)建測試用例模型樹; 步驟S4、保存測試用例模型。
2. 根據(jù)權(quán)利要求1所述的測試用例解析方法,其特征在于:所述測試用例文本須包括 以下關(guān)鍵字:測試用例邊界線、測試目標、測試用例的位置、所在模塊、腳本名字、測試步驟 和測試結(jié)果; 所述測試用例邊界線由若干個短劃線組成; 所述測試目標代表測試用例的測試標的,采用單行文本類型; 所述測試用例的位置代表測試用例的存儲位置,采用單行文本類型; 所述所在模塊代表測試用例文本屬于哪個自動化測試模塊,采用單行文本類型; 所述腳本名字代表所在測試腳本的名字,采用單行文本類型; 所述測試步驟代表一系列測試操作動作,采用多行文本類型; 所述測試結(jié)果代表一系列期望出現(xiàn)的結(jié)果標準值,采用多行文本類型。
3. 根據(jù)權(quán)利要求2所述的測試用例解析方法,其特征在于:所述步驟S2中,利用測試 用例邊界線將單個測試用例片段拆分出來。
4. 根據(jù)權(quán)利要求1所述的測試用例解析方法,其特征在于:所述步驟S3中,循環(huán)讀取 鏈表caseList的元素,并將讀取的元素解析后掛載到測試用例模型樹根上來創(chuàng)建測試用 例模型樹。
5. 根據(jù)權(quán)利要求1所述的測試用例解析方法,其特征在于:所述步驟S3中,創(chuàng)建測試 用例模型樹包括以下步驟: 步驟S41、創(chuàng)建空的測試用例模型; 步驟S42、判斷從鏈表caseLine中獲取一個元素是否成功,若是,轉(zhuǎn)入步驟S43 ;若否, 流程結(jié)束。 步驟S43、創(chuàng)建單個case子樹,將新case子樹掛載到測試用例模型樹根上,轉(zhuǎn)入步驟 S42。
6. 根據(jù)權(quán)利要求5所述的測試用例解析方法,其特征在于:創(chuàng)建單個case子樹時,對 于單行文本信息,分別取出信息,將其制作成case子樹的葉子;對于多行文本信息,轉(zhuǎn)化成 節(jié)點時,需要首先提取多行文本信息,再制作成步驟節(jié)點。
7. 根據(jù)權(quán)利要求6所述的測試用例解析方法,其特征在于:提取多行文本信息時,利用 首位行正則表達式匹配的方法,從單個測試用例文本中獲取對應(yīng)的多行片段。
8. 根據(jù)權(quán)利要求1所述的測試用例解析方法,其特征在于:所述步驟S4中,測試用例 模型保存到任意磁盤位置上。
9. 根據(jù)權(quán)利要求1所述的測試用例解析方法,其特征在于:所述測試用例模型采用XML 格式。
【文檔編號】G06F11/36GK104391796SQ201410740967
【公開日】2015年3月4日 申請日期:2014年12月5日 優(yōu)先權(quán)日:2014年12月5日
【發(fā)明者】張鑫 申請人:上海斐訊數(shù)據(jù)通信技術(shù)有限公司