要在 Android 中測試的項目

您應測試的內容取決於應用程式類型、開發團隊、舊版程式碼數量和使用的架構等因素。以下各節概略說明在規劃應用程式中測試內容時,新手可能會考慮的事項。

測試目錄組織

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

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

基本單元測試

如果採用最佳做法,請確保在下列情況下使用單元測試:

  • ViewModels 或簡報者的單元測試
  • data 層的單元測試,尤其是存放區。大多數資料層都應獨立於平台之外。這樣可讓測試替身取代測試中的資料庫模組和遠端資料來源。請參閱在 Android 中使用測試替身的指南。
  • 針對「Domain」層等其他平台獨立層 (例如用途和互動者) 進行單元測試
  • 公用程式類別單元測試,例如字串操控和數學。

測試邊緣案例

單元測試應聚焦在一般與邊緣案例。邊緣案例並不常見,而人類測試人員和規模較大的測試可能就不會觀察到。相關示例包括:

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

應避免的單元測試

請避免使用部分單元測試,因為其值較低:

  • 測試架構或程式庫是否正常運作,而非程式碼是否正常運作。
  • 活動、片段或服務等架構進入點不應有商業邏輯,因此單元測試不應列為優先事項。活動的單元測試幾乎沒有價值,因為這類測試大部分涉及架構程式碼,而且需要更複雜的設定。UI 測試等檢測設備測試涵蓋這些類別。

使用者介面測試

建議您採用以下幾種類型的 UI 測試:

  • 畫面 UI 測試:檢查單一畫面中的關鍵使用者互動。然後執行多項動作,例如點選按鈕、在表單中輸入內容,以及檢查可見狀態。每個畫面都有一個測試類別是很好的起點。
  • 使用者流程測試導覽測試,涵蓋最常見的路徑。這些測試會模擬使用者在導覽流程中移動的情形。這些是簡單的測試,適合用來檢查初始化作業中的執行階段當機情形。

其他測試

此外,還有更多專業測試,例如螢幕截圖測試、效能測試和猴子測試。您也可以依用途 (例如迴歸、無障礙功能和相容性) 將測試分類。

其他資訊

為了獨立測試,您通常需要將受測試主體的依附元件取代為假或模擬依附元件,一般稱為「測試替身」。詳情請參閱「在 Android 中使用測試替身」。

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