持续集成调研报告(1)

持续集成(CI)调研报告

一.       持续集成的价值

1.      持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量。

2.      持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能。

3.      持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。

4.      在一天中进行多次集成,可以减少项目的风险,这样做有利于检查缺陷,了解软件的健康状况,减少假定。

5.      增强项目的可见性。

6.      使开发团队建立起更强大的产品信心。

二.       工作机制与工作过程

2.1  工作机制图表


2.2  工作步骤如下

1.      开发者向版本控制库提交代码,与此同时,集成构建计算机上的CI服务器正在轮询检查版本控制库中的变更(可以设置为实时轮询或定时监控)。

2.      在提交发生之后,CI服务器检测到版本控制库中发生了变更,所以CI服务器会从库中取得最新的代码副本,执行构建的脚本,该脚本将对软件进行集成。包括一系列的编译,数据库集成,测试,审查,打包,部署。

3.      CI服务器向项目组成员提供构建结果反馈信息(EMAIL,SMS等)

4.      CI服务器继续轮询版本控制库中的变更。

2.3  子过程描述

1.      源代码编译:持续的源代码编译是CI系统最基本、最常见的特征之一。

2.      数据库集成:在CI系统的构建过程中进行持续的数据库集成。当项目成员修改了数据库脚本并提交到SVN中时,集成源代码的构建脚本将重建数据库和数据,作为集成构建的一部分。

3.      测试:可以通过CI进行自动化的持续的测试。这些测试分类包括:单元测试,组件测试,系统测试,负载/性能测试,安全测试和其他测试。

4.      审查:自动化的代码审查(例如静态和动态分析),可以通过强制遵守规则来增加软件的品质。

5.      部署:CI可以将文件自动部署或安装到相应的环境中去。

6.      文档与反馈:定期生成文档,并及时向开发者和项目风险承担者提供反馈信息。

三.       持续集成遵循的原则

1.      经常提交代码:每天至少向版本控制库提交一次代码。

2.      不要提交无法构建的代码:不要提交无法编译或不能通过测试的代码。

3.      立即修复无法集成的构建:修复构建过程中的错误是优先级最高的工作。

4.      编写自动化的开发者测试:利用自动化的开发者测试来验证软件。

5.      必须通过所有的测试与审查。

6.      执行私有构建:为了防止集成失败,先从版本控制库中取出其他开发者提交的最新变更,然后在本地执行完整的集成构建,这被称为私有系统的构建。

7.      避免签出无法构建的代码:如果集成构建失败,等待新的变更,帮助开发者修复无法集成的构建,然后再取出最新的代码。

四.       搭建CI环境说明

4.1 CI环境基本结构图


4.2  所需环境与工具

l  操作系统

l  JDK

l  Web服务器版本管理工具

l  构建工具

l  CI服务器

l  构建管理仓库

环境的配置与搭建方式会进一步讨论与实践,在此不赘述。

初步决定具体采用的工具为:

Linux + JDK +Tomcat + Ant + Maven + Nexus + SVN + Jenkins。

 

五.       调研结果与下一步计划

已经初步对持续集成的概念,工作方式有了了解,如何利用持续集成提高软件开发的质量与效率是需要我们验证的,对于自动构建,持续的数据库集成,持续测试,持续审查,持续部署,持续反馈的具体实现方式也需进一步研究与实践,由测试和质量管控的角度来衡量,测试与审查是需要主要关注的部分。会在这一方面多加关注。

下一步会先搭建起CI的环境。

针对本项目利用CI想达到四个目的:

1.      集成组件(从版本控制库取得最新的变更并进行编译)

2.      完成自动化测试,执行所有单元测试集,并自动化执行回归测试,包括功能测试、集成测试、负载测试和性能测试。

3.      执行其他自动化的过程:重建数据库,审查和部署。

4.      利用CI降低本项目风险,并做到辅助项目管理的工作。


部分内容参考《持续集成软件质量改进和风险降低之道》《持续集成在软件项目管理中的作用》《基于jenkins的持续集成使用指南》等书籍或文章。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值