孫振
摘 要:本文通過對于安卓系統應用自動化測試的研究背景和利弊分析,并且分析了自動化測試系統的現狀和存在的問題。并且提出了一種新型自動化測試框架來針對于以往自動化測試框架的局限性進行解決。并對自動化測試系統的構造和其中關鍵的技術難點進行了全面的分析論證,從而使得自動化測試的應用情景得到了極大的拓展,從而能夠滿足用戶的不同訴求。
關鍵詞:手機系統;自動化測試;安卓;研究
一:自動化測試框架的發展和利弊分析
軟件測試則是在軟件開發運行中不可忽略的重要步驟,在軟件投入運行前,工作人員需要對軟件進行該軟件的功能、穩定性、等方面的相關測試。借助測試發現系統中的漏洞并加以修改,以此持續完善軟件的使用的感受,給用戶提供良好的體驗感。
目前針對軟件的測試方法中,我們可以通過手工和自動化兩種方式來對軟件進行相關的測驗。前者是通過人工方式來對軟件的各方面性能進行測試。在測試完成后,根據結果記錄數據和問題,這種測試方法存在著一定的缺陷:就是測試的效率不高并且容易留下疏漏,目前已經被人們所拋棄。
但是后者因為出色的測試方式,目前被市場上越來越多的公司認可并投入使用,很多國內大型公司看上了自動化測試的優秀前景,隨后開發了自己的測試系統。部分公司,如百度,騰訊開展了外包業務來為第三方軟件提供測試服務。
就目前而言,安卓所采用的自動化測試框架根本都是通過安卓所提供的ADB來進行,僅僅是在自身架構上做出了一定的改變和調整。但ADB的使用僅僅限于局域網,因此對于場景的要求上存在著統一性,因此大大限制了測試終端和服務器的使用。因此目前的自動化測試框架具有一定的局限性。
然而本文的研究對象的區別是在于建立測試腳本,通過代碼模擬來對實際的操作進行推斷,借助于自動化框架來進行測試,最終得到一個完整的測試結果,這種測試方法測試速度得到了很大的提升,同時也提高了測試的準確性。這種新的測試框架,節省了大量的人工和時間,應用于軟件測試上給軟件的開發也帶來了很大程度上的便利。
二:測試框架設計方案
將上文闡述的自動化測試的特征作為理論參考的前提下,我們構架并設計了一種新型的自動化測試的方案。在方案中,我們把測試平臺和云端平臺想結合,因此解放了測試終端的使用,使得測試可以沒有場地限制僅僅需要介入網絡就能開始進行自動化測試。設計的方案具體構架方式如圖1。
自動化測試中的管理系統是一個統一并且集中的管控平臺,具體的構成為:測試終端管理、測試用例管理、測試執行管理、測試日志管理、系統管理等功能模塊。
具體如圖2所示。
其中不同模塊具有的功能也不同:
(1)測試終端管理:對管理測試終端進行連接。具體表示為可以使用多個終端來和平臺連接進行測試,同時在測試的過程中自動識別其中重要的信息,隨后查詢測試終端然后分配測試任務。
(2)測試用例模塊:接受上傳例并導入用例庫。記錄測試用例中包含著測試時間,版本等不同的信息數據。并且支持各種編輯排序等操作,然后在經過一系列的編輯操作等步驟之后分配適合的終端。
(3)測試執行模塊管理:該模塊是對于測試的全部過程進行管理,監控測試過程和終端的使用情況。最后將測試結果用圖形的方式來表達出來。并且測試進度和測試項目進展可以通過進度條來表示出來。
(4)日志管理:對已完成的測試數據和原始日志進行統計處理和報告制作并用HTML或者Excel來表達出來以便查閱瀏覽。
(5)系統管理:具有系統配置和管理功能,如用戶、備份、操作查看等。
三:實現的技術難點
3.1Appium測試框架
對比Monkey、MonkeyRunner、UiAutomato、Robotium、Appium等測試工具,這些軟件的不同之處如下:
1:Monkey可以針對于軟件的穩定性進行測試,通過發送隨機的指令來對程序處理的穩定性進行考評。。
2:MonkeyRunner由于可以識別Python的編程語言,因此可以實現腳本的錄制和回放,這一特點能夠針對應用程序進行功能測試以及回歸測試;
以上兩個測試軟件具有一定的共同點:Monkey和MonkeyRunner都是AndroidSDK自帶的;
另外UiAutomator自動化測試框架,具有簡單的操作性,缺點在于無法通過控件ID來控制;
第三種Robotium支持模擬各種操作的API,缺點是無法進行跨進程的一系列測試;
Appium能過識別轉化不同編程語言的腳本。并將解讀后的指令分發到不同的測試終端。同時不同進程、平臺、應用的測試可以在這個框架中實現,故而這類測試框架目前取得了一定的市場認可率。這幾類測試框架的對比如表1所示。
基于對框架的綜合功能、性能、穩定性、可用性等多方面的適配,以及跨語言、不需要重新簽名、跨平臺、跨應用的優點,因此我們選擇了Appium的云自動化測試系統應用到本篇研究中。
四:結束語
由于具有強大的優勢,越來越多的互聯網企業和軟件應用開發公司開始采用Android應用的測試技術。
而大量的實際結果和市場信息也驗證了自動化測試相比于人工測試具有壓倒性的優勢。自動化測試可以進行全方面的測試,不留下一點點測試漏洞。并且測試結果準確性高同時耗費時間短,為開發團隊節省了大量的隱藏成本,加快了軟件的應用進度。
在本篇研究中通過對比現在的局域網內自動化測試方案,得出了對比結果,在結果的參考下分析了每一種測試框架的適用范圍和優缺點,結合當下自動化測試中的問題和障礙,對原有框架進行了??,最終設計了一種新的基于云環境的安卓自動化測試方案。通過云端搭建接入測試平臺和測試終端完美實現了自動化測試中的無場景限制。這種方案放寬了測試中場景的條件,從而為應用測試提供了很大的幫助。
參考文獻:
[1]張新玲,趙霞,張東.云管理平臺自動化測試框架研究[J].軟件導刊,2013,(10)
[2]魯程.基于云平臺的移動互聯網自動化測試系統的研究與實現[D].北京:北京交通大學,2015
[3]高麗萍.云環境下自動化測試的研究與實現[D].西安:西安工業大學,2016
[4]劉翔宇.基于云服務的自動化測試系統的設計與實現[D].哈爾濱:哈爾濱工業大學,2014
[5]馬亞明.基于selenium的前端自動化云測試平臺[D].南京:南京大學,2015