[GTAC][2014] The Importance of Automated Testing on Real and Virtual Mobile Devices

Appurify 的創辦人兼 CEO – Jay Srinivasan 在這個場次為大家說明為什麼 “在實機 (real device) 上測試" 這件事很重要,以及 Appurify 提供了什麼樣的解決方案。

Tip Google 在 I/O 2014 上宣佈收購 Appurify 的消息,試圖用自動化測試來緩解 fragmentation 的問題,除了做為一個免費的跨平台測試服務 (目前支援 Android 跟 iOS),未來也會整合進 Google 的開發平台裡。

為什麼 “在實機上測試" 這件事很重要?簡單地說,因為使用者每天用實機,我們也該在實機上測試。再者,根據 Appurify 的經驗,很多 crash、網路、電池或記憶體相關的問題都只會在實機上出現,而這些問題攸關使用者的評價與公司的收益。

Note 這裡要表達的是,除了 emulator/simulator 之外,也該在實機上測試。雖然在其他場次 Google 內部的講者也承認 emulator 速度慢且不穩定,很多時候被迫放棄 emulator 得在實機上測試,但 Google 內部因為 scalibility 而主張在 emulator 上執行自動化測試的說法依然成立,這在 Day 2 最後一場 Going Green: Cleaning up the Toxic Mobile Environment 會提到。

講者一開始以之前遊戲公司同時間推出兩款類似的 app 為例,主要的差異在於 App1 事前投入的 QA 資源較少,結果 App1 的 DAU (Daily Active Users) 持續下滑。這點出了一個問題,假設兩款 app 在功能、設計上都沒問題,但使用者確實很容易因為 app 不穩定或效能不佳就決定出走。

importance-real-virtual-devices-appurify/users_punish_apps_with_bugs.png
圖 1. 事前投入 QA 資源的多寡與 ratings/revenue 的關係 (資料來源 GTAC 2014 – YouTube)

 

分析了 app store 上負評 (bad/poor review) 的原因,雖然 47% 跟使用者的喜好有關 (non-perf related),這部份是我們比較無法控制的,但好消息是剩下的 50% 是我們肯定可以做些什麼的,包括 crash、沒有處理好網路不佳的狀況、不流暢 (laggy) 等,其中又以 crash 佔最大宗 40%。

importance-real-virtual-devices-appurify/not_just_functionality.png
圖 2. 負評的原因分析 (資料來源 GTAC 2014 – YouTube)

 

進一步分析也發現,crash 跟 bad/poor review 兩者確實呈現正向關係。這表示,只要在上架前找出並解掉 crash 跟 laggy 的問題,就能大幅減少 app store 上的負評。

importance-real-virtual-devices-appurify/crash_review_correlation.png
圖 3. Crash 跟 bad/poor review 的關係 (資料來源 GTAC 2014 – YouTube)

 

多數時候我們都只專注在 functional test、UI 跟 UX,而忘了或無力把 user conditions 給考量進來 (包括手機硬體差異、地理位置、網路狀況、螢幕轉向、電力、記憶體等),但這些通常是上線後 crash 會爆出來的地方。沒錯,在原本 fragmentation 之上再疊加 user conditions,測試工作變得更加嚴峻,尤其是 Android。

要怎麼 “有效地" 找出這些 “潛在" 的問題呢?不意外地,方法是透過自動化測試,但也不全然是?

當然,Appurify 支援許多 test frameworks,它的做法是支援所有的 test framework,但立場是沒有偏好哪一個 framework。講者提出了一個特別的觀點,值得我們反思:

自動化測試不容易撰寫、容易壞掉 (brittle)、要花時間維護,因此從功能性測試的觀點,會選擇性地測試某些重點。之後這些自動化測試終將變得很穩定,不再回報任何錯誤… 剩下的 crash 其實是來自使用者 “不預期的操作"。

確實,自動化測試只能顧好基本盤;不論是自動或手動測試都有相同的盲點 – 按照事先設計好的步驟做測試,自然無法發現不預期的操作會有什麼問題。

針對這一點,Appurify 提出的方案是 Robot App Crawler,它會自動找出畫面上可以點擊的 UI element,動態爬過所有的畫面並觸發可能造成 crash 的操作 (不需要寫 test code),藉此補足自動化測試不足的那一塊。除了全程錄影之外,也會自動將過程中 device log 及電力、網路、CPU、記憶體的變化記錄下來 (actionable data 的概念),方便重現過程中找到的問題。 (DEMO)

未來 Appurify 會以什麼樣的姿態整合進 Google 的開發工具?值得我們期待!

廣告

One thought on “[GTAC][2014] The Importance of Automated Testing on Real and Virtual Mobile Devices

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s