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