收藏 分享(赏)

一种软件持续集成平台的技术方案new.doc

上传人:dzzj200808 文档编号:2283917 上传时间:2018-09-09 格式:DOC 页数:5 大小:330.50KB
下载 相关 举报
一种软件持续集成平台的技术方案new.doc_第1页
第1页 / 共5页
一种软件持续集成平台的技术方案new.doc_第2页
第2页 / 共5页
一种软件持续集成平台的技术方案new.doc_第3页
第3页 / 共5页
一种软件持续集成平台的技术方案new.doc_第4页
第4页 / 共5页
一种软件持续集成平台的技术方案new.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、一种软件持续集成平台的技术方案陈挺,阮波,林加旗浙江中控技术股份有限公司,浙江杭州,310053 摘 要:本文介绍了浙江中控技术股份有限公司在敏捷软件开发过程中使用的一种软件持续集成平台的技术方案。该方案利用开源 软件 Hudson 和 SVN 构建平台,在改进软件质量和降低风险,缩短缺陷引入、发现和修复之间的时间间隔方面取得了 显著效果。关键词:持续集成,软件项目,浙江中控,敏捷A Technical Proposal for Continuous Integration PlatformChen Ting, Ruan Bo, Lin JiaqiZhejiang SUPCON Co., Lt

2、d., Hangzhou, Zhejiang, 310053Abstract: The paper introduces a technical proposal for continuous integration platform used in the agile software development of Zhejiang Supcon Technology Co.,Ltd. This proposal, which creats the platform with Hudson and SVN software, improves software quality, reduce

3、s development risk, and shortens the time interval for bug introducing, finding and repair.Keywords: Continuous Integration, Software Project, SUPCON, Agile.1. 引言持续集成(Continuous Integration,简称 CI)是敏捷软件开发中的一种非常重要的实践。持续集成对软件质量改进和风险降低有着非常重要的作用,因此,它也是所有敏捷实践中推行最为成功和广泛的一种。持续集成的核心价值是缩短缺陷的引入、发现和修复之间的时间间隔。本文

4、介绍一种搭建持续集成平台的技术方案,并以在浙江中控技术股份有限公司的软件研发活动实际运行的情况为例介绍其效果。2. 持续集成概述所谓“集成” ,是软件行业的一个专门术语,是指把一些能够单独工作的模块组装在一起构成一个系统的过程。这个过程往往是软件项目中非常棘手的工作,集成后的系统往往不可用,并且很难找到失败的原因。为有效解决这个问题,很多学者提出应该更早且更频繁地进行集成,于是一种叫做持续集成的技术应运而生。持续集成的关键是快速和不断重复。一个持续集成平台应具备如下四种基本特征:与版本控制系统的连接;构建脚本;某种类型的反馈机制;集成源代码变更的过程。持续集成是一个不断循环的过程,一个循环的内

5、部流程描述如下:首先是开发人员编写代码,经过适当的审查后,向版本控制库提交代码变更;持续集成服务器周期性地对版本控制库进行轮询,一旦发现有新的变更提交,就从版本控制库获取更新,进行代码审查和产品集成构建,并把构建好的内容进行发布、部署以及自动化测试;代码审查和测试的结果通过某种形式向开发人员反馈,开发人员可以查看自己之前的工作成果是否存在问题,以便快速解决。下图显示了持续集成系统的基本构成。版本控制库 C I 服务器集成构建计算机开发者提交变更 轮询生成查看反馈机制构建脚本 :编译源代码集成数据库执行测试执行审查部署软件图 1 持续集成系统的基本构成作者在浙江中控技术股份有限公司从事软件研发工

6、作期间,与团队一起经过反复地论证和设计,并通过多个项目的实践,最终完成了适合中控软件研发实际的持续集成平台的技术方案,并取得了不错的效果。后续章节将根据持续集成系统的基本结构展开对这个方案的论述。3. 技术路线选择持续集成平台的方案,我们选择开源的 Hudson 作为基础平台软件。Hudson 是一个可扩展的持续集成引擎,能够持续、自动地构建和测试软件项目,并监控一些定时执行的任务;具有易用性高、易配置、WEB 化、支持多种插件、分布式管理等特点。版本控制库是持续集成平台中的重要一环,我们采用 SVN 软件作为版本控制库的平台软件。SVN 提供命令行管理接口以及 Web 管理接口 Submin

7、,可以非常方便地与 Hudson 进行对接。通过Hudson 的轮询机制调用 SVN 的管理接口,可以实现对代码变更提交的周期性监控。Hudson平台支持 Ant 脚本语言,Ant 脚本可以用于实现灵活的构建过程。4. 构建过程设计持续集成的一个完整过程,称为一次构建,在实践中用 Ant 脚本语言实现。一个完整的构建过程,是一个非常复杂的过程。在我们的实践中,对于一个大型复杂软件而言,如果要执行完一个完整的构建过程,需要大约 4 小时左右的时间。4 小时的周期,对于日常的开发而言太长,对问题的反馈效率明显不足,因此,我们需要根据实际的情况对构建的过程进行分类。构建类型分为三种,分别为:私有构建

