连续集成(ci)[未完成]

简介

在软件工程中,持续集成(CI)是每天将所有开发人员的工作副本合并到一个共享主线上几次的实践。虽然不提倡在一天内多次集成。Extreme programming(xp)采取了ci的观点,然后提倡每天多次继承——也许一天几十次。

基本原理

CI的主要目的是防止集成问题,在XP的早期描述中称为“集成地狱”。CI并不是作为频繁集成的一种改进而被普遍接受,因此区分两者很重要,因为它们的优点存在分歧。

在XP中,CI旨在与通过测试驱动开发实践编写的自动化单元测试结合使用。最初,这被认为是在提交到主线之前在开发人员的本地环境中运行并通过所有单元测试。这有助于避免一个开发人员正在进行的工作破坏另一个开发人员的副本。在必要时,可以在提交之前禁用部分完整的特性,例如使用特性切换。

稍后对这个概念的阐述引入了构建服务器,它会定期甚至在每次提交之后自动运行单元测试,并将结果报告给开发人员。构建服务器的使用(不一定运行单元测试)已经由XP社区之外的一些团队进行了实践。现在,许多组织已经采用了CI而没有采用所有XP。

除了自动化的单元测试,使用CI的组织通常使用构建服务器来实现一般应用质量控制的连续过程——经常应用的一小部分工作。除了运行单元测试和集成测试,这些流程还运行额外的静态和动态测试、度量和配置文件性能、从源代码中提取和格式化文档,并促进手动QA流程。这种持续的质量控制应用旨在提高软件的质量,并减少交付软件所花费的时间,取代了在完成所有开发后应用质量控制的传统做法。这与更频繁地集成以简化集成的原始思想非常相似,只适用于QA流程。

同样,通过确保在主线上检入的软件始终处于可以部署给用户的状态,并使部署过程非常快速,持续交付的实践进一步扩展了CI。

措施

减少风险
一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷,了解软件的健康状况,减少假定。
减少重复过程
减少重复的过程可以节省时间、费用和工作量。说起来简单,做起来难。这些浪费时间的重复劳动可能在我们的项目活动的任何一个环节发生,包括代码编译、数据库集成、测试、审查、部署及反馈。通过自动化的持续集成可以将这些重复的动作都变成自动化的,无需太多人工干预,让人们的时间更多的投入到动脑筋的、更高价值的事情上。
任何时间、任何地点生成可部署的软件
持续集成可以让您在任何时间发布可以部署的软件。从外界来看,这是持续集成最明显的好处,我们可以对改进软件品质和减少风险说起来滔滔不绝,但对于客户来说,可以部署的软件产品是最实际的资产。利用持续集成,您可以经常对源代码进行一些小改动,并将这些改动和其他的代码进行集成。如果出现问题,项目成员马上就会被通知到,问题会第一时间被修复。不采用持续集成的情况下,这些问题有可能到交付前的集成测试的时候才发现,有可能会导致延迟发布产品,而在急于修复这些缺陷的时候又有可能引入新的缺陷,最终可能导致项目失败。
增强项目的可见性
持续集成让我们能够注意到趋势并进行有效的决策。如果没有真实或最新的数据提供支持,项目就会遇到麻烦,每个人都会提出他最好的猜测。通常,项目成员通过手工收集这些信息,增加了负担,也很耗时。持续集成可以带来两点积极效果:
(1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。
(2)注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、总体品质以及其它的项目信息。
建立团队对开发产品的信心
持续集成可以建立开发团队对开发产品的信心,因为他们清楚的知道每一次构建的结果,他们知道他们对软件的改动造成了哪些影响,结果怎么样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值