測試原則

Fuchsia 貢獻者致力於維持品質和速度,這是持續整合程序的核心。良好的測試將成為團隊的資產,而不良測試則可能產生責任。

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

Fuchsia 平台測試應做為專案目標,並符合 Fuchsia 的架構原則

  • 簡單:簡易測試優於複雜的測試。單元測試的優先順序高於整合、系統或手動測試。Fuchsia 上的測試解決方案應執行與實際工作環境相同的機制。
  • 安全:測試必須遵循適用於實際工作環境軟體的安全性、隔離和密封機制。測試採用相同的機制來提高成效。系統的安全性屬性可供測試。
  • 如果測試中的元件有所變更或完全取代,則只有在元件之間運動介面的測試應會繼續運作。位於 Fuchsia 樹狀結構外的測試,不應假設平台元件的實作詳細資料。
  • 高效能:Fuchsia 測試應快速、可靠且靈活。快速執行測試時,會更容易疊代並減少資源。測試不應過於不穩定,也不應在 Fuchsia 上執行測試。相較於實際硬體,在模擬器中執行測試會比較簡單。

Fuchsia 上的測試有何不同?

作業系統是複雜的程式

軟體開發與測試的每個領域都面臨前所未有的挑戰。由於測試行動應用程式、伺服器軟體或太空船而產生測試作業系統時,可能會有特殊的問題和解決方案。

相較於一般應用程式測試,在假設可正常運作的特定作業系統上執行測試。

隔離與密封

元件架構可在元件資訊清單中明確定義的沙箱環境中執行各項元件,藉此促進 Fuchsia 的安全性目標。接著,這項服務只會允許使用歸類為可更新合約的元件功能來互連,藉此促進 Fuchsia 的可更新目標。

測試也能以依附元件插入形式,採用相同的隔離機制與隱含機制。例如,受測試的元件可以提供測試替身,以便其仰賴測試控管的能力,以便簡化合約測試

多個存放區

Fuchsia 是含有許多外部依附元件的大型專案,會根據其他數百個原始碼存放區建構而成。多重存放區開發為測試帶來獨特的挑戰。負責開發 WebRTC 專案的貢獻者發布了一篇網誌文章,詳述開發 Fuchsia 時遇到的許多問題和解決方案。

其他資訊