8、、集成构建和发布构建。其中集成构建又分为提交构建和次级构建。提交构建是最快速的构建,只应包含编译和单元测试,日常开发过程中,主要依靠“提交构建”来实现快速反馈的机制。次级构建,与提交构建相比执行较多的测试,包含组件集成测试、系统测试、性能测试等,并且还需要执行自动代码审查,其运行的周期也比较长。发布构建比次级构建执行更多的内容,包括:创建安装媒质,部署软件,执行全面的测试(性能测试、负载测试、验收测试等等,包括手工测试) 。构建触发机制分为四种:用户驱动;定期执行;轮询变更;事件驱动。用户驱动是指,用户根据实际需要手工启动一次构建,一般发布构建会由用户驱动;定期执行是指设定固定的周期来执行构建

9、,一般用于进行“日构建” ;轮询变更方式则是由代码提交变更驱动的构建,代码没有变化就不会执行。表 1 中显示了每种构建类型与触发机制的关系。表 1 构建类型及触发机制设计构建类型 构建触发机制私有构建 *用户驱动集成构建之提交构建 用户驱动、*轮询变更集成构建之次级构建 用户驱动、*定期执行(一般为每天) 、事件驱动发布构建*用户驱动、*定期执行(根据项目周期,一般可每周或半月)注:标“*”符号的为主要采用的触发机制。构建脚本的基本行为包括如下过程:1 编译源代码:从版本控制库获取代码副本,进行编译。这个步骤还应该包括安装脚本的编译,也就是说持续集成平台可以帮助开发团队自动生成安装包,而不仅仅

10、是编译出二进制文件而已。需要注意的是,在编译之前需要先进行环境清理,以消除上一次构建对本次构建产生的影响。2 执行测试:这里的测试指的是自动化的测试,包含单元测试、组件(集成)测试、系统测试、功能(验收)测试。真正意义上的单元测试是不涉及数据和其他依赖关系的快速测试,一般是“提交构建”时唯一执行的测试。而其他类型的测试,相比单元测试会更多地依赖环境,需要完整地部署软件才能确保自动执行测试。测试执行过程中发现的问题应录入缺陷库,中控使用 HP Quality Center 平台,该平台提供缺陷录入的 API 接口,可以方便地实现自动缺陷录入。3 执行代码审查:代码动静态测试,代码规范审查,可利用

11、 C+Test 等工具进行,通过收集和分析数据得到代码质量的评估结果。例如:可利用 SourceMoniter 等工具进行代码复杂度评估。一般而言,复杂度大于 10 的函数属于高风险。复杂度与测试用例数之间有一个经验公式,就是一个函数的测试用例数(检查点)应该至少与复杂度相等,这是检验测试充分性的一个视角。配合 SVN 版本管理库,我们可以使用 StatSVN 工具来实现代码修改量的自动统计。4 部署软件:把软件部署到测试所用的计算机上,持续集成的平台应该具备为多台计算机自动部署软件的能力。对于大型 C/S 模式的软件而言,在软件部署环节会需要以来大量的计算机构成的计算机平台,这个平台必须被持

12、续集成环境长期占用,不能挪作其他用途。但是其实单纯的在持续集成环境,计算机本身的计算能力大部分时候是闲置的,因此,我们建议在这个环节采用虚拟化方案以节约固定资产投入。5. 结束语持续集成作为敏捷软件开发的典型实践之一,应用已经非常广泛,但是具体的技术方案并没有统一的标准,各个企业可以根据自身的实际情况进行设计和实施。本文介绍了一种构建持续集成平台的设计方案,该方案经济实用,实施简便,应用效果良好。在中控ECS-700系统监控软件开发的过程,依靠持续集成平台,使开发过程中重大缺陷从产生到消除的平均时间,从原来的23天缩短到了8天时间,主要原因在于缺陷从产生到被发现的过程时间大大缩短了。持续集成平

13、台对中控提升软件开发效率,及早发现产品问题,保障软件产品质量起到了重要作用。参考文献 1 Paul M. Duvall. 持续集成软件质量改进和风险降低之道. 机械工业出版社, 20072 吴志福. 基于持续集成环境的软件过程管理: 福建电脑, 2011,27(5):85-863 刘巧玲,范冰冰,黄兴平. 基于 Hudson 的持续集成研究和应用: 计算机系统应用. 2010,12:151-1544 乔梁. 持续集成与配置管理策略: 程序员, 2010,1:118-119作者简介:陈挺,1981 年出生,男,浙江温州人,2003 年毕业于浙江大学电气工程及其自动化专业,获学士学位;2011 年毕业于浙江大学工商管理专业,获硕士学位。先后从事软件研发、项目管理、测试管理等工作。通讯地址:浙江杭州市滨江区六和路 309 号 A 座 4 楼 邮政编码:310053 联系电话:13666608371 电子邮箱:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报