01. 认识 Jenkins
Jenkins: http://jenkins-ci.org/

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