一種生成測試用例的方法和裝置制造方法
【專利摘要】本發明實施例公開了一種生成測試用例的方法和裝置,其中所述方法包括:創建測試用例模型;對需求文檔進行掃描,以獲取所述需求文檔中的測試信息,所述測試信息包括消息類型、消息示例和驗證路徑表;對驗證路徑表中的各分支路徑進行遍歷,并根據所述消息類型和消息示例生成與所述各分支路徑對應的用例消息和預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息;將與所述各分支路徑對應的關鍵路徑用例信息存儲于所述測試用例模型中,得到第一測試用例集。采用本發明,可自動生成測試用例,同時,通過需求文檔生成測試用例可以做到測試先行的效果,即在被測對象開發前就可以自動生成測試用例以協助開發。
【專利說明】一種生成測試用例的方法和裝置
【技術領域】
[0001]本發明涉及計算機【技術領域】,尤其涉及一種生成測試用例的方法和裝置。
【背景技術】
[0002]自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了并通過評審之后,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。
[0003]隨著企業業務量的增長,軟件規模與復雜度增長越來越快,使得自動化測試變得越來越重要。測試用例是自動化測試的核心,然而,測試用例仍需要大量的人力進行編寫與維護,增加了自動化測試的成本。
【發明內容】
[0004]本發明實施例所要解決的技術問題在于,提供一種生成測試用例的方法和裝置,可根據需求文檔自動生成測試用例。
[0005]為了解決上述技術問題,本發明實施例提供了一種生成測試用例的方法,包括:
[0006]創建測試用例模型,所述測試用例模型用于存儲用例消息和預期返回結果;
[0007]對需求文檔進行掃描,以獲取所述需求文檔中的測試信息,所述測試信息包括消息類型、消息示例和驗證路徑表;
[0008]對驗證路徑表中的各分支路徑進行遍歷,并根據所述消息類型和消息示例生成與所述各分支路徑對應的用例消息和預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例息;
[0009]將與所述各分支路徑對應的關鍵路徑用例信息存儲于所述測試用例模型中,得到第一測試用例集。
[0010]其中,所述對驗證路徑表中的各分支路徑進行遍歷,并根據所述消息類型和消息示例生成與所述各分支路徑對應的用例消息和預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息,包括:
[0011]對所述驗證路徑表中的各分支路徑進行遍歷,所述驗證路徑表中的各分支路徑包括輸入表達式、返回表達式、驗證結果;
[0012]根據所述消息類型將所述消息示例中的參數值分別替換為各分支路徑上的輸入表達式的值,生成與所述各分支路徑對應的用例消息;
[0013]分別將各分支路徑上的所述返回表達式與所述驗證結果進行合并,生成與所述各分支路徑對應的預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息。
[0014]其中,所述測試信息還包括請求參數,所述方法還包括:
[0015]根據所述請求參數的類型,按等價類和/或邊界值工程方法生成與所述關鍵路徑用例信息關聯的正常用例信息和異常用例信息;[0016]將所述正常用例信息和異常用例信息存儲到所述測試用例模型中,得到第二測試用例集,所述第二測試用例集包括所述關鍵路徑用例信息、所述正常用例信息以及所述異常用例信息。
[0017]其中,所述根據所述請求參數的類型,按等價類和/或邊界值工程方法生成與所述關鍵路徑用例信息關聯的正常用例信息和異常用例信息,包括:
[0018]根據所述請求參數的類型,按等價類和/或邊界值工程方法選取一個或多個處于正常范圍內的值,將所述關鍵路徑用例信息包括的消息示例中的相應節點替換為所述正常范圍內的值,生成與所述關鍵路徑用例信息關聯的正常用例信息;
[0019]根據所述請求參數的類型選取一個或多個處于異常范圍內的值,將所述關鍵路徑用例信息包括的消息示例中的相應節點替換為所述異常范圍內的值,生成與所述關鍵路徑用例信息關聯的異常用例信息。
[0020]其中,所述驗證路徑表還包括關系表,根據所述關系表的表名生成檢查此表是否發生變化的SQL語句,輸入到異常用例信息的預期返回結果中。
[0021]相應地,本發明實施例還提供了一種生成測試用例的裝置,包括:
[0022]創建模塊,用于創建測試用例模型,所述測試用例模型用于存儲用例消息和預期返回結果;
[0023]獲取模塊,用于對需求文檔進行掃描,以獲取所述需求文檔中的測試信息,所述測試信息包括消息類型、消息示例和驗證路徑表;
[0024]第一生成模塊,用于對驗證路徑表中的各分支路徑進行遍歷,并根據所述消息類型和消息示例生成與所述各分支路徑對應的用例消息和預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息;
[0025]第一存儲模塊,用于將與所述各分支路徑對應的關鍵路徑用例信息存儲于所述測試用例模型中,得到第一測試用例集。
[0026]其中,所述第一生成模塊包括:
[0027]遍歷單元,用于對所述驗證路徑表中的各分支路徑進行遍歷,所述驗證路徑表中的各分支路徑包括輸入表達式、返回表達式、驗證結果;
[0028]用例消息生成單元,用于根據所述消息類型將所述消息示例中的參數值分別替換為各分支路徑上的輸入表達式的值,生成與所述各分支路徑對應的用例消息;
[0029]預期結果生成單元,用于分別將各分支路徑上的所述返回表達式與所述驗證結果進行合并,生成與所述各分支路徑對應的預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息。
[0030]其中,還包括:
[0031]所述測試信息還包括請求參數;
[0032]第二生成模塊,用于根據所述請求參數的類型,按等價類和/或邊界值工程方法生成與所述關鍵路徑用例信息關聯的正常用例信息和異常用例信息;
[0033]第二存儲模塊,用于將所述正常用例信息和異常用例信息存儲到所述測試用例模型中,得到第二測試用例集,所述第二測試用例集包括所述關鍵路徑用例信息、所述正常用例信息以及所述異常用例信息。
[0034]其中,所述第二生成模塊包括:[0035]正常用例生成單元,用于根據所述請求參數的類型,按等價類和/或邊界值工程方法選取一個或多個處于正常范圍內的值,將所述關鍵路徑用例信息包括的消息示例中的相應節點替換為所述正常范圍內的值,生成與所述關鍵路徑用例信息關聯的正常用例信息;
[0036]異常用例生成單元,用于根據所述請求參數的類型選取一個或多個處于異常范圍內的值,將所述關鍵路徑用例信息包括的消息示例中的相應節點替換為所述異常范圍內的值,生成與所述關鍵路徑用例信息關聯的異常用例信息。
[0037]其中,所述驗證路徑表還包括關系表;
[0038]所述異常用例生成單元,還用于根據所述關系表的表名生成檢查此表是否發生變化的SQL語句,輸入到異常用例信息的預期返回結果中。
[0039]實施本發明實施例,具有如下有益效果:
[0040]本發明實施例通過從需求文檔中提取測試信息,以根據測試信息自動生成測試用例,解決了測試用例需要大量人力進行編寫與維護的問題,并且也降低了自動化測試所需成本;同時,通過需求文檔生成測試用例可以做到測試先行的效果,即在被測對象開發前就可以自動生成測試用例以協助開發。
【專利附圖】
【附圖說明】
[0041]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0042]圖1是本發明實施例提供的一種生成測試用例的方法的流程示意圖;
[0043]圖2是本發明實施例提供的另一種生成測試用例的方法的流程示意圖;
[0044]圖3是本發明實施例提供的其中一種生成關鍵路徑用例信息的方法的流程示意圖;
[0045]圖4是本發明實施例提供的其中一種生成正常和異常用例信息的方法的流程示意圖;
[0046]圖5是本發明實施例提供的一種生成測試用例的裝置的結構示意圖;
[0047]圖6是本發明實施例提供的另一種生成測試用例的裝置的結構示意圖;
[0048]圖7是圖6中第一生成模塊的結構示意圖;
[0049]圖8是圖6中第二生成模塊的結構示意圖。
【具體實施方式】
[0050]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0051]請參見圖1,是本發明實施例提供的一種生成測試用例的方法的流程示意圖,所述方法包括:[0052]S101,創建測試用例模型,所述測試用例模型用于存儲用例消息和預期返回結果;
[0053]具體的,可以對創建的測試用例模型進行格式規范處理,經過格式規范處理后的測試用例模型用于存儲用例ID(Identity,序列號)、用例說明、用例地址、用例類型、用例消息、用例消息、預期返回結果、實際返回結果以及測試結果。所述用例模型還可以用于存儲是否執行的控制指令、用例開始執行時間、用例結束執行時間、用例超時時間以及備注信息
坐坐寸寸ο
[0054]S102,對需求文檔進行掃描,以獲取所述需求文檔中的測試信息,所述測試信息包括消息類型、消息示例和驗證路徑表;
[0055]具體的,通過對需求文檔進行掃描,可以獲取所述需求文檔中的測試信息。所述需求文檔是產品項目由“準備”階段進入到“實施”階段的第一文檔,為了可以自動地從所述需求文檔中獲取測試信息,需要對所述需求文檔進行格式的規范化,經過格式規范化的需求文檔可以按照消息類型、請求參數、消息地址、執行路徑、驗證路徑表、消息格式以及消息示例等格式進行劃分,因此所述測試信息可以包括:消息類型、請求參數、消息地址、執行路徑、驗證路徑表、消息格式以及消息示例中的至少一種。其中,通過對程序的運行邏輯進行分析,可以得出該程序因輸入參數不同而產生的多條執行路徑。所述驗證路徑表中的每條執行路徑可以包括執行路徑、關系表、路徑名稱、預置條件、輸入表達式、返回表達式、驗證結果。例如,所述驗證路徑表可以為如下表1:
[0056]表1
[0057]
【權利要求】
1.一種生成測試用例的方法,其特征在于,包括: 創建測試用例模型,所述測試用例模型用于存儲用例消息和預期返回結果; 對需求文檔進行掃描,以獲取所述需求文檔中的測試信息,所述測試信息包括消息類型、消息示例和驗證路徑表; 對驗證路徑表中的各分支路徑進行遍歷,并根據所述消息類型和消息示例生成與所述各分支路徑對應的用例消息和預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息; 將與所述各分支路徑對應的關鍵路徑用例信息存儲于所述測試用例模型中,得到第一測試用例集。
2.如權利要求1所述的方法,其特征在于,所述對驗證路徑表中的各分支路徑進行遍歷,并根據所述消息類型和消息示例生成與所述各分支路徑對應的用例消息和預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息,包括: 對所述驗證路徑表中的各分支路徑進行遍歷,所述驗證路徑表中的各分支路徑包括輸入表達式、返回表達式、驗證結果; 根據所述消息類型將所述消息示例中的參數值分別替換為各分支路徑上的輸入表達式的值,生成與所述各分支路徑對應的用例消息; 分別將各分支路徑上的所述返回表達式與所述驗證結果進行合并,生成與所述各分支路徑對應的預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息。
3.如權利要求1或2所述的方法,其特征在于,所述測試信息還包括請求參數,所述方法還包括:` 根據所述請求參數的類型,按等價類和/或邊界值工程方法生成與所述關鍵路徑用例信息關聯的正常用例信息和異常用例信息; 將所述正常用例信息和異常用例信息存儲到所述測試用例模型中,得到第二測試用例集,所述第二測試用例集包括所述關鍵路徑用例信息、所述正常用例信息以及所述異常用例信息。
4.如權利要求3所述的方法,其特征在于,所述根據所述請求參數的類型,按等價類和/或邊界值工程方法生成與所述關鍵路徑用例信息關聯的正常用例信息和異常用例信息,包括: 根據所述請求參數的類型,按等價類和/或邊界值工程方法選取一個或多個處于正常范圍內的值,將所述關鍵路徑用例信息包括的消息示例中的相應節點替換為所述正常范圍內的值,生成與所述關鍵路徑用例信息關聯的正常用例信息; 根據所述請求參數的類型選取一個或多個處于異常范圍內的值,將所述關鍵路徑用例信息包括的消息示例中的相應節點替換為所述異常范圍內的值,生成與所述關鍵路徑用例信息關聯的異常用例信息。
5.如權利要求4所述的方法,其特征在于,所述驗證路徑表還包括關系表,根據所述關系表的表名生成檢查此表是否發生變化的SQL語句,輸入到異常用例信息的預期返回結果中。
6.一種生成測試用例的裝置,其特征在于,包括: 創建模塊,用于創建測試用例模型,所述測試用例模型用于存儲用例消息和預期返回結果; 獲取模塊,用于對需求文檔進行掃描,以獲取所述需求文檔中的測試信息,所述測試信息包括消息類型、消息示例和驗證路徑表; 第一生成模塊,用于對驗證路徑表中的各分支路徑進行遍歷,并根據所述消息類型和消息示例生成與所述各分支路徑對應的用例消息和預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息; 第一存儲模塊,用于將與所述各分支路徑對應的關鍵路徑用例信息存儲于所述測試用例模型中,得到第一測試用例集。
7.如權利要求6所述的裝置,其特征在于,所述第一生成模塊包括: 遍歷單元,用于對所述驗證路徑表中的各分支路徑進行遍歷,所述驗證路徑表中的各分支路徑包括輸入表達式、返回表達式、驗證結果; 用例消息生成單元,用于根據所述消息類型將所述消息示例中的參數值分別替換為各分支路徑上的輸入表達式的值,生成與所述各分支路徑對應的用例消息; 預期結果生成單元,用于分別將各分支路徑上的所述返回表達式與所述驗證結果進行合并,生成與所述各分支路徑對應的預期返回結果,得到與所述各分支路徑對應的關鍵路徑用例信息。
8.如權利要求7所述的裝置,其特征在于,還包括: 所述測試信息還包括請求參數; 第二生成模塊,用于根據所述請求參數的類型,按等價類和/或邊界值工程方法生成與所述關鍵路徑用例信息關聯的`正常用例信息和異常用例信息; 第二存儲模塊,用于將所述正常用例信息和異常用例信息存儲到所述測試用例模型中,得到第二測試用例集,所述第二測試用例集包括所述關鍵路徑用例信息、所述正常用例信息以及所述異常用例信息。
9.如權利要求8所述的裝置,其特征在于,所述第二生成模塊包括: 正常用例生成單元,用于根據所述請求參數的類型,按等價類和/或邊界值工程方法選取一個或多個處于正常范圍內的值,將所述關鍵路徑用例信息包括的消息示例中的相應節點替換為所述正常范圍內的值,生成與所述關鍵路徑用例信息關聯的正常用例信息;異常用例生成單元,用于根據所述請求參數的類型選取一個或多個處于異常范圍內的值,將所述關鍵路徑用例信息包括的消息示例中的相應節點替換為所述異常范圍內的值,生成與所述關鍵路徑用例信息關聯的異常用例信息。
10.如權利要求9所述的裝置,其特征在于,所述驗證路徑表還包括關系表; 所述異常用例生成單元,還用于根據所述關系表的表名生成檢查此表是否發生變化的SQL語句,輸入到異常用例信息的預期返回結果中。
【文檔編號】G06F9/44GK103488482SQ201310422134
【公開日】2014年1月1日 申請日期:2013年9月16日 優先權日:2013年9月16日
【發明者】葉錦坤 申請人:深圳市龍視傳媒有限公司