WHAT?
集成是这样一种软件开发行为:将一些独立的软件组合为一个完整的系统。
WHY?
- 更容易诊断缺陷
- 尽早获得一个可工作的产品
- 更好的顾客关系
- 增强士气
- 更可靠地估计进度表
- 更准确的现状报告
HOW?
集成的两种方式
- 阶段式集成(爆炸集成)
- 增量集成(滚雪球集成)
增量集成的策略
- 自顶向下(Top-Down):使用底层stub类,逐渐替换为实际的类。若底层接口实现起来有bug,或者有性能问题,会导致顶层设计变更
- 自底向上(Bottom-Up):“让底层细节驱动高层类的设计”违反了信息隐藏原则
- 三明治(Sandwich)
- 风险导向(Rick-Oriented)
- 功能导向(Feature-Oriented):先搭骨架
- T型集成(T-Shaped)
冒烟测试
对完整程序执行相对简单的检查,跑得通主流程,看看产品在运行时是否“冒烟”
Daily Build
- 降低了低质量的风险,振奋士气,令隐藏起来的问题浮出水面不至堆积
- 每日build
- 检查失败的build
- 如有必要成立专门的build小组
- 在早上发布build,这样可以让测试人员当天测试新鲜的build,而且在白天也更易找到开发人员。若在晚上发布build而且失败了,肯定要加班
- 两次checkin之间最多间隔一两天
- Microsoft Windows 2000有5000万行代码,散布于数万个源文件中,完整地build一次需要若干台机器运行19小时——即使这样开发团队仍然设法每天build