貿易聯盟總覽

Trade Federation (簡稱 Tradefed 或 TF) 是一種持續測試架構,專門用於在 Android 裝置上執行測試。舉例來說,Tradefed 可用於執行 Compatibility Test Suite (CTS)Vendor Test Suite (VTS)

Trade Federation 是執行於主機電腦上的 Java 應用程式,會透過 ADB 使用 ddmlib (DDMS 背後的程式庫) 與一或多部 Android 裝置通訊。

我們在下方列出 TF 的一些主要功能,以及幾個範例用途。不過,如果您想直接開始使用,可以直接前往「從這裡開始」頁面。

功能

  • 模組化、靈活且可擴充的設計
  • 內建支援執行多種不同類型的 Android 測試:檢測uiautomator、原生/gtest、主機 JUnit 等
  • 在 ADB 之上提供可靠性和復原機制
  • 支援在多部裝置上並行排程及執行測試

如要進一步瞭解如何執行現有測試 (例如檢測設備),請參閱「透過 TF 進行測試」一文。

用途

Trade Federation 的模組化設計,可讓您輕鬆在現有建構、測試和報表基礎架構的環境中,加入 Trade Federation。以下列出幾個示範用例,說明 tradefed 如何實現高效且可擴充的測試做法。

首先,請從「哪些部分可修改,哪些部分為靜態?」這類問題的角度,考量潛在用途。舉例來說,裝置 OEM 可以修改架構、系統和硬體,但對現有應用程式幾乎沒有影響。另一方面,應用程式開發人員可以修改應用程式,但對系統或架構的大部分方面幾乎沒有控制權。

因此,每個用途中的實體都會有不同的測試目標,並且在發生一組測試失敗的情況下,會有不同的選項。儘管這些差異存在,Trade Federation 仍可協助各自的測試流程,讓其更有效率、更具彈性且可擴充。

裝置原始設備製造商

裝置原始設備製造商 (OEM) 會建構硬體,並經常調整 Android 系統和架構,以便在該硬體上順利執行。原始設備製造商 (OEM) 可能會努力達成這些目標,同時維持硬體和系統層級的穩定性和效能,並確保架構變更不會影響與現有應用程式的相容性。

原始設備製造商 (OEM) 可以實作裝置閃燈模組,在生命週期的目標設定階段執行。該模組在執行期間可完全控制裝置,因此可能會強制裝置進入系統啟動載入程式、閃記,然後強制裝置重新啟動至使用者空間模式。搭配模組連結至持續建構系統,這可讓原始設備製造商在變更系統層級韌體和 Java 層級架構時,在裝置上執行測試。

裝置完全啟動後,原始設備製造商 (OEM) 即可利用現有的 JUnit 測試,或編寫新的測試,以驗證所需的功能。最後,他們可以編寫一或多個結果回報模組,以連結現有的測試結果存放區,或直接回報結果 (例如透過電子郵件)。

應用程式開發人員

應用程式開發人員會建構應用程式,而這些應用程式必須能在各種平台版本和裝置上順利執行。如果在特定平台版本和/或裝置上發生問題,唯一的解決方法就是新增應變措施,然後繼續進行。對於規模較大的開發人員,測試程序可能會整合至持續建構序列。對於規模較小的開發人員,這項作業可能會定期或手動啟動。

大多數應用程式開發人員會使用 TF 中現有的 APK 測試安裝模組。其中一個版本可從本機檔案系統安裝,另一個版本則可安裝從建構服務下載的 APK。請注意,後者版本會繼續正常運作,在同一台主機上執行任意數量的 TF 例項。

由於 TF 擅長處理多種裝置,因此可以根據測試所用裝置的類型,輕鬆分類每個測試結果。因此,TF 可能會為應用程式的每個版本產生 2D (或多維) 相容性矩陣。

測試服務

舉例來說,測試服務可能會允許應用程式開發人員在使用電量測量工具的裝置上提交應用程式並執行測試,以便判斷應用程式的電量使用情形。這與前述兩種用途不同,因為服務建構工具不會控制裝置或正在執行的應用程式。

由於 Trade Federation 可執行任何實作簡單 IRemoteTest 介面的 Java 類別,因此只要編寫驅動程式,就能讓裝置上的測試案例與某些外部硬體協調。驅動程式本身可以產生執行緒、向其他伺服器傳送要求,或執行其他可能需要的操作。此外,由於結果回報介面 ITestInvocationListener 簡單又多功能,因此您也可以輕鬆將任意測試結果 (包括數值功率指標等) 轉換為標準結果回報管道。