谈每日构建都会连带谈冒烟测试这个词。每日构建不是简单的指每日编译,编译和构建完成后必须对增加的新功能点进行系统测试,对已经测试过的功能点进行冒烟测试。每日构建是微软比较推荐的最佳实践,强调测试的早期介入和持续的版本集成。
每日构建和冒烟测试的优点主要有:
1.进度可见并可以控制到1-2天的细粒度,很容易看到进度的偏差
2.及早的发现开发BUG和缺陷并分析解决,对开发人员的一种监督和促进,提高软件质量
3.由于将大集成分解到每日构建中的小集成,避免了传统产品集成或集成测试时候出现的严重问题的可能。
4.在项目中宣灌质量意识,强调第一次就把事情做好,而不是等测试来帮你发现问题
1.进度可见并可以控制到1-2天的细粒度,很容易看到进度的偏差
2.及早的发现开发BUG和缺陷并分析解决,对开发人员的一种监督和促进,提高软件质量
3.由于将大集成分解到每日构建中的小集成,避免了传统产品集成或集成测试时候出现的严重问题的可能。
4.在项目中宣灌质量意识,强调第一次就把事情做好,而不是等测试来帮你发现问题
每日构建和冒烟测试也存在一些风险和缺陷,具体主要有
1.给开发人员太大压力,开发每天都在较紧张环境中工作
2.需要额外的测试人力资源和每日构建硬件环境的投入
3.开发人员不能专注,既要分心去修改BUG,又要开发新的功能点
4.对开发负责人要求更好,需要将功能细化到1-2天的有明确输出的功能点
1.给开发人员太大压力,开发每天都在较紧张环境中工作
2.需要额外的测试人力资源和每日构建硬件环境的投入
3.开发人员不能专注,既要分心去修改BUG,又要开发新的功能点
4.对开发负责人要求更好,需要将功能细化到1-2天的有明确输出的功能点
5.开发需要投入额外的精力来保证每日构建顺畅
适用场景
1.对进度偏差控制和要求很高的项目
2.开发检查点和里程碑制定的很细致的项目
3.采用增量和迭代开发的项目,快速和敏捷开发的项目
1.对进度偏差控制和要求很高的项目
2.开发检查点和里程碑制定的很细致的项目
3.采用增量和迭代开发的项目,快速和敏捷开发的项目
每日构建提前需要进行的准备工作
1.对开发进度计划的要求,需要细化出每1-2天的开发进度计划,可以到一个很小的功能点。
2.对每日构建测试计划的要求,需要根据开发进度计划来安排冒烟测试和系统测试进度计划。
3.需要提前准备好每日构建的环境(每日构建必须是独立的环境)
1.对开发进度计划的要求,需要细化出每1-2天的开发进度计划,可以到一个很小的功能点。
2.对每日构建测试计划的要求,需要根据开发进度计划来安排冒烟测试和系统测试进度计划。
3.需要提前准备好每日构建的环境(每日构建必须是独立的环境)
每日构建和冒烟测试工作的实现可以人工来实现,但更多的需要借助些自动化的工具来完成。对于每日构建一般要提前编写好每日够建的脚本,可以借助Ant或NAnt构建工具来完成。每日构建脚本的复杂性跟项目或系统本身复杂性相关,对于简单的只有一个项目的解决方案,可能构建脚本会很简单,而对于较复杂的系统或项目构建脚本将会教复杂。NAnt是一个强大的通过构建脚本自动编译的工具,像我现在的项目在NAnt里面会做如下事情,而这个即使打开解决方案来编译也无法做到。
1.调用批文件重新自动生成数据访问层组件
2.创建相关的部署需要的cs_client,bs_client,server,service相关目录并拷贝公用文件
3.按照公用项目->逻辑层->界面层顺序和项目间依赖关系对各个项目逐一编译