鬼佬大哥大
  • / 17
  • 下載費用:30 金幣  

一種用于生成測試用例的方法和裝置.pdf

關 鍵 詞:
一種 用于 生成 測試 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201510251389.1

申請日:

2015.05.15

公開號:

CN104899136A

公開日:

2015.09.09

當前法律狀態:

實審

有效性:

審中

法律詳情: 實質審查的生效IPC(主分類):G06F 11/36申請日:20150515|||公開
IPC分類號: G06F11/36 主分類號: G06F11/36
申請人: 百度在線網絡技術(北京)有限公司
發明人: 熊倩倩; 宋書青; 王澤光; 杜嬌; 艾婷; 張天宇
地址: 100085北京市海淀區上地十街10號百度大廈
優先權:
專利代理機構: 北京漢昊知識產權代理事務所(普通合伙)11370 代理人: 羅朋
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510251389.1

授權公告號:

|||

法律狀態公告日:

2015.10.07|||2015.09.09

法律狀態類型:

實質審查的生效|||公開

摘要

本發明的目的是提供一種用于生成測試用例的方法和裝置;獲取用戶所構建的業務狀態圖;根據所述業務狀態圖,生成對應的狀態圖代碼;遍歷所述狀態圖代碼,生成對應的測試用例。與現有技術相比,本發明通過將web系統的業務抽象為業務狀態圖,自動生成狀態圖代碼,遍歷狀態圖自動生成可執行的測試用例代碼,將人工編寫測試用例代碼轉化為人工編寫業務模型,而將業務模型至測試用例的過程變為自動化,大大降低了人力成本,提高了測試效率,提升了使用體驗。進一步地,本發明將人工進行業務操作場景覆蓋,轉變為全自動對輸入參數進行組合遍歷、對操作路徑進行圖遍歷,保障了測試覆蓋率。

權利要求書

權利要求書
1.  一種用于生成測試用例的方法,其中,該方法包括以下步驟:
獲取用戶所構建的業務狀態圖;
根據所述業務狀態圖,生成對應的狀態圖代碼;
遍歷所述狀態圖代碼,生成對應的測試用例。

2.  根據權利要求1所述的方法,其中,所述遍歷所述狀態圖代碼,生成對應的測試用例的步驟還包括:
-單邊交叉遍歷所述狀態圖代碼,生成對應的單邊交叉測試用例。

3.  根據權利要求1所述的方法,其中,所述遍歷所述狀態圖代碼,生成對應的測試用例的步驟還包括:
-多邊交叉遍歷所述狀態圖代碼,生成對應的多邊交叉測試用例。

4.  根據權利要求1所述的方法,其中,該方法還包括:
-調用所述測試用例,解析并保存所生成的測試結果。

5.  根據權利要求1所述的方法,其中,所述業務狀態圖的要素包括狀態、行為及規則。

6.  根據權利要求1至5中任一項所述的方法,其中,所述獲取用戶所構建的業務狀態圖的步驟還包括:
-獲取所述用戶所提供的測試服務接口。

7.  根據權利要求6所述的方法,其中,所述測試服務接口包括以下至少任一項:
-獲取所述狀態的接口;
-校驗所述狀態的接口;
-觸發所述行為的接口;
-校驗所述行為的接口。

8.  一種用于生成測試用例的裝置,其中,該裝置包括:
用于獲取用戶所構建的業務狀態圖的裝置;
用于根據所述業務狀態圖,生成對應的狀態圖代碼的裝置;
用于遍歷所述狀態圖代碼,生成對應的測試用例的裝置。

9.  根據權利要求8所述的裝置,其中,所述用于遍歷所述狀態圖代碼,生成對應的測試用例的裝置還包括:
-用于單邊交叉遍歷所述狀態圖代碼,生成對應的單邊交叉測試用例的裝置。

10.  根據權利要求8所述的裝置,其中,所述用于遍歷所述狀態圖代碼,生成對應的測試用例的裝置還包括:
-用于多邊交叉遍歷所述狀態圖代碼,生成對應的多邊交叉測試用例的裝置。

11.  根據權利要求8所述的裝置,其中,該裝置還包括:
-用于調用所述測試用例,解析并保存所生成的測試結果的裝置。

12.  根據權利要求8所述的裝置,其中,所述業務狀態圖的要素包括狀態、行為及規則。

13.  根據權利要求8至12中任一項所述的裝置,其中,所述用于獲取用戶所構建的業務狀態圖的裝置還包括:
-用于獲取所述用戶所提供的測試服務接口的裝置。

