一種自動生成測試用例的方法
2023-10-09 16:25:19 3
一種自動生成測試用例的方法
【專利摘要】本發明公開了一種自動生成測試用例的方法,包括:建立測試用例管理平臺以控制測試用例的生成;所述測試用例管理平臺包括控制層、業務邏輯層和數據訪問層;獲取用戶輸入的操作指令;根據用戶的操作指令確定測試參數與數據類型;根據所述測試參數和所述數據類型在所述測試用例管理平臺上構造測試數據;通過所述數據訪問層調用所述測試用例模板庫中預設的用例模板,並根據所述用例模板將所述測試數據按照用例設計方法自動渲染以生成測試用例。本發明提供的自動生成測試用例的方法具有自動化程度高、測試用例更全面、規範、準確合理的優點,極大地提高了測試用例的生成效率和質量。
【專利說明】一種自動生成測試用例的方法
【技術領域】
[0001] 本發明涉及軟體測試【技術領域】,尤其涉及一種自動生成測試用例的方法。
【背景技術】
[0002] 我國智能電網進入全面建設階段,基建變電站按智能變電站標準建設。隨著智能 變電站在全國範圍內的推廣,如何更加高效、準確地實現對數位化保護裝置保護邏輯的測 試,越來越受到重視。由於被測軟體或系統越來越複雜,為保證測試質量,通常需要設計和 編寫大量的測試用例。測試用例的編寫佔據了整個測試工作量中很大的比重,決定著對整 個系統的測試效率與質量。
[0003] 目前的測試用例設計技能要求門檻較高,需要專業設計人員具有較高的技術水平 和豐富的工作經驗,才能設計出符合要求的測試用例,滿足測試的覆蓋度,因此測試用例的 質量對人的依賴性非常高,測試用例質量因不同的人編寫而各有高低。而經過長期的實踐 證明,被測系統內的各個功能模塊之間,或者被測系統與被測系統之間,往往因為功能相 似、測試用例設計方法相似和測試用例結構相似,而出現了大量的非常相似的測試用例,因 此相當大部分的測試用例屬於重複編寫,為自動化設計和生成測試用例提供了可能。
【發明內容】
[0004] 本發明所要解決的技術問題是,提供一種自動生成測試用例的方法,提高測試用 例設計和編寫的效率,提高測試用例的設計質量。
[0005] 為解決以上技術問題,本發明實施例提供一種自動生成測試用例的方法,包括:
[0006] 建立測試用例管理平臺以控制測試用例的生成;所述測試用例管理平臺包括控制 層、業務邏輯層和數據訪問層;
[0007] 獲取用戶輸入的操作指令;
[0008] 所述控制層通過發出控制代碼監測頁面跳轉邏輯關係,收集用戶請求數據,轉發 用戶請求,以及根據用戶的操作指令控制所述測試用例管理平臺跳轉至指定的顯示頁面;
[0009] 所述業務邏輯層根據所述控制層所監測得到的頁面跳轉邏輯關係,將用戶的操作 指令轉化為業務邏輯;
[0010] 所述數據訪問層包括測試用例資料庫和測試用例模板庫,根據所述業務邏輯與所 述測試用例資料庫進行數據傳輸與存儲,並將控制數據傳輸與存儲的訪問控制命令進行獨 立封裝;
[0011] 根據用戶的操作指令確定測試參數與數據類型;根據所述測試參數和所述數據類 型在所述測試用例管理平臺上構造測試數據;
[0012] 通過所述數據訪問層調用所述測試用例模板庫中預設的用例模板,並根據所述用 例模板將所述測試數據按照用例設計方法自動渲染以生成測試用例。
[0013] 在一種可實現方式中,所述用例設計方法為等價類劃分法。
[0014] 在又一種可實現方式中,所述用例設計方法為邊界值分析法。
[0015] 在又一種可實現方式中,所述用例設計方法為正交試驗設計法。
[0016] 進一步地,所述測試用例管理平臺還包括測試數據生成工具;
[0017] 通過所述測試數據生成工具對測試數據的數據類型進行定義與修改,並根據用戶 的操作指令錄入、修改或刪除測試數據。
[0018] 進一步地,所述的自動生成測試用例的方法,還包括:通過所述測試數據生成工具 建立數據組,對所述數據組的用例設計方法以及關聯狀態進行設置。
[0019] 再進一步地,所述的自動生成測試用例的方法,還包括:建立關鍵字與測試用例功 能點的關聯關係,形成功能點列表文件;
[0020] 將所述功能點列表文件導入所述測試用例管理平臺,根據用戶所輸入的關鍵字選 中所述測試用例模板庫中預設的用例模板,並根據所述功能點列表文件自動生成測試用 例。
[0021] 優選地,所述測試用例管理平臺設有多種用戶權限;
[0022] 在所述測試用例管理平臺上導入所述功能點列表文件之前,判斷當前操作用戶是 否具備基於關鍵字的用例設計權限;若當前用戶為具備基於關鍵字的用例設計權限的用 戶,則在根據所述功能點列表文件自動生成測試用例。
[0023] 本發明提供的自動生成測試用例的方法,通過建立測試用例管理平臺以控制測試 用例的生成,並將測試用例管理平臺劃分為控制層、業務邏輯層和數據訪問層,通過控制層 監測頁面跳轉邏輯關係,收集用戶請求數據,轉發用戶請求,以及根據用戶的操作指令控制 所述測試用例管理平臺跳轉至指定的顯示頁面,通過業務邏輯層將用戶的操作指令轉化為 業務邏輯;通過數據訪問層根據所述業務邏輯與測試用例資料庫進行數據傳輸與存儲,並 將控制數據傳輸與存儲的訪問控制命令進行獨立封裝;因而本發明可以根據用戶的操作指 令確定測試參數與數據類型,在所述測試用例管理平臺上構造測試數據,將該測試數據自 動生成為所需要的測試用例。本發明克服了傳統的通過手工進行的測試用例所存在的編寫 效率低下和質量難以得到保障的缺陷,採用自動化生成技術,提高測試用例的生成效率和 質量。
【專利附圖】
【附圖說明】
[0024] 圖1是本發明提供的自動生成測試用例的方法的一個實施例的步驟流程圖。
[0025] 圖2是本發明提供的測試用例管理平臺的一種數據架構圖。
[0026] 圖3是本發明提供的在所述測試用例列表界面中添加測試用例的步驟流程圖。
[0027] 圖4是本發明提供的根據功能點列表文件生成測試用例的一種可實現方式的步 驟流程圖。
[0028] 圖5是本發明提供的基於因果圖用例設計法生成測試用例的步驟流程圖。
【具體實施方式】
[0029] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述。
[0030] 參見圖1,是本發明提供的自動生成測試用例的方法的一個實施例的步驟流程圖。
[0031] 本實施例提供的自動生成測試用例的方法主要包括以下步驟:
[0032] 步驟S101 :建立測試用例管理平臺以控制測試用例的生成。所述測試用例管理 平臺包括控制層、業務邏輯層和數據訪問層。在本實施例中,具體實施時,採用總線型架構 對該測試用例管理平臺進行設計,可以消除不同應用之間的技術差異,讓不同的應用服務 器協調運作,實現了不同服務之間的通信與整合。從功能上看,ESB(Enterprise Service Bus,企業服務總線)提供了事件驅動和文檔導向的處理模式,以及分布式的運行管理機 制,支持基於內容的路由和過濾,具備了複雜數據的傳輸能力,並可以提供一系列的標準接 口,提供其它系統使用。
[0033] 步驟S102 :獲取用戶輸入的操作指令。
[0034] 步驟S103 :所述控制層通過發出控制代碼監測頁面跳轉邏輯關係,收集用戶請求 數據,轉發用戶請求,以及根據用戶的操作指令控制所述測試用例管理平臺跳轉至指定的 顯示頁面(Java Server Pages,簡稱JSP)。控制層(Command)可以包括服務接口層、展現 層、身份認證授權管理模塊、安全控制日誌管理模塊和ESB (Enterprise Service Bus,企業 服務總線)服務總線等,以連接和控制整個測試用例管理平臺的信號,控制測試用例管理 平臺的工作狀態。此外,展現層還通過連接客戶端上的各種瀏覽器(Internet Explorer) 與用戶進行數據通信。
[0035] 步驟S104 :所述業務邏輯層(Service)根據所述控制層所監測得到的頁面跳轉邏 輯關係,將用戶的操作指令轉化為業務邏輯。Service層主要關注於頁面邏輯,客戶的需求 轉化為實際的業務邏輯就由Service層來實現,其中權限事務日誌等不是純業務的邏輯交 由AOP (Aspect Oriented Programming,面向切面編程)的專門程序處理,使開發人員關注 點聚焦而不會被繁瑣的其它事情所影響效率。
[0036] 步驟S105 :所述數據訪問層包括測試用例資料庫和測試用例模板庫,根據所述業 務邏輯與所述測試用例資料庫進行數據傳輸與存儲,並將控制數據傳輸與存儲的訪問控制 命令進行獨立封裝。具體地,數據訪問層(Data Access Object,簡稱DA0)主要生成業務 邏輯中需要與資料庫之間進行交互的控制代碼,例如,本實施例對SQL (Structured Query Language,結構化查詢語言)程序語句、數據存儲過程等相應的資料庫進行數據存取的部 分控制代碼的封裝,將數據訪問層抽離獨立出來可以實現更好的移植性。
[0037] 步驟S106 :根據用戶的操作指令確定測試參數與數據類型;根據所述測試參數和 所述數據類型在所述測試用例管理平臺上構造測試數據。
[0038] 步驟S107 :通過所述數據訪問層調用所述測試用例模板庫中預設的用例模板,並 根據所述用例模板將所述測試數據按照用例設計方法自動渲染以生成測試用例。
[0039] 在本實施例中,業務邏輯層主要用於做一些有效性驗證的工作,以更好的保證程 序運行的健壯性。如完成數據添加、修改和查詢業務等;不允許指定的文本框中輸入空字符 串,數據格式是否正確以及數據類型驗證;用戶權限的合法性判斷等;通過以上的諸多判 斷以決定是否將操作繼續向後傳遞,儘量保證程序的正常運行。數據訪問層的主要功能是 負責資料庫的訪問,用於實現對數據表的Select (查詢),Insert (插入),Update (更新), Delete(刪除)等操作。如果要加入0RM(0bject-Relational Mapping,對象關係映射)的 元素,那麼就會包括對象和數據表之間的mapping (映射),以及對象實體的持久化。數據訪 問層,簡單的說,就是通過數據訪問層對資料庫進行的SQL語句等操作。
[0040] 參看圖2,是本發明提供的測試用例管理平臺的一種數據架構圖。具體地,需要先 建立測試用例模板庫201,用於生成測試用例的模板;優選地,所述測試用例管理平臺還包 括測試數據生成工具202 ;通過所述測試數據生成工具對測試數據的數據類型進行定義與 修改,並根據用戶的操作指令錄入、修改或刪除測試數據,因此可根據用戶預設的規則自動 生成測試數據;此外,需要預先設置測試用例生成規則模塊203,即用戶需要根據測試場合 的需要,採用相應的用例設計方法,例如等價類劃分法。在完成了以上三部分的準備後,匯 總三者的作用可以批量自動生成測試用例,如圖2中的測試用例1,測試用例2,……,測試 用例N。所有的測試用例最後匯總到測試用例管理平臺204中的測試用例管理端,從而實現 對測試用例及用例數據的統一管理與調度。
[0041] 本實施例通過測試數據生成工具202產生的測試數據可以應用在測試管理平臺 204上,經過調用測試用例模板庫201中的測試用例模板,根據模塊203選擇相應的測試用 例設計方法,將測試數據自動化批量生成為多個測試用例,以滿足軟體測試的需求。進一步 地,本實施例可以通過所述測試數據生成工具建立數據組,對所述數據組的用例設計方法 以及關聯狀態進行設置。
[0042] 在一種可實現的方式中,所述用例設計方法為等價類劃分法。通過等價類劃分法, 將程序所有可能的輸入數據(有效的和無效的)劃分成若干個等價類,然後從每個部分中 選取具有代表性的數據作為測試用例進行合理的分類;測試用例由有效等價類和無效等價 類的代表組成,從而保證測試用例具有完整性和代表性。利用這一方法設計測試用例可以 不考慮程序的內部結構,以用戶的實際需求規格說明書為依據,選擇適當的典型子集,認真 分析和推敲用戶的各項需求並儘可能多地發現錯誤。
[0043] 在另一種可實現的方式中,所述用例設計方法為邊界值分析法。邊界值分析在等 價類劃分法的基礎上作出進一步的改進。邊界值分析法不是從某等價類中隨便挑一個作為 代表,而是使這個等價類的每個邊界都要作為測試條件;其不僅考慮輸入條件,還要考慮輸 出空間產生的測試情況。根據長期的測試實踐經驗,大量的軟體測試錯誤是發生在輸入或 輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部。因此針對各種邊界情況設計測試 用例,可有利於檢測出更多的錯誤。
[0044] 譬如,可以建立數據源表" TPM_B0UNDARY_DATAS0URCE ",並對其的欄位信息進行賦 值,如表1所示。
[0045] 表1邊界值方法能數據源表TPM_B0UNDARY_DATAS0URCE
[0046]
【權利要求】
1. 一種自動生成測試用例的方法,其特徵在於,包括: 建立測試用例管理平臺以控制測試用例的生成;所述測試用例管理平臺包括控制層、 業務邏輯層和數據訪問層; 獲取用戶輸入的操作指令; 所述控制層通過發出控制代碼監測頁面跳轉邏輯關係,收集用戶請求數據,轉發用戶 請求,以及根據用戶的操作指令控制所述測試用例管理平臺跳轉至指定的顯示頁面; 所述業務邏輯層根據所述控制層所監測得到的頁面跳轉邏輯關係,將用戶的操作指令 轉化為業務邏輯; 所述數據訪問層包括測試用例資料庫和測試用例模板庫,根據所述業務邏輯與所述測 試用例資料庫進行數據傳輸與存儲,並將控制數據傳輸與存儲的訪問控制命令進行獨立封 裝; 根據用戶的操作指令確定測試參數與數據類型;根據所述測試參數和所述數據類型在 所述測試用例管理平臺上構造測試數據; 通過所述數據訪問層調用所述測試用例模板庫中預設的用例模板,並根據所述用例模 板將所述測試數據按照用例設計方法自動渲染以生成測試用例。
2. 如權利要求1所述的自動生成測試用例的方法,其特徵在於,所述用例設計方法為 等價類劃分法。
3. 如權利要求1所述的自動生成測試用例的方法,其特徵在於,所述用例設計方法為 邊界值分析法。
4. 如權利要求1所述的自動生成測試用例的方法,其特徵在於,所述用例設計方法為 正交試驗設計法。
5. 如權利要求1?4任一項所述的自動生成測試用例的方法,其特徵在於,所述測試用 例管理平臺還包括測試數據生成工具; 通過所述測試數據生成工具對測試數據的數據類型進行定義與修改,並根據用戶的操 作指令錄入、修改或刪除測試數據。
6. 如權利要求5所述的自動生成測試用例的方法,其特徵在於,還包括:通過所述測試 數據生成工具建立數據組,對所述數據組的用例設計方法以及關聯狀態進行設置。
7. 如權利要求5所述的自動生成測試用例的方法,其特徵在於,還包括:建立關鍵字與 測試用例功能點的關聯關係,形成功能點列表文件; 將所述功能點列表文件導入所述測試用例管理平臺,根據用戶所輸入的關鍵字選中所 述測試用例模板庫中預設的用例模板,並根據所述功能點列表文件自動生成測試用例。
8. 如權利要求7所述的自動生成測試用例的方法,其特徵在於,所述測試用例管理平 臺設有多種用戶權限; 在所述測試用例管理平臺上導入所述功能點列表文件之前,判斷當前操作用戶是否具 備基於關鍵字的用例設計權限;若當前用戶為具備基於關鍵字的用例設計權限的用戶,則 在根據所述功能點列表文件自動生成測試用例。
【文檔編號】G06F11/36GK104123227SQ201410397663
【公開日】2014年10月29日 申請日期:2014年8月13日 優先權日:2014年8月13日
【發明者】魏理豪, 錢揚, 梁哲恆, 龍震嶽, 張金波 申請人:廣東電網公司信息中心