软件项目开发中的持续集成研究

上传人:枫** 文档编号:498088875 上传时间:2023-04-05 格式:DOC 页数:4 大小:160KB
返回 下载 相关 举报
软件项目开发中的持续集成研究_第1页
第1页 / 共4页
软件项目开发中的持续集成研究_第2页
第2页 / 共4页
软件项目开发中的持续集成研究_第3页
第3页 / 共4页
软件项目开发中的持续集成研究_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《软件项目开发中的持续集成研究》由会员分享,可在线阅读,更多相关《软件项目开发中的持续集成研究(4页珍藏版)》请在金锄头文库上搜索。

1、项目管理技术PROJECT MANAGEMENT TECHNOLOGY2011年12月第9卷第12期Vol. 9 No. 12Dec. 2011软件项目开发中的持续集成研究陈刚1羌铃铃2( 1. 西门子数控 ( 南京) 有限公司,江苏2. 江苏省测绘工程院,江苏 南京南京 211100;210013)摘要: 持续集成是完全的自动化构建过程,使得软件开发团队在一天中多次构建并测试软件功能。从持续集成广泛使用的现状,引出了持续集成的概念及其优点,剖析了持续集成在软件项目开发中的必要性,并 且讨论了持续集成作为一个系统工程需要经历的理念转变,最后以虚拟专用网系统 MML 项目为例研究了搭 建持续集成

2、环境的方法以及相应的自动化工具。关键词: 持续集成; 自动化; 理念转变馈给开发人员。持续集成比较简单的定义是: 持引言0( CI)是一种实践,利用它,开发团队的续集成成员频繁地整合他们之间的工作,通过时时运行测试,让团队在持续开发的基础上收到反馈并进 行改进,保证软件现有的功能不被破坏。随着计算机软件产业的蓬勃发展,软件开发过程中引入了持续集成( Continuous Integration,CI)的概念。目前,全球 80% 以上的软件开发项目都采用持续集成。例如,微软在上千万行代码的项目中仍然坚持每日做持续集成,每日构建是 微软很出名的一项开发方法; Martin Fowler 项目 团队

3、表示,在一个 50 人的团队、20 万行代码的 项目中,每天要持续集成 20 多次。而且,大多 数软件公司在注重持续集成的同时也建立了衡量 持续集成的标准。一般要求在软件开发项目中使 用能够自动化编译、通过静态检查工具来发现问 题、每日自动执行、报告进展,并覆盖对大多数1. 2持续集成的优点( 1) 减小风险。持续集成过程中服务器自动更新代码、编译、运行单元测试、功能测试、集 成测试,并反馈结果1。一旦失败意味着最近一次更新破坏了软件现有功能或引入了新的缺陷,这样可以帮助开发人员快速发现编译失败、测试失败等现象并解决问题。( 2)构建自动化,提高效率。在软件开发过程中采取手工操作会引入许多不确

4、定的因素,使得发现和解决问题变得异常困难。通过使用持续 集成工具将构建过程自动化,便于分析并找出问 题,大大提高了团队的效率。( 3) 生成构建结果。在使用持续集成工具的 环境中,开发人员对源文件进行修改、提交,持 续集成服务器会将这部分修改与其他的代码进行 整合、测试,并重新生成最终产品1。自动化测功能( 80% )的自动化测试验证。本文着重研究持续集成在软件项目开发中的应用。持续集成的概念及其优点11. 1持续集成的概念持续集成是完全的自动化构建过程,使得一个开发团队在一天中多次构建并测试软件。持续试结束还会生成代码分析报告 ( 测试覆盖率等) ,的交付结果负责。来,有足够的时间进行产品创

