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