張恩海+王鐸+于晉瑄
摘要:隨著移動互聯行業和物聯網的興起,應用層軟件比之以往無論在功能還是結構的復雜程度上都有很大的提高,隨之而來的質量問題也大大增多。故對應用層軟件的高效測試工作變得尤為重要。本文設計與實現了一種高效的自動化軟件測試系統。本系統利用云管理平臺的高性能計算能力實現對整個測試系統的監控管理。在測試腳本編寫方面,采用流行的Python和JavaScript腳本語言,并建立了靈活安全的腳本管理系統,適用性廣泛。測試應用模塊,通過圖像匹配,成功兼容不同移動終端。對于測試結果,采用實時上報、分類存儲的模式。測試結果顯示,該系統工作良好,能夠滿足高效軟件測試的要求。
關鍵詞:智能移動終端應用層軟件自動化測試云管理平臺
中圖分類號:TP31 文獻標識碼:A 文章編號:1672-3791(2015)01(c)-0000-00
引言
隨著4G網絡的快速發展,智能終端的迅速普及,數十萬的App應用、不計其數的移動Web和HTML5的蓬勃興起,人們正在享受越來越便捷的移動互聯生活。隨著應用的普及,用戶對App、移動Web、HTML應用的體驗要求也越來越高,各個服務提供商在比拼客戶服務質量時候,愈發關注用戶使用的真實體驗。Android平臺以其良好的開放性,各類基于Android的智能移動終端在快速發布。故對于Android App的開發也日趨熱門。然而各類Android App因為智能終端不能正常安裝、意外錯誤、強制退出等嚴重影響用戶體驗的缺陷越來越多[1],開發者對于全球移動設備的質量和性能掌握甚少,App與移動設備的兼容性問題常常導致用戶投訴。App測試與服務質量保障矛盾十分突出,最顯著的情況是,APP無法與移動終端有效適配,這給開發者帶去大量的損失。
1 系統概述
為解決上述問題,故建設基于云平臺的自動化撥測系統,實現對不同應用的功能與性能的測試,實現根據腳本進行的定制的功能性測試,使其具有良好的可擴展性和可重復性[2]。所謂軟件自動化測試就是執行由某種程序設計語言編制的自動測試程序控制被測軟件的行為, 模擬手工測試步驟,完成全自動或半自動測試[3]。系統由兩部分組成,分別是云管理平臺和移動應用軟件測試客戶端。云管理平臺是整個系統的核心,完成包括與中央平臺通信,下載測試腳本及測試任務,上報測試結果,以及管理和驅動整個測試過程的任務[4];客戶端部分即是真正實現測試行為的部分,完成包括測試腳本解析,測試任務執行,測試用例實現,測試結果上報,測試日志記錄的任務,并具有一定的差錯控制能力,保障整個測試過程的完整與精確。
系統功能架構如下圖1所示。
圖1 自動化測試系統功能架構
2 系統設計方案
本系統的設計重點就著眼于以比較小的維護代價有效地幫助用戶降低測試成本,同時提高軟件產品的質量監控,并降低測試工程師的工作強度和復雜度。
本自動化測試系統將分為三個部分,測試管理服務器(Test Management & Repository),測試PC客戶端(IDE & Test Runner)和智能移動設備測試代理程序(Test Agent)。系統覆蓋了設計開發測試腳本,測試資源(測試PC,測試設備,測試腳本和測試日志)管理,測試任務運行,測試任務管理,測試狀態監控,測試日志管理和測試報告上報的全部測試流程。系統架構如下圖2所示。
圖2 系統架構圖
2.1測試管理服務器
負責管理系統中所有的測試資源,包括測試PC,測試設備,測試腳本和測試日志;管理測試任務;監控測試狀態;發送測試報告;保存測試日志。
用戶登陸到服務器,選擇測試腳本,配置測試PC和測試設備后,創建測試集合,啟動自動化測試。測試進行過程中,用戶可以登陸到服務器監控當前的測試狀態。同時測試管理服務器將會增加測試腳本版本控制功能,幫助用戶高效的管理開發設計的測試腳本。測試集合由1個或多個測試工程組合而成,測試工程之間可以由一定邏輯關系組合而成,方便用戶自定義所需的測試集合內容。
2.2 測試PC客戶端
由兩部分組成,IDE和Test Runner。支持Python和JavaScript兩種流行腳本引擎,監控當前連接的測試設備運行狀態。其中IDE為用戶提供開發設計測試腳本的環境,并同步顯示測試設備的屏幕內容,提高用戶開發效率。Test Runner接受并運行測試管理服務器下達的測試任務,同步更新測試狀態和測試日志到服務器端。
2.3 智能移動設備測試代理程序
安裝在測試設備上,負責接收測試指令,解析并執行測試指令,返回測試結果。系統支持目前市場上流行的智能移動設備,包括Android、Symbian、BlackBerry和WinCE系統的設備,可使用USB或WIFI的通訊方式和測試PC客戶端進行數據通訊。
3 系統實現
系統根據測試需求的邏輯編寫測試腳本[5],可支持Python和JavaScript兩種流行腳本引擎。系統通過測試腳本驅動測試接口,測試設備根據測試接口執行測試動作并回饋測試結果,并根據回饋的測試接口的執行結果判定測試結果。同時系統采取分布式結構來部署整體測試系統,各個模塊的功能相對獨立,以通信協議方式進行聯動工作,形成高效自動化測試系統。本系統是開放式系統,即任何符合通信協議的被測試終端都可以被此自動化測試系統所支持。
3.1 自動化測試腳本編寫工作流程
測試腳本編寫流程,具體分為6個步驟,每個步驟的工作描述如下。
1)用戶使用IDE進行測試腳本編寫調試工作。用戶根據測試需求和當前的測試設備編寫調試測試腳本和錄制測試驗證點,按測試需求填寫測試數據到測試用例描述表中。
2)執行測試腳本。IDE根據編寫好的測試腳本執行測試腳本。
3)IDE發送測試指令到測試設備。IDE按通信協議格式發送測試指令到測試設備。
4)測試設備解析并執行測試指令。測試設備按通信協議規則解析出測試指令并執行測試指令。
5)測試設備回饋測試指令執行結果。測試設備按通信協議規則打包發送測試指令的執行結果數據。
6)IDE傳輸完成編寫調試的測試腳本工程到測試管理服務器。IDE按通信協議打包壓將完成編寫調試的測試腳本工程上傳到測試管理服務器。
3.2 自動化測試工作流程
自動化測試工作流程,具體分為8個步驟,每個步驟的工作描述如下。
1) 用戶通過測試管理服務器創建測試規則、測試任務、啟動測試。用戶根據已有或新建的測試規則創建應用于某一測試設備的測試任務并填寫發送測試報告的郵箱地址等信息后開始這一測試任務。
2) 測試管理服務器發送測試任務數據包到測試執行單元。測試管理服務器根據用戶創建的測試任務將需要測試的測試數據壓縮包發送給測試執行單元。
3) 測試執行單元解析測試任務數據,開始測試。測試執行單元解析出測試任務中包含的測試腳本并執行測試腳本。
4) 測試執行單元發送測試指令到測試設備。測試執行單元按通信協議格式發送測試指令到測試設備。
5) 測試設備解析并執行測試指令。測試設備按通信協議規則解析出測試指令并執行測試指令。
6) 測試設備回饋測試指令執行結果。測試設備按通信協議規則打包發送測試指令的執行結果數據。
7) 測試執行單元同步傳輸測試日志到測試管理服務器。測試執行單元按通信協議規則打包發送測試日志到測試管理服務器。
8) 測試管理服務器展示測試日志和發送測試報告給用戶。測試管理服務器展示測試日志信息,根據測試日志信息匯總為測試報告發送給用戶指定郵箱。
4 系統運行結果分析
選取一些待測應用軟件進行測試腳本的編寫,并在實體設備上進行測試。分析測試過程和測試結果可見,本自動化測試系統可以大大提高測試效率,降低測試成本,并將系統維護成本最小化。原本手動測試需要600分鐘的工作,本系統只需要300分鐘,且完全自動化測試,不需要人工操作,大大節省的勞工成本。
相比于目前流行測試系統的TestQuest[6],本系統可降低自動化測試腳本的維護成本,提高自動化測試腳本的重用度。下舉例說明。當測試點的圖片發生改變時,TestQuest系統需重新錄制所有測試用例所需的測試點圖片;但是本系統只需要修改相應的發生改變的測試點圖片匹配率即可滿足測試用例的新的要求,大大提高了自動化測試腳本的重用度。
5 總結與展望
本文針對應用層軟件無法與移動終端有效適配的問題,設計與實現了移動終端應用層軟件的自動化測試系統,在保證移動終端軟件質量和友好的用戶體驗的同時,大大降低了軟件工程師工作的強度和復雜度,并且起到了幫助企業降低測試成本的作用。未來可對此系統進行進一步的優化,根據用戶需求的改變來適配,并推廣到更廣闊的市場中去。同時也可以考慮對測試步驟進行進一步的精簡,以使測試系統更加靈活簡潔。
本文所實現的自動化測試系統,支持所有目前市場上流行的智能移動設備,并且覆蓋智能移動設備的軟件功能測試、軟件性能測試、設備基本功能測試等多種測試種類,應用廣泛。隨著移動互聯網的飛速發展,智能終端應用層軟件在功能和結構上的復雜程度都大大提高了,應用本文所提出的測試系統對其進行自動化測試,可大大提高軟件測試效率,故本文所提出的軟件自動化測試系統有較大的實際意義與設計價值。
參考文獻:
[1] 常遠. 手機軟件自動化測試的研究與實現[D]. 北京郵電大學, 2010.
[2] FEWSTER Mark,GRAHAM Dorothy.軟件測試自動化技術[M].北京:電子工業出版社,2000.
[3]蔡建平,李金鳳.軟件測試大學教程[M].北京:清華大學出版杜,2009:240~269.
[4] 張新玲, 趙霞, 張東. 云管理平臺自動化測試框架研究[J]. 軟件導刊, 2013, 12(10): 15-17.
[5] 陳計喜, 姜麗紅. 自動化功能測試的方法與實現[J]. 計算機工程, 2005, 30(B12): 168-169.
[6]陸澄澹, 周華, 聞宏強. 淺析基于TestQuest的移動終端應用軟件測試方法[J]. 電子世界, 2014 (16): 114-114.