5、新和开发高质量的软件3。管理者理念的转变3. 3管理者重要职责是审视持续集成的结果,出现问题促使尽快解决。从关注计划、文档到关注持续集成作为一个系统工程涉及理3念的转变持续集成结果的转变,持续集成反映了产品真实的进度和质量。保证持续集成人力投入,产品持续集成由专人负责,其职责包括: 负责制定产品 分级分层分布式的产品持续集成策略; 负责持续持续集成是几乎没有任何争议的业界优秀实践,无论是否敏捷都可以通过持续集成来提升开 发效率、减少风险。持续集成有这么多的优点, 但要用好持续集成却不容易,这是因为持续集成 不仅仅是开发人员的事,它还是一个系统工程, 涉及到开发理念、测试理念、管理理念、配置管

6、理的转变。集成环境的搭建和维护; 负责维护产品的模块依赖关系 ( 如 Makerfile、测试执行的顺序) 。供在各种不同环境下 ( 如操作系统、硬件配置、软件 配置) 的工具配置和使用及时定位和解决持续集成环境存在的问题。负责产品持续集成的应当是3. 1开发理念的转变资深员工而不是没有经验的员工。持续集成需要对产品架构、模块依赖关系、开发活动顺序、环开发人员每次工作前必须获取主干上的最新代码。开发人员应每天至少提交一次代码。频繁 提交将促使开发人员把工作分解成更小的粒度, 既降低工作难度,又有利于监控项目的进展。开 发人员必须先在本地构建成功,才可提交代码到 配置库。千万不要提交无法编译或不

7、能通过测试 的代码。务必始终保证主干版本的构建成功,以 免影响他人编写代码。开发人员不仅开发代码, 同时要编写自动化的测试用例来验证软件。根据 需求的变更,开发人员要持续维护和更新自动化 测试用例。如果持续集成构建出现错误,解决版 本构建失败的问题是团队最高优先级任务。最近 提交代码的开发者必须参与修复失败的构建。境部署、配置库等都非常熟悉的人员才可以制定出正确的产品持续集成策略。持续集成是系统工程,涉及设计、开发、测试、工具、技术等之间协同,需要对产品有系统视野的管理者。3. 4配置管理理念的转变所有软件资产都应集中管理,软件资产决不仅是源代码,它还包括: 测试用例、配置脚本、第三方组件或库

8、、数据库、用于初始化应用的数据文件、构建脚本、构建环境的配置文件或安装脚本等。配置管理工具和流程支撑基于特性的版本管理 ( 目前只支撑基于版本粒度的管理) 。配置管理工具支持多人并行开发 ( 多人同时 Check In) 。配置管理的目录结构要规范,保证和持续 集成的目录结构一致,缩短构建时间。配置管理3. 2测试理念的转变需要建立端到端的统一测试策略、测试框架工具性能要改进,保证大家频繁提交代码时不需2011年第9卷第12期陈刚等 软件项目开发中的持续集成研究105命令6为例探讨持续集等待很长时间。平台与产品之间的配置管理库要拉通 ( 头文件和库文件及时更新) ,保证彼此早 集成。( Man

9、 Machine Language)成的构建方法。统一源码库和配置管理4. 13. 5建立持续集成规则 / 纪律对于统一源码库和版本配置检测可以采用版本控制系统来完成。例如 ClearCase、CVS、SVN 以及最大众化配置管理工具 VSS4。要将 MML 命令涉及到的所有项目文件都要放到版本管理库 上,包括项目规格说明书,软件需求说明书,软 件详细设计文档 ( 流程图、逻辑图等) ,源代码 文件,单元测试用例,软件集成测试方案,软件 系统测试方案,系统测试用例,系统测试结果的 分析报告以及相关数据脚本和运行脚本等。对这些项目文件的存放也要根据相应的模块 划分或软件项目结构组成分类存放,分不

10、同的文 件目录存放。同时也要在软件生产的不同阶段对 软件过程文档加以整理修改,保持同步更新。要 对不同阶段的软件项目文件在当前阶段完成之后 组织相关项目人员评审以及针对评审结果进行修 改,一个阶段完成了要对这个阶段项目文件进行 基线管理。所谓基线就是当前项目文件以及相关 工作经过评审以后项目组成员一致公认正确,将 其固定下来作为后期软件开发的标准和依据。鉴于以上思路,各产品在持续集成中都制定了一些规则 / 纪律,例如:( 1)解决构建失败问题是团队最高优先级任务。快速修复失败的构建,可以避免因失败的构建而导致软件现有功能被破坏或引入新的缺陷。在规定的时间内仍然无法修复,提交必须回滚。( 2)开

