王瑩 郭昌
【摘要】 隨著近年的移動互聯網發展,Android平臺應用開發成為熱點。本文針對Android平臺的移動應用軟件開發到軟件系統測試之間的效率問題,提出在該平臺下移動應用軟件開發持續集成的項目代碼管理方法,實現自動化測試。實踐結果表明,該方法能夠大幅度縮減測試時間,有效提升測試工作效率,減少測試工作的重復勞動。
【關鍵詞】 Android 持續集成 自動化測試
隨著近年的移動互聯網發展,Android智能終端操作系統,逐漸成長為唯一能與iOS系統抗衡的對手,而其在用戶基數上還要超過iOS,因此也帶來了Android平臺的應用開發熱潮,其相關技術也成為熱門的發展方向。
作為Android平臺的軟件開發項目,有著傳統PC軟件開發項目的一些共性,又有身為移動端應用的自身特點。
一、應用軟件開發過程與自動化持續集成的關系
移動互聯網中的移動應用開發項目越來越多,而所有的項目都要經歷從產品需求、軟件開發到交付用戶使用這一工作流程,如圖1所示。從工作流程來看,軟件測試在移動應用軟件開發項目工作流程中的作用是不可或缺的,移動應用軟件開發項目交付用戶使用過程中必須經歷軟件系統測試。
我們實驗項目中的持續集成由監控的SVN代碼主干或分支的CI動作觸發,主要解決軟件開發到軟件系統測試之間的效率問題,追求的是開發人員和測試人員間近乎零時間開銷的交付,從而使軟件項目中最重要的兩個角色都能更專注自己的工作,從繁復的版本交付中出解放出來。
實現持續集成需要做的工作如下:1)統一代碼配置管理。本文的持續集成實踐,項目代碼管理使用的是Subversion開源版本控制系統。2)將開發代碼轉變為可用于測試的APP安裝包,主要包括開發Python腳本、編譯打包、簽名、構建安裝包這幾個重要環節。3)使用Android 提供的monkeyrunner 實現APP的自動化測試。4)使用Hudson 進行持續集成工作的管理。
二、持續集成的實現
2.1 Subversion的部署
SVN選擇Apache HTTP 服務器。規劃的SVN項目代碼的目錄結構如圖2所示。
其中:trunk分支為項目持續集成分支;tags 分支為項目版本發布的代碼里程碑分支;branches分支為各種驗證性及臨時代碼分支。
2.2 APP for Android 安裝包的構建
首先配置Android開發環境,選取適當的SDK版本;再.用Python腳本實現:1)為項目源代碼建立android工程目錄;2)用Ant編譯工程目錄,根據需要產生Debug 或Release 安裝包;3)為Release安裝包簽名;4)對最后的安裝包進行驗證,來執行自動化整合。
三、持續集成工具---Hudson的部署
先在Ubuntu安裝Hudson,然后在Hudson中根據項目需求建立工程:1)實現對項目SVN版本庫的監控,設置為開發人員代碼提交觸發,使每一次的功能提交,都會有對應的可發布狀態安裝包交付測試;2)在建立的工程項目中根據項目需求,調用自動化腳本組,實現不同的持續集成需求。
四、實踐結果
上述持續集成方案應用前后同工作量時間開銷對比如圖3所示。應用前使用手動操作集成,含有開發人員與測試人員溝通耗時、手動輸入命令耗時、編寫郵件耗時、記錄及存儲測試包耗時等碎片時間;應用后無碎片時間。實踐結果表明,該方法能夠有效提升測試工作效率,大幅度縮減測試時間,減少測試工作的重復勞動,更重要的是把開發人員從項目編譯到送交測試的活動中解放出來,使開發和測試人員更好的專注本職工作,提高了團隊的研發效率。
參 考 文 獻
[1] 宋春雨.Android平臺自動化測試的研究與實踐[D.北京:北京郵電大學,2012.
[2] 楊怡君,黃大慶.Android手機自動化性能測試工具的研究與開發[J].計算機應用,2012,32(2):554-556
[3] Subversion 與版本控制[EB/OL] http://svnbook.red-bean.com/