持续集成学习笔记

上一篇 / 下一篇  2012-07-30 14:54:23 / 个人分类:持续集成

 

意义

敏捷开发中,有一个很重要的实践叫做持续集成。而什么是持续集成呢?简单来说,持续集成是频繁、持续的在多个团队成员的工作中进行集成,并且给与反馈。
一个典型的持续集成周期包括以下几个步骤:

1)持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。
2)
如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。
3)
等代码完全更新以后,调用自动化编译脚本,进行代码编译。
4)
运行所有的自动化测试
5)
进行代码分析。
6)
产生可执行的软件,能够提供给测试人员进行测试。

如果其中任何一个步骤失败,就表示该Build失败,持续集成服务器会给予相应的反馈。
一般来说,持续集成服务器会有相应的管理界面,可以看到Build的状态以及相应的信息,如果Build失败,可以查看原因,是编译失败还是测试失败。
或者在每次Build后,持续集成服务器发邮件通知,从邮件中可以看到最新Build的状态。
当然,也可以自定义反馈方法,比如在ThoughtWorks中国,有个团队的持续集成反馈就是火山灯,
黄色表示正在进行Build,绿色表示Build成功,而红色则表示Build失败,一旦发现灯变红了,所有人都不能提交代码,而应该尽快修复该Build

持续集成实践的目的不是减少Build失败的次数,而是尽早发现问题,在最短的时间内解决问题,减少风险和浪费。

成本

  而持续集成的成本在于对持续集成代码的维护成本和集成的时间成本。因为随着项目进行,软硬件环境会越来越复杂,成品代码也会不断膨胀。
此时,需要团队而修改或增加原有的测试代码,以适应这些变化,同时,每次集成所需时间也会变长,这就是持续集成的成本。
某个blog中提道:这种集成是如此的频繁,多少次的代码Commit就有多少次持续集成。前提是集成的成本很低,或者说是完全自动化的。

准备

1.持续集成环境搭建
1)
版本控制工具(SVN
2)
持续集成工具(Hudson
3)
高性能机器作为服务器
4)CI
结果可视化
5)
错误邮件提醒

2.准备
1.
用例的自动化,能够一键自动执行所有用例;
2.
减少用例的执行时间;
3.
自动化回归;

实施

shell编程学习
编写case自动化执行脚本执行
handson使用学习
效果提高


TAG:

 

评分:0

我来说两句

Open Toolbar