11、发人员每天都要提交代码,至少提交一次。多次提交可以大大减少服务器构建失败的概率,并且使得修复失败构建的时间大大缩短。( 3)提交代码前必须做本地构建。( 4) 在持续集成构建成功前 ( 正在构建或构建失败) ,不允许提交代码。( 5) 每次构建要求生成构建结果,本次构建 结果成为下次构建的基准。( 6) 开发人员日常工作习惯也要做出改变, 通常的步骤如下: 从配置库获取最新版本,基于最新版本开始编码; 编码完成后还要将配置 库上的最新代码同步到本地; 开始本地构建 ( 编译、单元测试、静态检查、集成测试) ; 成功后自动向配置库提交代码。4. 2搭建持续集成的环境对 MML 命令的自动化测试需

12、要搭建持续集成的环境。搭建持续集成环境与操作系统有一定 的关系。一般需要支持多线程、多任务的操作系统。例如 Unix 或 Linux 等。同时也要注意数据库系统的配套版本。在 Unix 或 Linux 上有时支持的 数据字段的长度与数据库版本有关系。MML 命持续集成构建的方法以及相关工具4持续集成的关键在于完全的自动化,自动化的构建包括: 获取版本、编译、单元测试、静态 检查、集成测试、系统测试、软件部署、信息反 馈等全部自动化。持续集成需要借助相关工具才 能完 成,持 续 集 成 系统由持续集成工具 ( 如 CruiseControl) 4-5、统一源码库和版本管理工具 ( 如 Clear

13、Case) 、构建工具 ( 如 Ant) 、代码检查( 如 PcLint) 、单元测试框架构成,同时也要搭建( Service令运行还需要业务运行环境例如 SMPManagement Point)和 SCP( Service Control Point) 。参考项目相关说明文档,依次搭建好 SMP 和 SCP环境,同时也要正确安装数据库统例如 Oracle 或Informix。4. 3自动构建较,如果相等就认为该测试用例验证的软件功能持续 集 成 工 具 很 多, 主 流 的 有Ant-Hill,完全正确; 否则,该软件功能不符合实际用户需CruiseControl,Apache Dump 等

14、。MML 项目可以使用 CruiseControl 作为持续集成工具。CruiseControl 包括了邮件通知、调用 Ant 任务、源代码控制工 具的插件,并可以将每次构建的结果以 Web 形 式发布出来。CruiseControl 使用 XML 文件作为配置 文件,可以定时检测源代码库的文件变动,如果发 现有变化,则会在设定的时间调用 Ant 中的构建任 务,运行完毕后创建一个日志文件,并通知开发者。求。在自动化测试系统中要提供对所有被执行的测试用例结果的统计报告或测试用例覆盖率。结语5持续集成是一个在实践中不断发展和完善的过程,对于一个团队而言,引入持续集成对于提高开发效率和规范开发过程

15、是非常有效的1。它需要开发人员按照持续集成的要求养成良好的开4. 5代码静态检查MML 项目 包 括 对 C + + 代码的静态检查和 发习惯,也需要建立有效的测试用例和规范规Java 代码的项目检查。对于 C / C+ 代码检查,可以使用 PcLint 工具。PcLint 比较敏感,要求比较 精细,往往会有很多无关紧要的警告信息。在对 源代码进行了静态检查以后会提供一份检查结果 报告。对于 Java 代码检查,使用代码风格检查工 具 Checkstyle、代码复杂度检查工具 PMD、代码优化工具 JDepend、计算出源代码的统计信息工 具 Javancss、代码安全检查工具 Fortify1。 通过对 C / C+ 代码和 Java 代码进行静态检查,可以获 得编写的代码的质量分析报告。针对这个质量分 析报告可以不断地进行软件质量的优化和改进。4. 6 自动测试工具

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号