相比iOS有規(guī)律的軟件版本和硬件升級,Android的碎片化加大了應用的開發(fā)和測試成本。下面這張圖就說明了Android的分化情況(截至10月1號):
不過,現(xiàn)在各種基于云端的應用測試技術也為開發(fā)者提供了新出路,這類技術可以讓他們快速查看應用在各類硬件設備上的運行情況。我們曾在7月份報道過百度的Android4.1云測試服務,可為開發(fā)者提供幾十種主流的移動終端設備及模擬器,而在剛剛過去的PIE Demo Day上,國外一家提供類似的云測試服務的公司AppThwack則強調(diào)了問題的解決在于測試的自動化。AppThwack有一個自己的測試實驗室,這個實驗室同樣包含不同版Android操作系統(tǒng)、不同硬件系數(shù)的各類Android設備用于測試,具體流程如下:
- 通過網(wǎng)站的拖放功能安全上傳應用
- AppThwack會在各個手機和平板上運行你的應用,并進行各類測試、收集數(shù)據(jù)
- 你可以實時地查看屏幕截圖,高級結果、日志、堆棧跟蹤和趨勢
這家公司從7月份到現(xiàn)在已經(jīng)運行了57.9萬次測試。而針對Android平臺上的應用開發(fā)和測試,AppThwack創(chuàng)始人還給出了如下幾個建議:
- 在應用開發(fā)過程中,編寫測試代碼很重要。這一步你可以通過JUnit(標準單元測試框架), Robotium(一個開源的自動化庫,可以讓你輕松編寫用于模擬用戶交互的JUnit測試)或者諸如 Gorilla Logic的MonkeyTalk這類可提供Android和iOS跨平臺測試的工具。
- 在把應用推給用戶之前,你是沒有辦法檢測到所有bug的。所以,諸如BugSense和Crittercism這類工具就提供了一種解決方案,當一款應用在一名實際用戶的設備上崩潰時,它們可以自動獲取錯誤報告。
- Apptentive(目前由位于西雅圖的TechStars孵化,所以國內(nèi)的開發(fā)者應該用不上)的服務則可以讓你跟客戶取得實際的聯(lián)系,并由此發(fā)現(xiàn)應用哪部分可以正常工作,哪部分有問題。他們主要專注于幫你發(fā)現(xiàn)那些真正喜歡應用的客戶,讓他們在應用商店留下好評提高應用評級。
- 最后,ActionBarSherlock可以讓一款安裝在舊版Android操作系統(tǒng)上的應用優(yōu)雅“降級”。也就是說,在舊版設備上,應用功能要么被模擬要么被替換,而開發(fā)者則可跳過傳統(tǒng)的代碼分支——多重的代碼分支往往容易造成錯誤,而且隨著Android的碎片化的愈演愈烈也會變得更復雜。
對開發(fā)者、尤其是那些成本有限的開發(fā)者來說,求助定制化的測試服務或許是個不錯的方案,而諸如AppThwack這樣的公司可以為他們推薦各類工具和解決方案,甚至幫他們編寫測試代碼。另外,Testdroid也能提供類似服務,而且比AppThwack做得更久。在國內(nèi),除了之前提到的百度云測試平臺以外,比較知名的測試平臺還包括Testin,中國移動MM社區(qū)終端池等等。
服務熱線
1876-1997884