相比iOS有規律的軟體版本和硬體升級,Android的碎片化加大了應用的開發和測試成本。下面這張圖就說明了Android的分化情況(截至10月1號):


不過,現在各種基於雲端的應用測試技術也為開發者提供了新出路,這類技術可以讓他們快速檢視應用在各類硬體裝置上的執行情況。我們曾在7月份報導過百度的Android4.1雲測試服務,可為開發者提供幾十種主流的移動終端裝置及模擬器,而在剛剛過去的PIE Demo Day上,國外一家提供類似的雲測試服務的公司AppThwack則強調了問題的解決在於測試的自動化。AppThwack有一個自己的測試實驗室,這個實驗室同樣包含不同版Android作業系統、不同硬體係數的各類Android裝置用於測試,具體流程如下:

  • 通過網站的拖放功能安全上傳應用
  • AppThwack會在各個手機和平板上執行你的應用,並進行各類測試、收集資料
  • 你可以實時地檢視螢幕截圖,高階結果、日誌、堆疊跟蹤和趨勢

 

這家公司從7月份到現在已經執行了57.9萬次測試。而針對Android平臺上的應用開發和測試,AppThwack創始人還給出瞭如下幾個建議:

  • 在應用開發過程中,編寫測試程式碼很重要。這一步你可以通過JUnit(標準單元測試框架), Robotium(一個開源的自動化庫,可以讓你輕鬆編寫用於模擬使用者互動的JUnit測試)或者諸如 Gorilla Logic的MonkeyTalk這類可提供Android和iOS跨平臺測試的工具。
  • 在把應用推給使用者之前,你是沒有辦法檢測到所有bug的。所以,諸如BugSense和Crittercism這類工具就提供了一種解決方案,當一款應用在一名實際使用者的裝置上崩潰時,它們可以自動獲取錯誤報告。
  • Apptentive(目前由位於西雅圖的TechStars孵化,所以國內的開發者應該用不上)的服務則可以讓你跟客戶取得實際的聯絡,並由此發現應用哪部分可以正常工作,哪部分有問題。他們主要專注於幫你發現那些真正喜歡應用的客戶,讓他們在應用商店留下好評提高應用評級。
  • 最後,ActionBarSherlock可以讓一款安裝在舊版Android作業系統上的應用優雅“降級”。也就是說,在舊版裝置上,應用功能要麼被模擬要麼被替換,而開發者則可跳過傳統的程式碼分支——多重的程式碼分支往往容易造成錯誤,而且隨著Android的碎片化的愈演愈烈也會變得更復雜。

對開發者、尤其是那些成本有限的開發者來說,求助定製化的測試服務或許是個不錯的方案,而諸如AppThwack這樣的公司可以為他們推薦各類工具和解決方案,甚至幫他們編寫測試程式碼。另外,Testdroid也能提供類似服務,而且比AppThwack做得更久。在國內,除了之前提到的百度雲測試平臺以外,比較知名的測試平臺還包括Testin,中國移動MM社群終端池等等。

via:36kr