UI 自動化測試是透過程式模擬使用者的操作,並檢查應用程式的行為是否正確,主要用於驗證功能性需求 (functional requirements)。
早期由於官方在 UI 自動化測試這一段不夠給力,有許多主要是基於 Android instrumentation 的第三方 UI 測試工具被發展出來,例如 Robotium、 Selendroid、 Appium、 Calabash 等,其中 Robotium 在 2010-01-21 就釋出了第一個版本。
或許是因為 Android 裝置多樣性的關係,UI 自動化測試逐漸受到重視,在那之後官方對測試工具有幾次重大的更新:
-
2012-11-14 發表 UI Automator (伴隨著 Android SDK Tools R21),雖然可以做跨應用程式 (cross-app) 的測試,但只能用在 Android 4.1 (API level 16) 以上的裝置。
-
2013-04-23 Google 在 GTAC 2013 上分享內部測試工具 Espresso,並在 2013-10-18 發表 Espresso (developer preview),可以用在 Android 2.2 (API level 8) 以上的裝置。
-
2014-12-20 發表 Espresso 2.0,正式成為 Android Testing Support Library (ASTL) 的一員。
-
2015-03-13 發表 UI Automator 2.0,跟 UI Automator 1.0 最大的不同是基於 Android instrumentation (可以跟 Espresso 混用),之後也會隨著 ATSL 更新。
隨著官方投注更多的心力,由第三方 UI 測試工具主導的局勢慢慢起了變化,第三方工具的開發雖然還是相當活躍,但能否即時追得上官方的腳步會是最大的考驗,這樣的情況同時發生在 Android 跟 iOS 上…
目前 Espresso 跟 UI Automator 都已經是 官方標準的 UI 測試工具,前者用於測試單一 app 內 (intra-app) 複雜的 UI 操作,後者則用於測試 app 跟其他 user/system app 的互動 (cross-app interactions)。這本書將以 Esresso 為主,但在實務上有時候也需要跟 UI Automator 混用。