PC自動化測試平台系統

1. 技術領域

軟件測試,自動化測試,軟件工程。

2. 背景技術

自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測

試用例並通過評審之後,由測試人員根據測試用例中描述的步驟一步步執行測試,得到

實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬件資源,提高測試

效率,便引入了自動化測試的概念。

自動化測試與軟件開發過程從本質上來講是一樣的,是利用自動化測試工具(相當於軟件開發工具),經過對測試需求的分析(軟件過程中的需求分析),設計出自動化測試用例(軟件過程中的需求規格),從而搭建自動化測試的框架(軟件過程中的概要設計),設計與編寫自動化腳本(詳細設計與編碼),測試腳本的正確性,從而完成該套測試腳本(即主要功能為測試的應用軟件)。

自動化測試腳本的開發一般有兩種方法,一種是通過手工運行一次測試,同時使用自動化測試工具的錄製功能,把所進行的操作記錄下來,生成測試腳本。這種技術生成的腳本回放成功率比較低,後期維護也比較困難。 第二種方法是編寫測試框架,對測試需要的基礎操作提供接口供調用,測試人員根據用例操作需求,手工編寫調用接口的自動化測試腳本,這種方法對測試人員的代碼水平要求很高。

現有方案一及其缺陷:

目前PC客戶端自動化測試框架下,自動化腳本的開發和運維成本較大,用例腳本都需要一定代碼基礎的人員才能編寫和維護。而且很難進一步降低成本。

3. 技術方案描述

要解決的技術問題:

  1. 功能測試人員無法編寫和維護自動化用例腳本。

  2. PC自動化測試平臺系統

2. 自動化測試框架或平臺需要適應快速迭代的被測對象版本。

整體思路:

設計一個自動化測試平臺,適合大部分PC客戶端應用的基於用戶界面的自動化測試。通過將自動化測試對象的識別、操作、驗證等自動化測試過程中涉及到的所有內容都進行封裝並提供關鍵字,自動化測試平臺可以支持普通測試人員快速的定位測試對象,編寫/維護用例腳本,執行腳本,查看測試結果。

技術方案:

1. PC客戶端自動化測試平臺功能概述:將代碼實現的各種自動化底層功能進行抽象、封裝後,將其包含的各種對象、方法等內容映射為關鍵字;功能測試人員可以通過組裝關鍵字來編寫用例腳本。下面是功能用例圖:

PC客戶端自動化測試平臺用例圖

2. 平臺的各個功能模塊:

3) 用例解析模塊:功能包括用例腳本解析,腳本(偽碼)的格式檢查功能;

4) 用例執行模塊:功能包括根據解析模塊提供的解析結果,組織用例執行流程,執行單條/多條用例腳本;

5) 底層支撐模塊:功能包括被測程序調起和管理、被測程序的GUI窗口、控件的識別、封裝和關鍵字提供,以及其他自動化測試需要的真實代碼封裝。

6) 對象工廠:負責除了web界面外所有模塊相關對象的構建和依賴關係的建立。

3. 平臺各功能模塊接口:

1) 用例腳本管理模塊:需提供用例腳本管理接口IScriptManagment,以上定義的本模塊功能,均在此接口上實現或擴展子接口。

2) 腳本解析模塊:需提供用例解析接口IScriptParse,所有偽碼解析功能均在此接口下實現。

3) 腳本執行模塊:需提供用例執行程序,例如具體可以jar包方式,使用java web start的部署方式在平臺web頁面上調起。

4) 自動化支撐模塊:需提供測試對象接口ITestObject(包括窗口、控件等,這些內容均繼承該接口),測試幫助類接口ITestAssistant(包括模擬鼠標鍵盤操作等輔助性的功能),操作系統對象接口ISystemObject(包括系統文件、註冊表、時間、環境變量等系統對象的方法)以及飛客戶端應用程序用戶接口IUser(提供對客戶端應用程序用戶和進程的各種操作);其中ITestObject、ISystemObject和IUser三個接口需要定義一個判斷對象是否有效的靜態方法,供偽碼格式檢查使用。

5) 平臺web界面,界面分為兩部分:1.根據各模塊需求定義控件和佈局;2.給各個web控件添加控制邏輯,此時需要IScriptManagment和IScriptParser的接口支持。

6) 對象工廠:提供獲取所有接口對象的靜態方法。以上所有功能模塊,對依賴的其他模塊的接口,均需要定義setter,由對象工廠在構造時傳入依賴,實現依賴倒轉。

4. 自動化測試平臺各功能模塊之間的依賴關係:

`

PC自動化測試平臺系統

自動化測試平臺模塊UML圖

4. 技術方案的關鍵點和保護點

1. 基於web界面的自動化測試平臺

2. 完整的關鍵字驅動模式,所有測試相關內容都封裝並映射為關鍵字

3. 測試用例腳本與底層代碼完全隔離,版本升級後,用例修改只需改動用例腳本本身。

4. 自動化測試平臺的腳本不採用現有的腳本語言,而定義簡單的、適合自動化測試的文本格式規範,即使用“偽碼”。


分享到:


相關文章: