要在 Android 中測試的項目

應測試的項目取決於應用程式類型、開發團隊、舊版程式碼數量,以及使用的架構等因素。以下各節將概述在規劃應用程式時,新手可能需要考慮哪些事項。

整理測試目錄

Android Studio 中的一般專案包含兩個目錄,分別會根據其執行環境保留測試。請依下列目錄整理測試:

  • androidTest 目錄應包含在實體或虛擬裝置上執行的測試。這類測試包括整合測試、端對端測試,以及其他僅使用 JVM 驗證應用程式功能的測試。
  • test 目錄應包含在本機上執行的測試,例如單元測試。與上述內容相比,這些可以是本機 JVM 上執行的測試。

基本單元測試

遵循最佳做法時,請務必在下列情況下使用單元測試:

  • ViewModels 或簡報者的單元測試
  • 「data」層的「單元測試」,特別是存放區。大多數資料層應該獨立於平台。這樣做可讓測試替身取代測試中的資料庫模組和遠端資料來源。請參閱在 Android 中使用測試替身的相關指南
  • 針對其他平台獨立層 (例如「網域」層) 的單元測試,就像用途和互動器一樣。
  • 公用程式類別 (例如字串操縱和數學) 的單元測試

測試邊緣案例

單元測試應著重在一般和極端案例。邊緣案例是罕見的情境,經過真人測試及規模更大的測試可能無法偵測到。相關範例包括:

  • 使用負數、零和界線條件的數學運算。
  • 所有可能的網路連線錯誤。
  • 毀損的資料,例如格式錯誤的 JSON。
  • 在儲存至檔案時模擬完整儲存空間。
  • 程序期間重新建立的物件 (例如裝置旋轉時的活動)。

應避免的單元測試

部分單元測試因為價值較低,應避免執行:

  • 測試可驗證架構或程式庫 (而非程式碼) 正確作業。
  • 架構進入點 (例如活動、片段或服務) 不應有商業邏輯,因此單元測試不應為優先順序。活動的單元測試幾乎沒有價值,因為這類測試大多涵蓋架構程式碼,而且需要進行更複雜的設定。UI 測試等檢測設備測試也可以涵蓋這些類別。

使用者介面測試

您應採用下列幾種 UI 測試類型:

  • 螢幕 UI 測試可檢查單一畫面中的重要使用者互動。使用者執行的操作包括點選按鈕、填寫表單,以及查看可見狀態等。一開始可以先為每個畫面使用一個測試類別。
  • 使用者流程測試導覽測試,涵蓋最常見的路徑。這些測試會模擬使用者在導覽流程中的移動情況。測試是簡單的測試,可用於檢查初始化中的執行階段當機情形。

其他測試

還有其他專門測試,例如螢幕截圖測試、效能測試和猴子測試。也可以依迴歸、無障礙功能和相容性等目的將測試分類。

其他資訊

為了獨立測試,您通常需要將受測試主體的依附元件替換為假或模擬依附元件,一般稱為「測試替身」。繼續閱讀「在 Android 中使用測試替身」。

如要瞭解如何建立單元和 UI 測試,請參閱測試程式碼研究室