`
nanjingjiangbiao_T
  • 浏览: 2602470 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

持续集成-敏捷开发的基石

 
阅读更多

转载自Scrum中文网 http://www.scrumcn.com/agiledev/html/?182.html

近些年来,敏捷在软件工程领域逐渐火热起来,敏捷书籍、文章、社区以及各种大会也越来越多。持续集成作为敏捷开发的最佳实践之一现在已经被许多的开发团队所接受,它是敏捷团队成功的基石。

什么是持续集成?

持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试 ) 来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。请注意,持续集成不等于持续的编译。

持续集成要素:

l 统一的代码库

l 自动构建

l 自动测试

l 每个人每天都要向代码库主干提交代码

l 每次代码递交后都会在持续集成服务器上触发一次构建

l 保证快速构建

l 模拟生产环境的自动测试

l 每个人都可以很容易的获取最新可执行的应用程序

l 每个人都清楚正在发生的状况

l 自动化的部署

持续集成带来那些价值?

持续集成的价值在于:

l 减少风险

一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷,了解软件的健康状况,减少假定。

l 减少重复过程

减少重复的过程可以节省时间、费用和工作量。说起来简单,做起来难。这些浪费时间的重复劳动可能在我们的项目活动的任何一个环节发生,包括代码编译、数据库集成、测试、审查、部署及反馈。通过自动化的持续集成可以将这些重复的动作都变成自动化的,无需太多人工干预,让人们的时间更多的投入到动脑筋的、更高价值的事情上。

l 任何时间、任何地点生成可部署的软件

持续集成可以让您在任何时间发布可以部署的软件。从外界来看,这是持续集成最明显的好处,我们可以对改进软件品质和减少风险说起来滔滔不绝,但对于客户来说,可以部署的软件产品是最实际的资产。利用持续集成,您可以经常对源代码进行一些小改动,并将这些改动和其他的代码进行集成。如果出现问题,项目成员马上就会被通知到,问题会第一时间被修复。不采用持续集成的情况下,这些问题有可能到交付前的集成测试的时候才发现,有可能会导致延迟发布产品,而在急于修复这些缺陷的时候又有可能引入新的缺陷,最终可能导致项目失败。

l 增强项目的可见性

持续集成让我们能够注意到趋势并进行有效的决策。如果没有真实或最新的数据提供支持,项目就会遇到麻烦,每个人都会提出他最好的猜测。通常,项目成员通过手工收集这些信息,增加了负担,也很耗时。 持续集成可以带来两点积极效果:

1. 有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。

2. 注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、总体品质以及其它的项目信息。

l 建立团队对开发产品的信心

持续集成可以建立开发团队对开发产品的信心,因为他们清楚的知道每一次构建的结果,他们知道他们对软件的改动造成了哪些影响,结果怎么样。

在接下来的,持续集成-敏捷开发的基石 第二部分中我们将来介绍一些持续集成的工具。

在持续集成 - 敏捷开发的基石的 第一部分我们介绍了持续集成的概念以及价值,这个部分我们来介绍持续集成的工具。

持续集成有那些工具?

持续集成的工具现如今也是百花齐放,各有千秋,接下来我们主要介绍一下目前主流的持续集成工具。
我们将从以下几个方面来进行介绍;
1.厂商
2.支持的编程语言
3.价格
4.SCM支持程度
5.构建管理
6.消息通知机制
7.构建工具支持
8.项目管理工具集成
9.测试工具集成
10.安装及配置
11.IDE集成

首先,我们来看一下持续集成领域的老牌—CruiseControl

http://cruisecontrol.sourceforge.net/

CruiseControl

厂商

ThoughtWorks

开发语言

JAVA,也有.net和ruby版本

是否开源

价格

免费

SCM 支持程度

ClearCase VSS, CVS, Subversion, PVCS

构建管理

并行构建,分布式构建,增量构建,人工强制构建, SCM 触发构建等都有支持

消息通知机制

Email Run executable,FTP,IRC,Jabber,Lotus Sametime,RSS,SCP Windows System Tray

Formatted Logging Yahoo Messenger X10

构建工具支持

Shell 脚本与命令行, Ant, OpenMake Meister, Maven, Maven2, NAnt

项目管理工具集成

项目管理工具 CruiseControl 支持了 Rally VersionOne

测试工具集成

Agitar JUnit result rendering

安装与配置

有 windows 安装程序, Self contained distribution (except SCM clients) , N 无需修改构建脚本,支持多个项目,使用 XML 配置文件

IDE 集成

Eclipse Plugin IntelliJ Plugin

接下来,我们来介绍一下持续集成领域的另外一个老牌工具 LuntBuild ,它的商业版本是 QuickBuild.

厂商

PMEase

支持的编程语言

Java

是否开源

价格

免费

主流 SCM 支持程度

Clear Case VSS, CVS, Subversion

构建管理

并行构建 , 增量构建,人工强制构建, SCM 触发构建

消息通知机制

Email Run executable Jabber Lotus Sametime RSS Windows System Tray Formatted Logging MSN Messenger

构建工具支持

Shell 脚本与命令行, Ant, OpenMake Meister, Maven, Maven2 MSbuild NAnt Rake (Ruby)

项目管理工具集成

测试工具集成

JUnit result rendering Selenium result rendering PHPUnit result rendering MSTest result rendering

安装与配置

有 windows 安装程序, Self contained distribution (except SCM clients) , N 无需修改构建脚本,支持多个项目

IDE 集成

Eclipse Plug-in

最后,我们来介绍一下目前使用最广的持续集成工 Hudson ,它是持续集成领域的后起之秀:

厂商

Java.net

支持的编程语言

Java

是否开源

价格

免费

主流 SCM 支持程度

Clear Case VSS, CVS, Subversion PVCS 等, SCM 支持最为完善

构建管理

并行构建,分布式构建,增量构建,人工强制构建, SCM 触发构建等都有支持

消息通知机制

Email Run executable FTP IRC Jabber Lotus Sametime RSS,SCP,Windows System Tray,Formatted Logging

构建工具支持

Shell 脚本与命令行, Ant, Groovy, OpenMake Meister, Maven, Maven2 MSbuild NAnt Rake (Ruby)

项目管理工具集成

测试工具集成

CppUnit result rendering JUnit result rendering NUnit result rendering Selenium result rendering PHPUnit result rendering MSTest result rendering SilkCentral Clover result rendering PMD result rendering

安装与配置

有 windows 安装程序, Self contained distribution (except SCM clients) , N 无需修改构建脚本,支持多个项目,自动配置构建脚本

IDE 集成

Eclipse Plug-in IntelliJ Plugin


其它的一些持续集成工具

• hudson (http://hudson-ci.org/
•TeamCity (
http://www.jetbrains.com/teamcity/ )
•AntHill Pro (
http://www.anthillpro.com/ )
•Bamboo (
http://www.atlassian.com/software/bamboo/ )
•QuickBuild (
http://www.pmease.com/ )
•Apache Continuum (
http://continuum.apache.org/ )

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics