欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

由项目经理对所有代码进行集成; CAD加密 集成后的项目由项目经理部署到测试服务器上

点击: 次  来源:宝鼎软件 时间:2017-06-01

原文出处: waylau

一连集成(Continuous Integration),也就是我们常常说的 CI,是现代软件开拓技能的基本。本文阐述了当前软件开拓进程中存在的问题,讲授了一连集成、一连集成处事器的观念,最终探讨了为什么我们需要一连集成来办理这些问题。

当前软件开拓进程存在的问题

在没有应用一连集成之前,传统的开拓模式是这样的:

  • 项目一开始是先分别好模块,分派模块给相应的开拓人员;
  • 开拓人员开拓好一个模块就举办单位测试;
  • 等所有的模块都开拓完成之后,由项目司理对所有代码举办集成;
  • 集成后的项目由项目司理陈设到测试处事器上,被交由测试人员举办集成测试;
  • 测试进程中呈现 Bug 就提把问题记录举办 Bug 列表中;
  • 项目司理分派 Bug 给相应的责任人举办修改;
  • 修改完成后,项目司理再次对项目举办集成,并陈设到测试处事器上;
  • 测试人员在下一次的集成测试中举办回归测试;
  • 通过通过之后就陈设到出产情况中;
  • 假如测试不通过,则反复上述“分派 Bug -> 修改 Bug -> 集成代码 -> 陈设到测试处事器上 -> 集成测试”事情。
  • 这个进程中大概会呈现如下问题:

    1. Bug 老是在最后才发明

    跟着软件技能的成长,软件局限也在扩大,软件需求越来越巨大,软件已经不能简朴地通过分别模块的方法来开拓,往往需要在项目内部相互相助,模块之间存在必然的依赖干系,那么早期就存在的 Bug 往往会在最后集成的时候才被发明。

    2. 越到项目后期,问题越难办理

    许多开拓者需要在集成阶段耗费大量的时间来寻找 Bug 的来源,加上软件的巨大性,问题的来源很难定位。并且我们都清楚,隔断的时间越久,Bug 修复的本钱越高,因为连开拓人员本身都忘了当初写得是什么鬼代码,从而不得不从新阅读代码、领略代码。

    3. 软件交付机缘无法保障

    正是因为我们无法实时修复 Bug,可能是没能在早期就修复 Bug,从而令整个修复 Bug 的周期拉长了。不管怎么样,我们不行能把明知存在 Bug 的软件交付给客户。

    并且,大量没有在前期预估到的事情量发生了——开拓人员不得不耗费大把时间在查找 Bug 上;测试人员不绝的需要举办回归测试;项目司理不得不疲命于活该的代码的集成、陈设这些反复性事情——最终导致整个项目标周期拉长,交付时间点往后拖。

    4. 措施常常需要改观

    某些项目,措施会常常需要改观,出格是火速开拓的实践者。由于产物司理在与客户交换进程中,往往实际的软件就是最好的原型,所以软件会被看成原型作为跟客户交换的东西。虽然,客户最但愿的虽然是客户的想法可以或许顿时反应到原型上,这会导致措施会常常被修改的。那么也就意味着“分派 Bug -> 修改 Bug -> 集成代码 -> 陈设到测试处事器上 -> 集成测试”事情无形又爆增了。

    5. 无效的期待变多

    有大概开拓在等集成其他人的模块;测试人员在期待开拓人员修复 Bug;产物司理在期待新版本上线好给客户做演示;项目司理在期待其他人提交接码。不管怎么样,期待意味低效。

    6. 用户的满意度低

    这里的用户是广义的,可以指最终的客户,也可以是产物司理、公司率领、测试人员,甚至大概是开拓人员本身。你想想看,软件开发,原来三个月做完的项目被拉长到了九个月甚至一年,用户能满足吗!产物司理、公司率领常常需要拿项目作为演示的原型,功效汇报我在演示前一刻发明尚有许多 Bug 没有办理,项目启动不了无法会见,这叫人情何故堪。

    一连集成、一连集成处事器的观念

    那么好了,在上面阐述的这些问题中,我们发明有些事情是无法制止的,好比测试事情、修改措施、集成事情、陈设事情。但其实在整个事情流程上,是存在可以优化的空间的,好比,集成测试的事情是否可以提前做?能否有自动化的手段来取代测试、集成、陈设事情?环绕这些,软件行业的大家们提出“一连集成”标语。

    1. 什么是一连集成、一连集成处事器

    在软件工程中,一连集成(CI)是指将所有开拓者事情副本天天多次归并到骨干的做法。 Grady Booch 在1991年的 Booch method 中首次定名并提出了 CI 的观念,尽量在其时他并不主张天天多次集成。而 XP(Extreme programming,极限编程)回收了 CI 的观念,并倡导天天不止一次集成。