持续集成(Continuous Integration),也就是我们经常说的CI。持续集成是一种软件开发实践,开发人员频繁的将代码合并到主干,在合并到主干之前必须经过测试(单元测试、静态代码扫描等),只有测试通过才能集成到主干,这个过程借助于CI服务器,这样在快速迭代的过程中能够更快更早的发现并解决缺陷,从而提高软件质量。
那么在采用继续集成之前,传统的开发模式是怎么运作的呢?
- 项目划分成多个模块,不同的开发人员负责不同的模块开发
- 开发人员边写代码边进行单元测试(也可以是模块完成后再写,也有可能不写)
- 所有模块开发完成后,开始集成
- 集成好的项目部署到测试服务器并交给测试人员测试
- 测试过程中发现BUG并提交BUG到相应的责任人
- 开发修改完成BUG后,项目再次集成,部署,测试
- 如果测试通过就部署到生产环境
- 否则继续修改BUG,集成,部署,测试
上面的流程又长又臭,开发人员在进行开发很长一段时间后才会尝试把代码合并到主干分支上,这样如果小的缺陷一直得不到解决,会使缺陷的定位变得越来越复杂。那么持续集成有何好处。
提高了开发效率
自动话的构建,测试能够极大的提高开发效率
快速发现定位BUG
提交代码会触发CI服务器对代码自动进行构建和测试,这样通过完备的测试,可以提前发现BUG并且能够快速定位BUG,解决BUG的成本显著下降。
更快速的发布更新版本
持续集成将大多数BUG消灭在集成测试之前,并且可以自动完成大量重复工作,节省人力