自動化 UI 測試

測試使用者互動有助於確保使用者不會在與應用程式互動時遇到非預期結果,或有不佳的使用體驗。如果您需要驗證應用程式的 UI 是否正常運作,請養成建立使用者介面 (UI) 測試的習慣。

進行 UI 測試的方法之一,是讓人工測試人員在目標應用程式上執行一組使用者作業,並驗證應用程式是否正常運作。不過,這種手動方法可能會耗時且容易出錯。更有效率的方法是編寫 UI 測試,以便以自動化方式執行使用者動作。自動化方法可讓您以可重複的方式快速且可靠地執行測試。

UI 測試會啟動應用程式 (或部分內容),然後模擬使用者操作,最後檢查應用程式是否適當回應。這些是整合測試,範圍從驗證小型元件的行為,到涵蓋整個使用者流程的大型導覽測試。這些測試可用於檢查回歸情形,以及驗證與不同 API 級別和實體裝置的相容性。

執行 UI 測試

  • 如要使用 Android Studio 執行檢測 UI 測試,您可以在單獨的 Android 測試資料夾 (src/androidTest/java) 中實作測試程式碼。Android Gradle 外掛程式會根據測試程式碼建構測試應用程式,然後在與目標應用程式相同的裝置上載入測試應用程式。在測試程式碼中,您可以使用 UI 測試架構模擬目標應用程式的使用者互動,以便執行涵蓋特定使用情境的測試工作。
  • 您也可以使用 Robolectric 在 JVM 上執行 UI 測試。

架構和測試設定

應用程式的架構應讓測試取代部分內容,以便測試複本,您也應使用提供實用工具的程式庫,以利測試。舉例來說,您可以將資料存放區模組替換為記憶體內版本,為測試提供假的確定性資料。

實際工作環境和測試架構圖。這張生產階段圖表顯示本機和遠端資料來源會將資料提供給存放區,而存放區會以非同步方式將資料提供給 UI。測試圖表顯示 Fake 存放區,該存放區會同步提供資料給 UI。
圖 3:透過將依附元件替換為假資料來測試 UI。

建議的取代依附元件方法是依附元件插入。您可以手動建立自己的系統,但我們建議您使用 Hilt 等 DI 架構。

為何要自動測試 UI?

Android 應用程式可指定許多 API 級別和板型規格的數千種不同裝置,而作業系統為使用者提供的高程度自訂功能,意味著您的應用程式可能在某些裝置上無法正確顯示,甚至當機。

您可以透過 UI 測試進行相容性測試,驗證應用程式在不同情境下的行為。您可能會想在下列不同裝置上執行 UI 測試:

  • API 級別:21、25 和 30。
  • 語言代碼:英文、阿拉伯文和中文。
  • 方向:直向、橫向。

此外,應用程式應檢查手機以外的行為。您應在平板電腦、折疊式裝置和其他裝置上進行測試。進一步瞭解如何測試不同螢幕大小

UI 測試類型

本節將介紹兩種 UI 測試:

  • 行為測試會分析 UI 階層,針對 UI 元素的屬性提出斷言。
  • 螢幕截圖測試會擷取 UI 的螢幕截圖,並與先前核准的圖片進行比較。