持续集成
用手机看条目
出自 MBA智库百科(https://wiki.mbalib.com/)
(重定向自Continuous Integration)
持续集成(Continuous Integration)
目录 |
[编辑]
持续集成是指开发阶段,对项目进行持续性自动化编译、测试,以达到控制代码质量的手段。持续集成是一种软件开发实践。
[编辑]
在软件工程中,持续集成是指软件开发流程中一系列的最佳实践,近几年已被广发应用到实际项目开发中。极限编程中一项建议实践便是持续集成,它提供了及时发现问题、追踪问题、修复问题的机制,替代了传统的在所有代码编写完毕后才提交QA部门进行测试的方法。持续集成对单元测试较为依赖,测试覆盖率越高,单元测试越准确,越能体现持续集成的效果。持续集成主要在以下方面提供好处:
1、持续自动化测试(持续集成可通过时间间隔触发,或其他方式触发)
2、跟踪工程健康状况
3、强制性单元测试用例,验收测试用例等
4、静态代码检测,生成测试报告
[编辑]
理想的持续集成的实现方法:
- 同一个软件产品要有集中的同一台开发服务器,即所有人的最新的、各自编译通过的源代码都在配置管理工具如VSS中。
- 有一台运行主创建的机器,有计划的运行日构建, 日构建中有一个创建进程,该创建进程是在一个随时保持运行的Java类中进行的,如果没有创建任务,创建进程就一直循环等待。
- 守护进程将全部代码(包括原程序和配置文件,数据库脚本等)提取到创建机器的一个目录中。提取完成之后,守护进程就会在这个目录里调用Ant脚本。
- Ant会接管整个创建过程,对所有源代码做一次完整的创建。Ant脚本会负责整个编译过程,并把得到的class文件放进六个jar包里,发布到EJB服务器上。
- 当Ant完成了编译和发布的工作之后,创建守护进程就会在EJB服务器上开始运行新的jar,同时开始运行BVT测试套件:即利用Junit进行单元测试。单元测试完成后,日构建会把单元测试报告发给有错误的开发人员。
- 为了利用自动化工具(WINRUNNER)进行功能测试,必须对JSP编译,利用jspc命令进行包装一层,就可以自动的对所有的jsp文件进行编译,但由于编译jsp的时间非常长(越比编译java代码时间长),所以一般利用单独的编译服务器进行编译。发布编译好的jsp文件进行自动化测试的成功率高(因为第一次运行jsp文件非常慢,而自动化测试最忌讳运行时和录制时等待得时间不一样)。而功能性自动化测试也需要按计划有顺序的执行,这需要TestDirector测试管理系统来调度Winrunner进行测试。