測試原則

測試是 Fachsia 貢獻者為了維持品質和速度所實踐的持續整合程序的核心。良好的測試會成為團隊的主導權,而不良的測試則可能衍生出責任。

本文件審查有關在 Fuchsia 測試的主題,並提供其他資源的參考資料。本文假設您已熟悉一般的軟體測試概念。

Fuchsia 平台測試應符合專案目標,且符合 Fuchsia 架構原則

  • 簡易:簡單的測試比複雜的測試更好。單元測試較適合使用整合、系統或手動測試。在 Fuchsia 上測試解決方案應採用與實際工作環境相同的機制。
  • 安全:測試需遵守用於實際工作環境軟體的安全性、隔離和隱密性機制。這些測試也利用同樣的機制來獲取好處。系統的安全性屬性可供測試。
  • 如果測試中的元件有所變更或完全取代,只有運動之間的介面應能繼續運作。在 Fuchsia 樹狀結構外的測試不應假設平台元件的實作詳細資料。
  • 效能高:在 Fuchsia 執行的測試應快速、可靠且靈活。如果快速執行測試,會更容易疊代並減少資源。測試不應模糊不清,也不應針對 Fuchsia 的執行方式挑選。相較於實際硬體,在模擬器上執行測試更容易。

Fuchsia 的測試有何不同?

作業系統是複雜的程式

每個軟體開發與測試領域都有獨特的挑戰。測試作業系統、伺服器軟體或太空船,因此在測試作業系統時有一些特殊問題和解決方案。

相較於一般應用程式測試,這類測試會在某些系統假設為可運作的作業系統上執行。

隔離與歷史

元件架構會在元件資訊清單中明確定義的沙箱環境中執行每個元件,藉此促進 Fuchsia 的安全性目標。然後只允許元件使用設為可更新合約的「元件功能」建立互連網路,藉此達到 Fuchsia 的可更新性目標。

這些隔離機制和隱性機制,也可能由測試用做依附元件插入的形式。舉例來說,系統可針對測試中的元件提供測試替身,以使其仰賴測試控管性能力,讓合約測試變得更容易。

多個存放區

Fuchsia 是一個包含許多外部依附元件的大型專案,並根據數百個原始碼存放區建構內容。多存放區開發帶來獨特的測試挑戰參與 WebRTC 專案的貢獻者發布了一篇網誌文章,詳細說明 Fuchsia 開發過程中遇到的許多問題和解決方案。

其他資訊