Standard for Public Code

← Use open standards ← 採用開放標準 ← 採用開放標準 Publish with an open license → 發行採用開放授權 → 發行採用開放授權 →

目次

  1. 需求規定
  2. 測試方式
  3. 公共政策制定者:需要的工作
  4. 管理人員:需要的工作
  5. 開發人員與設計師:需要的工作
  6. 延伸閱讀

使用持續整合

透過自動化測試驗證,開發人員能更頻繁地將其工作成果合併至共享的分支,達成非同步協作。合併的頻率越頻繁、貢獻的規模越小,在合併時所發生的衝突就越容易解決。

自動化測試所有功能,使人更加信賴貢獻內容發揮其功用且沒有引發任何錯誤,同時讓審查人員專注在貢獻的結構與作法。測試越聚焦,就越容易辨識並瞭解所出現的問題。

以文件記錄程式基底的持續整合工作流程,能協助貢獻者瞭解對貢獻內容的期待。持續整合讓 監管程式基底狀態變得更為簡單。

需求規定

  • 原始碼中的所有功能,都「必須」有自動化測試。
  • 所有貢獻內容都「必須」先通過自動化測試,才能上傳至程式基底。
  • 程式基底「必須」有解說如何撰寫貢獻內容結構的相關指引。
  • 程式基底「必須」有能夠審查貢獻內容的活躍貢獻者。
  • 「應該」公開貢獻內容的自動化測試結果。
  • 程式基底指引「應該」指出,每次的貢獻內容都只應聚焦在單一議題上。
  • 「應該」監管原始碼測試與文件的涵蓋範圍。
  • 「可選擇」是否測試政策和文件,與原始碼之間有無一致性,或是反之亦然。
  • 「可選擇」是否測試政策和文件所採用的樣式,以及連結有無失效。
  • 「可選擇」是否使用文件中的範例來測試軟體。

測試方式

  • 確認有測試可用。
  • 確認原始碼覆蓋率工具能檢查到 100% 的原始碼。
  • 確認貢獻內容只有在通過所有測試後,才會認可上傳至程式基底。
  • 確認有貢獻指引解說如何撰寫貢獻內容的結構。
  • 確認最近三個月內有貢獻內容上傳。
  • 檢查是否可以查看測試結果。
  • 檢查是否有公布原始碼覆蓋率數據。

公共政策制定者:需要的工作

  • 儘早讓管理人員、開發人員與設計師一同加入,並且讓他們持續參與您政策的制定程序。
  • 確保政策文件也有設好自動化測試。
  • 如果政策文件未能通過測試,請快速修正。
  • 確保原始碼能反映出政策的任何變動(請參閱〈維護版本控制〉)。

管理人員:需要的工作

  • 確保能儘快且經常給真正的終端使用者進行測試。
  • 以頻繁整合少量部分內容的方式做專案規劃,而非久久一次繳交大量部分內容。
  • 聘請有能力處理漸進式交付,並跟得上規劃進度的顧問服務。
  • 發生重大失誤後,鼓勵公開事故報告,以及公開討論事後學到的教訓。

開發人員與設計師:需要的工作

  • 協助管理人員擬定工作規劃,例如規劃成可以拆分成小部分逐次整合。
  • 協助貢獻者聚焦其貢獻內容與功能請求,讓涵蓋範圍盡可能合理地縮小。
  • 協助管理人員與政策制定者測試其貢獻內容,例如測試其貢獻內容中的失效連結或樣式。
  • 編排原始碼結構時,要將難以在測試環境下創造出來的情況,得以在測試過程中模擬出來。例如硬碟空間不足、記憶體分配失敗等資源耗盡情況,都是難以創造的典型案例。
  • 調整程式碼覆蓋率測試工具,避免在 inline 過程或其他最佳化處理時得到假警報。
  • 經常部署。
  • 至少每天整合工作內容一次。

延伸閱讀