應測試的項目取決於應用程式類型、開發團隊、舊版程式碼數量,以及使用的架構等因素。以下各節將概述在規劃應用程式時,新手可能需要考慮哪些事項。
整理測試目錄
Android Studio 中的一般專案包含兩個目錄,分別會根據其執行環境保留測試。請依下列目錄整理測試:
androidTest
目錄應包含在實體或虛擬裝置上執行的測試。這類測試包括整合測試、端對端測試,以及其他僅使用 JVM 驗證應用程式功能的測試。test
目錄應包含在本機上執行的測試,例如單元測試。與上述內容相比,這些可以是本機 JVM 上執行的測試。
基本單元測試
遵循最佳做法時,請務必在下列情況下使用單元測試:
- ViewModels 或簡報者的單元測試。
- 「data」層的「單元測試」,特別是存放區。大多數資料層應該獨立於平台。這樣做可讓測試替身取代測試中的資料庫模組和遠端資料來源。請參閱在 Android 中使用測試替身的相關指南
- 針對其他平台獨立層 (例如「網域」層) 的單元測試,就像用途和互動器一樣。
- 公用程式類別 (例如字串操縱和數學) 的單元測試。
測試邊緣案例
單元測試應著重在一般和極端案例。邊緣案例是罕見的情境,經過真人測試及規模更大的測試可能無法偵測到。相關範例包括:
- 使用負數、零和界線條件的數學運算。
- 所有可能的網路連線錯誤。
- 毀損的資料,例如格式錯誤的 JSON。
- 在儲存至檔案時模擬完整儲存空間。
- 程序期間重新建立的物件 (例如裝置旋轉時的活動)。
應避免的單元測試
部分單元測試因為價值較低,應避免執行:
- 測試可驗證架構或程式庫 (而非程式碼) 正確作業。
- 架構進入點 (例如活動、片段或服務) 不應有商業邏輯,因此單元測試不應為優先順序。活動的單元測試幾乎沒有價值,因為這類測試大多涵蓋架構程式碼,而且需要進行更複雜的設定。UI 測試等檢測設備測試也可以涵蓋這些類別。
使用者介面測試
您應採用下列幾種 UI 測試類型:
- 螢幕 UI 測試可檢查單一畫面中的重要使用者互動。使用者執行的操作包括點選按鈕、填寫表單,以及查看可見狀態等。一開始可以先為每個畫面使用一個測試類別。
- 使用者流程測試或導覽測試,涵蓋最常見的路徑。這些測試會模擬使用者在導覽流程中的移動情況。測試是簡單的測試,可用於檢查初始化中的執行階段當機情形。
其他測試
還有其他專門測試,例如螢幕截圖測試、效能測試和猴子測試。也可以依迴歸、無障礙功能和相容性等目的將測試分類。
其他資訊
為了獨立測試,您通常需要將受測試主體的依附元件替換為假或模擬依附元件,一般稱為「測試替身」。繼續閱讀「在 Android 中使用測試替身」。
如要瞭解如何建立單元和 UI 測試,請參閱測試程式碼研究室。