现在开始学daily build 的相关的知识了,在此把学习到的东西整理一下,放到这里,方便以后自己或者大家来回顾学习。
首先daily build 是什么呢?daily build 又称为为"每日构建",就是把一个软件项目的所有的最新的代码从配置库中取出,然后从头进行编译,链接和运行。更甚者可以再运行测试包对软件的主要功能进行测试,发现并报告错误的整个过程。最常见的是前过程。daily build 一般是在每日下班后半夜进行,前提是员工check in 最新的code到配置库中。所以可以把daily build戏称为 nightly build。然后在第二天上班事分析build的log,找出error并mail给所属模块负责人,敦促解决,daily build的另一个重要功能就是验证软件中各模块关系是否正确,“每日集成”也是合情合理。
daily build 一定要具备一下几点:自动、频繁、完整
自动:所有的步骤都有脚本自动完成,从check out代码,编译,链接,到运行等等相关步骤都是自动运行而没有人工干预,要自动底干干脆脆。要知道,daily build又称为neight build,是一个深更半夜让CPU 100%工作的过程。
频繁:不一定是每天build的次数越多越好,但必须保证每日一次,daily要名副其实。
完整:所有的文件都要先clea在build,而不是不完美的增量编译。要build的彻彻底底。
Daily Build的大概流程
1、 启动Daily Build任务,删除Daily Build服务器上有关的所有源代码,以保证当前Daily Build服务器的环境是干净的
2、 把CVS服务器上的最新代码更新到Daily Build服务器上,以保证当前代码是最新的
3、 创建相关目录,编译这些最新的代码,并且把编译过程中的所有输出信息都保存到一个文本文件中(重定向到指定的文件)
4、 在所有编译完成后,开始执行自动测试(包括与内核有关的性能测试以及用户程序测试),并且将有关的输出信息都记录在对应的文件中,这些文件将用于后面的数据分析,为生成的测试报告提供依据
5、 收集所有自动测试的数据并进行分析
6、 根据分析结果绘制图表
7、 生成测试报告,并且把分析结果和图表插入报告中
8、 发送测试报告给相关人员
Daily Build工具及其用途
1、 Daily Build服务器(普通PC,安装WINDOWS2000),主要用于自动更新代码,编译源代码,启动有关的测试过程,收集测试数据,对测试数据进行分析,根据测试数据绘制图表并生成测试报告
2、 测试用的单板机(Celeron 433, 64M, 10G, 安装DOS),主要用于运行测试程序,配合Daily Build服务器进行工作
3、 其他外设(串口线等),主要的物理传输介质
4、 批处理、PERL脚本一起其他一些小工具,主要用于控制流程、后期数据分析和生成报告
根据功能划分Daily Build流程
1、 代码的更新
2、 编译最新代码,保存所有版本的编译信息
3、 运行内核功能测试和性能测试,并收集数据
4、 运行用户程序测试,并保存用于记录测试数据的文件
5、 对所有收集的数据和保存的文件进行分析比较
6、 根据分析比较结果生成HTML格式的测试报告并插入相关图表