14.  根據權利要求13所述的裝置,其中,所述測試服務接口包括以下至少任一項:
-獲取所述狀態的接口;
-校驗所述狀態的接口;
-觸發所述行為的接口;
-校驗所述行為的接口。

說明書

說明書一種用于生成測試用例的方法和裝置
技術領域
本發明涉及軟件測試技術領域,尤其涉及一種用于生成測試用例的技術。
背景技術
軟件產品開發完成之后,為了保障軟件系統能夠完成預期需求的功能,需要對軟件進行測試。
自動化測試需通過對系統需求文檔的分析,編寫代碼調用系統接口模擬用戶操作路徑,在代碼文件中指定輸入參數、操作步驟及預期結果。然而,現有的這種自動化測試方法為測試人員進行自動化測試用例代碼編寫及維護,人力成本高,且存在覆蓋度無法保證的問題。
發明內容
本發明的目的是提供一種用于生成測試用例的方法和裝置。
根據本發明的一個方面,提供了一種用于生成測試用例的方法,其中,該方法包括以下步驟:
獲取用戶所構建的業務狀態圖;
根據所述業務狀態圖,生成對應的狀態圖代碼;
遍歷所述狀態圖代碼,生成對應的測試用例。
根據本發明的另一個方面,還提供了一種用于生成測試用例的裝置,其中,該裝置包括:
用于獲取用戶所構建的業務狀態圖的裝置;
用于根據所述業務狀態圖,生成對應的狀態圖代碼的裝置;
用于遍歷所述狀態圖代碼,生成對應的測試用例的裝置。
與現有技術相比,本發明通過將web系統的業務抽象為業務狀態 圖,自動生成狀態圖代碼,遍歷狀態圖自動生成可執行的測試用例代碼,將人工編寫測試用例代碼轉化為人工編寫業務模型,而將業務模型至測試用例的過程變為自動化,大大降低了人力成本,提高了測試效率,提升了使用體驗。進一步地,本發明將人工進行業務操作場景覆蓋,轉變為全自動對輸入參數進行組合遍歷、對操作路徑進行圖遍歷,保障了測試覆蓋率。
進一步地,本發明自動化并發執行測試用例,實現對web系統的自動化測試。
進一步地,本發明為通用性平臺,可以應用于web系統的自動化測試場景,方便用戶的使用。
更進一步地,用戶無需生成直接可執行的代碼,而僅需提交測試服務接口,簡化了用戶的操作及流程,提高了測試效率,提升了用戶的使用體驗。
更進一步地,本發明采用單邊交叉遍歷、多邊交叉遍歷狀態圖代碼,生成對應的單邊交叉測試用例、多邊交叉測試用例,更有效地保障了測試覆蓋率。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發明的其它特征、目的和優點將會變得更明顯:
圖1為根據本發明一個方面的用于生成測試用例的裝置的結構示意圖;
圖2為根據本發明一個實施例的用于生成測試用例的示意圖;
圖3為根據本發明另一個實施例的用于生成測試用例的示意圖;
圖4為根據本發明另一個方面的用于生成測試用例的方法的流程示意圖。
附圖中相同或相似的附圖標記代表相同或相似的部件。
具體實施方式
在更加詳細地討論示例性實施例之前應當提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項操作描述成順序的處理,但是其中的許多操作可以被并行地、并發地或者同時實施。此外,各項操作的順序可以被重新安排。當其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應于方法、函數、規程、子例程、子程序等等。
在上下文中所稱“計算機設備”,也稱為“電腦”,是指可以通過運行預定程序或指令來執行數值計算和/或邏輯計算等預定處理過程的智能電子設備,其可以包括處理器與存儲器,由處理器執行在存儲器中預存的存續指令來執行預定處理過程,或是由ASIC、FPGA、DSP等硬件執行預定處理過程,或是由上述二者組合來實現。計算機設備包括但不限于服務器、個人電腦、筆記本電腦、平板電腦、智能手機等。
所述計算機設備包括用戶設備與網絡設備。其中,所述用戶設備包括但不限于電腦、智能手機、PDA等;所述網絡設備包括但不限于單個網絡服務器、多個網絡服務器組成的服務器組或基于云計算(Cloud Computing)的由大量計算機或網絡服務器構成的云,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。其中,所述計算機設備可單獨運行來實現本發明,也可接入網絡并通過與網絡中的其他計算機設備的交互操作來實現本發明。其中,所述計算機設備所處的網絡包括但不限于互聯網、廣域網、城域網、局域網、VPN網絡等。
需要說明的是,所述用戶設備、網絡設備和網絡等僅為舉例,其他現有的或今后可能出現的計算機設備或網絡如可適用于本發明,也應包含在本發明保護范圍以內,并以引用方式包含于此。
后面所討論的方法(其中一些通過流程圖示出)可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意組合來實施。當用軟件、固件、中間件或微代碼來實施時,用以實施必要任務的程序代碼或代碼段可以被存儲在機器或計算機可讀介質(比如存儲介 質)中。(一個或多個)處理器可以實施必要的任務。
這里所公開的具體結構和功能細節僅僅是代表性的,并且是用于描述本發明的示例性實施例的目的。但是本發明可以通過許多替換形式來具體實現,并且不應當被解釋成僅僅受限于這里所闡述的實施例。
應當理解的是,雖然在這里可能使用了術語“第一”、“第二”等等來描述各個單元,但是這些單元不應當受這些術語限制。使用這些術語僅僅是為了將一個單元與另一個單元進行區分。舉例來說,在不背離示例性實施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術語“和/或”包括其中一個或更多所列出的相關聯項目的任意和所有組合。
應當理解的是,當一個單元被稱為“連接”或“耦合”到另一單元時,其可以直接連接或耦合到所述另一單元,或者可以存在中間單元。與此相對,當一個單元被稱為“直接連接”或“直接耦合”到另一單元時,則不存在中間單元。應當按照類似的方式來解釋被用于描述單元之間的關系的其他詞語(例如“處于...之間”相比于“直接處于...之間”,“與...鄰近”相比于“與...直接鄰近”等等)。
這里所使用的術語僅僅是為了描述具體實施例而不意圖限制示例性實施例。除非上下文明確地另有所指,否則這里所使用的單數形式“一個”、“一項”還意圖包括復數。還應當理解的是,這里所使用的術語“包括”和/或“包含”規定所陳述的特征、整數、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個或更多其他特征、整數、步驟、操作、單元、組件和/或其組合。
還應當提到的是,在一些替換實現方式中,所提到的功能/動作可以按照不同于附圖中標示的順序發生。舉例來說,取決于所涉及的功能/動作,相繼示出的兩幅圖實際上可以基本上同時執行或者有時可以按照相反的順序來執行。
下面結合附圖對本發明作進一步詳細描述。
圖1為根據本發明一個方面的用于生成測試用例的裝置的結構示 意圖。
該用于生成測試用例的裝置(以下簡稱“測試用例裝置1”)包括用于獲取用戶所構建的業務狀態圖的裝置(以下簡稱“業務狀態圖構建裝置101”)、用于根據所述業務狀態圖,生成對應的狀態圖代碼的裝置(以下簡稱“圖代碼生成裝置102”)和用于遍歷所述狀態圖代碼,生成對應的測試用例的裝置(以下簡稱“測試用例生成裝置103”)。
其中,業務狀態圖構建裝置101獲取用戶所構建的業務狀態圖。
具體地,業務狀態圖構建裝置101獲取用戶所構建的業務狀態圖的方式包括但不限于:
1)用戶構建完業務狀態圖,通過與該測試用例裝置1進行交互,上傳其所構建的業務狀態圖,業務狀態圖構建裝置101例如通過調用API(應用程序接口)等方式,獲取該用戶所構建的業務狀態圖。
2)測試用例裝置1提供業務狀態圖構建平臺,將圖編輯實現可視化操作,用戶直接在該平臺上構建業務狀態圖,例如,用戶可以直接在改平臺上拖動要素,實現業務狀態圖的構建、編輯;業務狀態圖構建裝置101根據用戶的操作,獲取該用戶構建的業務狀態圖。
需要說明的是,上述舉例僅為更好地說明本發明的技術方案,而非對本發明的限制,本領域技術人員應該理解,任何其他現有的或今后可能出現的獲取用戶所構建的業務狀態圖的實現方式,如可適用于本發明,也應包含在本發明保護范圍以內,并在此以引用方式包含于此。
優選地,所述業務狀態圖的要素包括狀態、行為及規則。
具體地,對于業務狀態圖的狀態要素的編輯例如需指定狀態名、獲取或校驗狀態的接口;對于業務狀態圖的行為要素的編輯例如需指定行為輸入、輸出參數或觸發行為的接口;對于業務狀態圖的規則要素的編輯例如需指定狀態之間的連接關系。
以圖2為例,其為一音樂業務狀態圖。該圖中,圓圈“非VIP”、“普通VIP”及“白金VIP”表示該業務狀態圖的狀態要素;“1、下單白金VIP”、“2、支付白金單子”、“3、下單普通VIP”、“4、支付 普通單子”則表示該業務狀態圖的行為要素;帶有箭頭指向的邊,例如“非VIP”指向“普通VIP”的邊、“非VIP”指向“白金VIP”的邊、“普通VIP”指向自身的邊、“普通VIP”指向“白金VIP”的邊、“白金VIP”指向自身的邊等,則表示該業務狀態圖的規則要素。
需要說明的是,上述舉例僅為更好地說明本發明的技術方案,而非對本發明的限制,本領域技術人員應該理解,任何其他現有的或今后可能出現的業務狀態圖的要素,如可適用于本發明,也應包含在本發明保護范圍以內,并在此以引用方式包含于此。
優選地,業務狀態圖構建裝置101還包括用于獲取所述用戶所提供的測試服務接口的裝置(以下簡稱“測試服務接口獲取裝置”(未示出))。
具體地,用戶在構建業務狀態圖時,可以通過封裝可調用的服務,將對應的測試服務接口進行上傳,例如,將獲取所述狀態的接口、校驗所述狀態的接口、觸發所述行為的接口或校驗所述行為的接口等進行上傳,該測試服務接口獲取裝置獲取該用戶所提供的測試服務接口,以供后續調用,并生成對應的狀態圖代碼。
在此,用戶無需生成直接可執行的代碼,而僅需提交測試服務接口,簡化了用戶的操作及流程,提高了測試效率,提升了用戶的使用體驗。
優選地,所述測試服務接口包括以下至少任一項:
-獲取所述狀態的接口;
-校驗所述狀態的接口;
-觸發所述行為的接口;
-校驗所述行為的接口。
例如,以圖2為例,當狀態“非VIP”通過行為“下單普通VIP”、“支付普通單子”到達狀態“普通VIP”時,則該測試用例裝置1通過調用上述獲取所述狀態的接口,獲取狀態“非VIP”;通過調用上訴觸發所述行為的接口,觸發上述行為“下單普通VIP”、“支付普通單子”;通過調用上述校驗所述狀態的接口,校驗該行為達到的狀態是否為狀態“普通VIP”;通過調用上述校驗所述行為的接口,校驗上述行為“下單普通VIP”、“支付普通單子”是否正確。
需要說明的是,上述舉例僅為更好地說明本發明的技術方案,而非對本發明的限制,本領域技術人員應該理解,任何其他現有的或今后可能出現的測試服務接口,如可適用于本發明,也應包含在本發明保護范圍以內,并在此以引用方式包含于此。
圖代碼生成裝置102根據所述業務狀態圖,生成對應的狀態圖代碼。
具體地,圖代碼生成裝置102根據業務狀態圖構建裝置101所獲取的用戶構建的業務狀態圖,生成對應的狀態圖代碼,以供測試用例生成裝置103調用。
在此,測試用例裝置1根據業務狀態圖自動生成對應的狀態圖代碼,將人工維護測試用例代碼轉化為人工維護業務模型,而將業務模型至測試用例的過程變為自動化,大大降低了人力成本,提高了測試效率,提升了使用體驗。
測試用例生成裝置103遍歷所述狀態圖代碼,生成對應的測試用例。
具體地,測試用例生成裝置103遍歷該圖代碼生成裝置102所生成的狀態圖代碼,例如,遍歷該狀態圖代碼的邊與輸入參數,生成對應的測試用例。在此,該測試用例生成裝置103遍歷狀態圖代碼的方式包括但不限于:
1)單邊遍歷該狀態圖代碼,生成對應的單邊測試用例。
例如,如圖3的左上圖所示,測試用例生成裝置103自狀態“非VIP”至狀態“普通VIP”,即完成對該狀態圖的一次單邊遍歷。該測試用例生成裝置103可以分別自業務狀態圖的不同的狀態,遍歷經過一條“邊”,至該業務狀態圖的另一狀態,以實現對該狀態圖代碼的單邊遍歷,生成對應的單邊測試用例。
在此,該遍歷的起點狀態和終點狀態可以是一致的。例如,如圖3的左上圖所示,狀態“普通VIP”可以經過行為“3、下單普通VIP”或“4、支付普通單子”回到自身的狀態,即,測試用例生成裝置103自狀態“普通VIP”,經過行為“3、下單普通VIP”或“4、支付普通單子”,完成對該狀態圖的一次單邊遍歷,并回到狀態“普通VIP”。
在此,該測試用例生成裝置103還可以采用結對算法,以防止用例 數量爆炸。
2)多邊遍歷該狀態圖代碼,生成對應的多邊測試用例。
例如,如圖3的右上圖所示,測試用例生成裝置103先自狀態“非VIP”至狀態“普通VIP”,再自狀態“普通VIP”至狀態“白金VIP”,即完成對該狀態圖的一次多邊遍歷。該測試用例生成裝置103可以分別自業務狀態圖的不同的狀態,順序遍歷經過兩條或兩條以上“邊”,至該業務狀態圖的另一狀態,通過對該狀態圖的多種路徑覆蓋,實現對該狀態圖代碼的多邊遍歷,生成對應的多邊測試用例。
在此,該測試用例生成裝置103還可以采用正交算法,以防止用例數量爆炸。
3)單邊交叉遍歷該狀態圖代碼,生成對應的單邊交叉測試用例。
4)多邊交叉遍歷該狀態圖代碼,生成對應的多邊交叉測試用例。
我們將在下文具體描述單邊交叉遍歷狀態圖代碼及多邊交叉遍歷狀態圖代碼。
需要說明的是,上述舉例僅為更好地說明本發明的技術方案,而非對本發明的限制,本領域技術人員應該理解,任何其他現有的或今后可能出現的遍歷狀態圖代碼的方式,如可適用于本發明,也應包含在本發明保護范圍以內,并在此以引用方式包含于此。
在此,測試用例裝置1通過將web系統的業務抽象為業務狀態圖,自動生成狀態圖代碼,遍歷狀態圖自動生成可執行的測試用例代碼,將人工編寫測試用例代碼轉化為人工編寫業務模型,而將業務模型至測試用例的過程變為自動化,大大降低了人力成本,提高了測試效率,提升了使用體驗。進一步地,測試用例裝置1將人工進行業務操作場景覆蓋,轉變為全自動對輸入參數進行組合遍歷、對操作路徑進行圖遍歷,保障了測試覆蓋率。
優選地,所述測試用例生成裝置103還包括用于單邊交叉遍歷所述狀態圖代碼,生成對應的單邊交叉測試用例的裝置(以下簡稱“單邊交叉測試用例生成裝置”(未示出))。
具體地,單邊交叉測試用例生成裝置單邊交叉遍歷圖代碼生成裝置 102所生成的狀態圖代碼,例如,單邊交叉遍歷該狀態圖代碼的邊與輸入參數,生成對應的單邊交叉測試用例。
如圖3的左下圖所示,單邊交叉測試用例生成裝置自狀態“非VIP”出發,先調用行為“下單普通VIP”,即下第一單,接著繼續調用行為“下單普通VIP”,即下第二單,再調用行為“支付普通單子”,即支付第一單,接著繼續調用行為“支付普通單子”,即支付第二單,并至狀態“普通VIP”,即完成對該狀態圖的一次單邊交叉遍歷,隨后,生成對應的單邊交叉測試用例。
在此,單邊交叉測試用例為對單個邊上的行為進行交叉調用,模擬web系統用戶重復調用一個系統功能的場景。
優選地,所述測試用例生成裝置103還包括用于多邊交叉遍歷所述狀態圖代碼,生成對應的多邊交叉測試用例的裝置(以下簡稱“多邊交叉測試用例生成裝置”(未示出))。
具體地,多邊交叉測試用例生成裝置多邊交叉遍歷圖代碼生成裝置102所生成的狀態圖代碼,例如,多邊交叉遍歷該狀態圖代碼的邊與輸入參數,生成對應的多邊交叉測試用例。
如圖3的右下圖所示,多邊交叉測試用例生成裝置自狀態“非VIP”出發,先調用行為“下單普通VIP”,即下第一單普通單,接著繼續調用行為“下單白金VIP”,即下第二單白金單,再調用行為“支付普通單子”,即支付第一單普通單,接著繼續調用行為“支付白金單子”,即支付第二單白金單,并分別至狀態“普通VIP”與“白金VIP”,即完成對該狀態圖的一次多邊交叉遍歷,隨后,生成對應的多邊交叉測試用例。
在此,多邊交叉測試用例為同一狀態出發不同狀態結束的兩個邊上行為的交叉調用,模擬web系統用戶在一個狀態下執行兩種系統不同功能的場景。
在此,測試用例裝置1采用單邊交叉遍歷、多邊交叉遍歷狀態圖代碼,生成對應的單邊交叉測試用例、多邊交叉測試用例,更有效地保障了測試覆蓋率。
優選地,該測試用例裝置1還包括用于調用所述測試用例,解析并保存所生成的測試結果的裝置(以下簡稱“測試用例調用裝置”(未示出))。
具體地,測試用例調用裝置調用該測試用例生成裝置103所生成的測試用例,例如,為這些測試用例裝載web系統用戶ID,并發調用這些測試用例,解析并保存所生成的測試結果。
在此,測試用例裝置1自動化并發執行測試用例,實現對web系統的自動化測試。進一步地,該測試用例裝置1為通用性平臺,可以應用于web系統的自動化測試場景,方便用戶的使用。
圖4為根據本發明另一個方面的用于生成測試用例的方法的流程示意圖。
在步驟S401中,測試用例裝置1獲取用戶所構建的業務狀態圖。
具體地,在步驟S401中,測試用例裝置1獲取用戶所構建的業務狀態圖的方式包括但不限于:
1)用戶構建完業務狀態圖,通過與該測試用例裝置1進行交互,上傳其所構建的業務狀態圖,在步驟S401中,測試用例裝置1例如通過調用API(應用程序接口)等方式,獲取該用戶所構建的業務狀態圖。
2)測試用例裝置1提供業務狀態圖構建平臺,將圖編輯實現可視化操作,用戶直接在該平臺上構建業務狀態圖,例如,用戶可以直接在改平臺上拖動要素,實現業務狀態圖的構建、編輯;在步驟S401中,測試用例裝置1根據用戶的操作,獲取該用戶構建的業務狀態圖。
需要說明的是,上述舉例僅為更好地說明本發明的技術方案,而非對本發明的限制,本領域技術人員應該理解,任何其他現有的或今后可能出現的獲取用戶所構建的業務狀態圖的實現方式,如可適用于本發明,也應包含在本發明保護范圍以內,并在此以引用方式包含于此。
優選地,所述業務狀態圖的要素包括狀態、行為及規則。
具體地,對于業務狀態圖的狀態要素的編輯例如需指定狀態名、獲取或校驗狀態的接口;對于業務狀態圖的行為要素的編輯例如需指定行 為輸入、輸出參數或觸發行為的接口;對于業務狀態圖的規則要素的編輯例如需指定狀態之間的連接關系。
以圖2為例,其為一音樂業務狀態圖。該圖中,圓圈“非VIP”、“普通VIP”及“白金VIP”表示該業務狀態圖的狀態要素;“1、下單白金VIP”、“2、支付白金單子”、“3、下單普通VIP”、“4、支付普通單子”則表示該業務狀態圖的行為要素;帶有箭頭指向的邊,例如“非VIP”指向“普通VIP”的邊、“非VIP”指向“白金VIP”的邊、“普通VIP”指向自身的邊、“普通VIP”指向“白金VIP”的邊、“白金VIP”指向自身的邊等,則表示該業務狀態圖的規則要素。
需要說明的是,上述舉例僅為更好地說明本發明的技術方案,而非對本發明的限制,本領域技術人員應該理解,任何其他現有的或今后可能出現的業務狀態圖的要素,如可適用于本發明,也應包含在本發明保護范圍以內,并在此以引用方式包含于此。
優選地,步驟S401還包括用于獲取所述用戶所提供的測試服務接口的子步驟(以下簡稱“子步驟S4011”(未示出))。
具體地,用戶在構建業務狀態圖時,可以通過封裝可調用的服務,將對應的測試服務接口進行上傳,例如,將獲取所述狀態的接口、校驗所述狀態的接口、觸發所述行為的接口或校驗所述行為的接口等進行上傳,在步驟S4011中,測試用例裝置1獲取該用戶所提供的測試服務接口,以供后續調用,并生成對應的狀態圖代碼。
在此,用戶無需生成直接可執行的代碼,而僅需提交測試服務接口,簡化了用戶的操作及流程,提高了測試效率,提升了用戶的使用體驗。
優選地,所述測試服務接口包括以下至少任一項:
-獲取所述狀態的接口;
-校驗所述狀態的接口;
-觸發所述行為的接口;
-校驗所述行為的接口。
例如,以圖2為例,當狀態“非VIP”通過行為“下單普通VIP”、“支付普通單子”到達狀態“普通VIP”時,則該測試用例裝置1通過 調用上述獲取所述狀態的接口,獲取狀態“非VIP”;通過調用上訴觸發所述行為的接口,觸發上述行為“下單普通VIP”、“支付普通單子”;通過調用上述校驗所述狀態的接口,校驗該行為達到的狀態是否為狀態“普通VIP”;通過調用上述校驗所述行為的接口,校驗上述行為“下單普通VIP”、“支付普通單子”是否正確。
需要說明的是,上述舉例僅為更好地說明本發明的技術方案,而非對本發明的限制,本領域技術人員應該理解,任何其他現有的或今后可能出現的測試服務接口,如可適用于本發明,也應包含在本發明保護范圍以內,并在此以引用方式包含于此。
在步驟S402中,測試用例裝置1根據所述業務狀態圖,生成對應的狀態圖代碼。
具體地,在步驟S402中,測試用例裝置1根據在步驟S401中所獲取的用戶構建的業務狀態圖,生成對應的狀態圖代碼,以供后續步驟調用。
在此,測試用例裝置1根據業務狀態圖自動生成對應的狀態圖代碼,將人工維護測試用例代碼轉化為人工維護業務模型,而將業務模型至測試用例的過程變為自動化,大大降低了人力成本,提高了測試效率,提升了使用體驗。
在步驟S403中,測試用例裝置1遍歷所述狀態圖代碼,生成對應的測試用例。
具體地,在步驟S403中,測試用例裝置1遍歷在步驟S402中所生成的狀態圖代碼,例如,遍歷該狀態圖代碼的邊與輸入參數,生成對應的測試用例。在此,在步驟S403中,測試用例裝置1遍歷狀態圖代碼的方式包括但不限于:
1)單邊遍歷該狀態圖代碼,生成對應的單邊測試用例。
例如,如圖3的左上圖所示,在步驟S403中,測試用例裝置1自狀態“非VIP”至狀態“普通VIP”,即完成對該狀態圖的一次單邊遍歷。在步驟S403中,測試用例裝置1可以分別自業務狀態圖的不同的狀態,遍歷經過一條“邊”,至該業務狀態圖的另一狀態,以實現對該狀態圖 代碼的單邊遍歷,生成對應的單邊測試用例。
在此,該遍歷的起點狀態和終點狀態可以是一致的。例如,如圖3的左上圖所示,狀態“普通VIP”可以經過行為“3、下單普通VIP”或“4、支付普通單子”回到自身的狀態,即,測試用例裝置1自狀態“普通VIP”,經過行為“3、下單普通VIP”或“4、支付普通單子”,完成對該狀態圖的一次單邊遍歷,并回到狀態“普通VIP”。
在此,該測試用例裝置1還可以采用結對算法,以防止用例數量爆炸。
2)多邊遍歷該狀態圖代碼,生成對應的多邊測試用例。
例如,如圖3的右上圖所示,在步驟S403中,測試用例裝置1先自狀態“非VIP”至狀態“普通VIP”,再自狀態“普通VIP”至狀態“白金VIP”,即完成對該狀態圖的一次多邊遍歷。在步驟S403中,測試用例裝置1可以分別自業務狀態圖的不同的狀態,順序遍歷經過兩條或兩條以上“邊”,至該業務狀態圖的另一狀態,通過對該狀態圖的多種路徑覆蓋,實現對該狀態圖代碼的多邊遍歷,生成對應的多邊測試用例。
在此,該測試用例裝置1還可以采用正交算法,以防止用例數量爆炸。
3)單邊交叉遍歷該狀態圖代碼,生成對應的單邊交叉測試用例。
4)多邊交叉遍歷該狀態圖代碼,生成對應的多邊交叉測試用例。
我們將在下文具體描述單邊交叉遍歷狀態圖代碼及多邊交叉遍歷狀態圖代碼。
需要說明的是,上述舉例僅為更好地說明本發明的技術方案,而非對本發明的限制,本領域技術人員應該理解,任何其他現有的或今后可能出現的遍歷狀態圖代碼的方式,如可適用于本發明,也應包含在本發明保護范圍以內,并在此以引用方式包含于此。
在此,測試用例裝置1通過將web系統的業務抽象為業務狀態圖,自動生成狀態圖代碼,遍歷狀態圖自動生成可執行的測試用例代碼,將人工編寫測試用例代碼轉化為人工編寫業務模型,而將業務模型至測試用例的過程變為自動化,大大降低了人力成本,提高了測試效率, 提升了使用體驗。進一步地,測試用例裝置1將人工進行業務操作場景覆蓋,轉變為全自動對輸入參數進行組合遍歷、對操作路徑進行圖遍歷,保障了測試覆蓋率。
優選地,所述步驟S403還包括用于單邊交叉遍歷所述狀態圖代碼,生成對應的單邊交叉測試用例的子步驟(以下簡稱“子步驟S4031”(未示出))。
具體地,在子步驟S4031中,測試用例裝置1單邊交叉遍歷在步驟S402中所生成的狀態圖代碼,例如,單邊交叉遍歷該狀態圖代碼的邊與輸入參數,生成對應的單邊交叉測試用例。
如圖3的左下圖所示,在步驟子S4031中,測試用例裝置1自狀態“非VIP”出發,先調用行為“下單普通VIP”,即下第一單,接著繼續調用行為“下單普通VIP”,即下第二單,再調用行為“支付普通單子”,即支付第一單,接著繼續調用行為“支付普通單子”,即支付第二單,并至狀態“普通VIP”,即完成對該狀態圖的一次單邊交叉遍歷,隨后,生成對應的單邊交叉測試用例。
在此,單邊交叉測試用例為對單個邊上的行為進行交叉調用,模擬web系統用戶重復調用一個系統功能的場景。
優選地,所述步驟S403還包括用于多邊交叉遍歷所述狀態圖代碼,生成對應的多邊交叉測試用例的子步驟(以下簡稱“子步驟S4032”(未示出))。
具體地,在步驟S4032中,測試用例裝置1多邊交叉遍歷在步驟S402中所生成的狀態圖代碼,例如,多邊交叉遍歷該狀態圖代碼的邊與輸入參數,生成對應的多邊交叉測試用例。
如圖3的右下圖所示,在子步驟S4032中,測試用例裝置1自狀態“非VIP”出發,先調用行為“下單普通VIP”,即下第一單普通單,接著繼續調用行為“下單白金VIP”,即下第二單白金單,再調用行為“支付普通單子”,即支付第一單普通單,接著繼續調用行為“支付白金單子”,即支付第二單白金單,并分別至狀態“普通VIP”與“白金VIP”,即完成對該狀態圖的一次多邊交叉遍歷,隨后,生成對應的多 邊交叉測試用例。
在此,多邊交叉測試用例為同一狀態出發不同狀態結束的兩個邊上行為的交叉調用,模擬web系統用戶在一個狀態下執行兩種系統不同功能的場景。
在此,測試用例裝置1采用單邊交叉遍歷、多邊交叉遍歷狀態圖代碼,生成對應的單邊交叉測試用例、多邊交叉測試用例,更有效地保障了測試覆蓋率。
優選地,該方法還包括用于調用所述測試用例,解析并保存所生成的測試結果的步驟(以下簡稱“步驟S404”(未示出))。
具體地,在步驟S404中,測試用例裝置1調用在步驟S403中所生成的測試用例,例如,為這些測試用例裝載web系統用戶ID,并發調用這些測試用例,解析并保存所生成的測試結果。
在此,測試用例裝置1自動化并發執行測試用例,實現對web系統的自動化測試。進一步地,該測試用例裝置1為通用性平臺,可以應用于web系統的自動化測試場景,方便用戶的使用。
需要注意的是,本發明可在軟件和/或軟件與硬件的組合體中被實施,例如,本發明的各個裝置可采用專用集成電路(ASIC)或任何其他類似硬件設備來實現。在一個實施例中,本發明的軟件程序可以通過處理器執行以實現上文所述步驟或功能。同樣地,本發明的軟件程序(包括相關的數據結構)可以被存儲到計算機可讀記錄介質中,例如,RAM存儲器,磁或光驅動器或軟磁盤及類似設備。另外,本發明的一些步驟或功能可采用硬件來實現,例如,作為與處理器配合從而執行各個步驟或功能的電路。
對于本領域技術人員而言,顯然本發明不限于上述示范性實施例的細節,而且在不背離本發明的精神或基本特征的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本發明的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化涵括在本發明內。不應將權利要求中的任何附圖標 記視為限制所涉及的權利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數不排除復數。系統權利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。

關于本文
本文標題:一種用于生成測試用例的方法和裝置.pdf
鏈接地址:http://www.wwszu.club/p-6369556.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大