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