01. 認識 Jenkins

  • 44008
  • 0

01. 認識 Jenkins

Jenkins: http://jenkins-ci.org/

image

 

Jenkins 是 Open Source CI Sever, 艾小克最近因為工作的需求才開始研究

詳細的 CI 介紹,可以參考 91 大的文章「[軟體工程]持續整合 (Continuous integration, CI) 簡介」能有進一步地認識

 

艾小克在公司內是擔任 QA, 負責讓系統正常運作、軟體如質如實如期開發…等等

其中最繁複的工作就是發佈與測試, 發佈應用程式到 Alpha, Beta, C-Beta, Production 環境…

測試是 Functional testing, Integration Testing, Performance Testing 持續不斷地在做…

 

部門內部其實並沒有 CI 的標準程序, 而是各式各樣的工作散落在各地…

像是 SCM 的部分, 有 Git、svn、hg、P4V 等等

測試工作有些用 Python, Jmeter, Sikuli, RobotFramework…

自動建置與發佈使用 FinalBuilder Server, RPM

虛擬環境有 VMWare, VirtualBox, vagrant…

 

平常的工作流程, 就是 RD 建置 DEV 機器並且在 DEV DB 上面進行開發…

跑過簡單的 Unit Test, 使用 JMeter 做 Smoke Test 確認沒有太大的問題就會進入到下一步…

RD 會到 FinalBuilder 上建置 Alpha Build,建置完成後系統會自動發信給 QA 附上 Build 位置與 Release Note…

 

QA 接到通知後, 會使用 FinalBuilder 來進行發佈, 並確認 Alpha Build 是否正確發佈…

當然在發佈前, 會告知所有 RD 及 QA 要進行 Alpha Deployment….

發佈成功後, QA 寫信通知大家 Alpha Build 已經發佈, 版本號為何 Release Note 為何..

接下來相關的系統 QA 就要進行測試…

 

間接相關的系統, 例如 SOA 變更而受到影響的系統, QA 必須知道會有 impact…

所以, QA 就要跑自己的 Automation 進行 Regression test…

而主要負責的 QA 就要跑另外的 Automation 進行 Functional Testing…

隨著測試結束後, 就要產生品質報告…

 

Quality Report 基本上包含:Test Case Count, Automation Rate, Pass & Fail Ratio, Defect Report(Open, Close)…

如果發現 Defect 另外要在 TeamTrack 系統上建立 Bug Tracking  Event (問題描述, 錯誤重現步驟…etc)…

定義 P0, P1, P2, P3, P4, P5 等級的錯誤, 回到給相關 RD QA, 直到問題並解決…

如果確認 Alpha Build 都沒有問題才會進入到 Beta 環境進行下一階段的測試...

 

有時候並不是每一個 QA 都有時間在每一個 Deployment 都能夠有警覺性並找到問題…

例如:不知道 QA 發佈的 Build, Configuration, Schema …etc, 會與自己負責的系統相關或是有額外的 Side effect…

所以有 CI Server 能夠串接所有的自動化工作, 並針對任何的改變無時無刻的進行測試…

這才是能夠確保品質的關鍵…

 

而 Jenkins 就是在 Open Source 中, 資源最為豐富的 CI 系統…

光是  Plugin 就有超過 600 個,  可以說是站在巨人的肩榜上…

有興趣的人可以馬上進行下載, 跨出 CI 的第一步…

 

Java Web Archive (.war) Latest and greatest (1.529)

http://mirrors.jenkins-ci.org/war/latest/jenkins.war