持續集成實踐成熟度模型

發表于:2012-11-06來源:百度質量部作者:不詳點擊數: 標簽:持續集成
持續集成實踐成熟度模型 概述 持續集成從“配置管理”、“構建”、“測試”、“部署及發布”及“團隊習慣”5個緯度考察其成熟度,每個維度都有5個級別,分別是“入門”、“新手”、“中等”、“進階”和“瘋狂”。目前在各個維度上,行業的平均水平集中在“入

  1 概述

  持續集成從“配置管理”、“構建”、“測試”、“部署及發布”及“團隊習慣”5個緯度考察其成熟度,每個維度都有5個級別,分別是“入門”、“新手”、“中等”、“進階”和“瘋狂”。目前在各個維度上,行業的平均水平集中在“入門”和“新手”兩個級別。

  評估時各級別之間不能越級,就是說即使“新手”中個別條目已經做到了,但如果“入門”中有條目沒有做到,也只能評為“入門”級。

  該模型的主要目的是為了更好地幫助團隊認識現狀,同時了解改進的方向。該模型是對持續集成主要維度的簡單衡量,背后可能有一些并不適合團隊的假設,且并未對每個條目做細致解釋,為獲得團隊持續集成工作的有針對性的全面評估,請聯系PMO部門。

  由于技術和項目的差異性,不同團隊達到同一級別需要付出的努力可能差異很大,獲得的收益也有區別,因此不適宜利用此模型在團隊間進行比較。

  2 配置管理維度

  入門:

  使用版本管理工具

  使用私有分支

  功能測試Case在本地管理

  生產代碼被版本管理

  每天提交代碼,并寫Comment。

  新手:

  應用在最小工作單元完成后即可集成的分支策略

  所有構建、測試及部署腳本都被版本管理

  所有測試代碼和數據被集中管理

  測試環境中的應用配置被版本管理

  代碼簽入的Comment清楚達意,含有必要的Metadata,比如Bug號等。

  RD使用完全標準的開發環境,沒有僅供自己使用的腳本、數據或測試環境等。

  中等:

  測試代碼與生產代碼同源

  生產環境中的應用配置被版本管理

  持續集成平臺運行的腳本被版本管理,無需登錄平臺修改腳本。

  每次構建均有版本追溯,無需重新從源碼構建歷史版本。

  Qa使用標準的開發測試環境

  數據庫被版本管理

  功能測試數據被版本管理

  進階:

  沒有僅在團隊成員本地保存的任何項目資產。

  RD和QA使用一致的開發測試環境。

  瘋狂:

  開發、測試、生產環境被版本管理,可以一鍵克隆。

  所有測試數據被版本管理

  通過下面問題進一步了解團隊的配置管理現狀:

  使用何種分支管理策略?

  團隊成員簽入代碼的頻率和內容,Comment的質量如何?

  一個RD在全新的機器上建立完整的工作環境要經歷那些步驟?

  一個QA在全新的機器上建立完整的工作環境要經歷那些步驟?

  RD和QA的工作環境有什么區別?

  RD之間的工作環境有什么區別?

  Qa之間的工作環境有什么區別?

  測試數據是怎么管理的?

  RD是否在沙盒中開發?如果不是,有那些依賴?

  本地和平臺構建腳本是如何管理的?

  測試環境和生產環境的應用配置是如何管理的?

  測試工具和測試Case是如何管理的?

  測試運行的環境依賴有那些?是否每個人在自己的工作環境中都可以方便運行?

  所有團隊成員是否使用相同的腳本做本地構建?

  團隊成員有那些私有的代碼,腳本和預先部署的環境?

  3 構建維度

  入門:

  有幫助腳本分別執行各構建步驟

  階段構建,例如Nightly Build或Weekly Build。

  Shell腳本作為自動化構建開發腳本

  新手:

  代碼簽入后即運行包含自動化測試的構建過程

  構建結果被有效通知團隊

  所有人都知道如何運行本地構建

  基礎構建過程不再有突出的環境問題

  通過自動化構建腳本完成自動化構建任務。

  專人維護構建環境。

  中等

  在本地和平臺中運行自動化冒煙測試

  在平臺中運行功能測試全集和性能測試。

  充分利用多臺機器運行多個構建。

  構建過程集成了詳細的報告。

  能夠靈活配置各構建階段的具體任務。

  通過腳本同步及升級各個構建機器中的環境依賴

  進階

  構建步驟被充分優化

  構建過程可以對報告做分析,并記錄關鍵指標的趨勢,并進行改進。

  充分利用多臺機器做單個構建任務。

  在全新的開發環境中簽出項目,通過一個腳本即可構建完整的開發和測試環境并成功產出部署包。

  瘋狂

  運行時間超過限制即失敗。

  通過下面問題進一步了解團隊的構建現狀:

  如何管理編譯依賴?

  如何管理模塊版本依賴?

  編譯的時間是多長?

  每個人的構建環境和方法是否一致?

  自動化構建的具體步驟?

  自動化構建失敗的主要原因是什么?

  是否使用了Build Grid?如何用的?

  如何管理Grid中的各臺機器?如何同步和更新環境?

  本地構建的內容?什么時候運行?要多長時間?

  使用那個CI平臺?如何配置的?

  如何調整構建中包含的內容?

  4 測試維度

  在其它緯度中也有一些與測試相關的條目,可參考。

  入門:

  有部分自動化功能測試

  在項目后期集中測試

  利用缺陷跟蹤系統管理缺陷

  僅有少量的單元測試,尚未發揮明顯作用。

  新手:

  最小工作單元包含手工測試。

  積累一定量的單元測試,團隊已從中受益。

  構建時運行自動回歸測試。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97