《持续集成:软件质量改进和风险降低之道》读书笔记
作者:[美]Paul M. Duvall (保罗.M. 杜瓦尔)Steve Matyas (史蒂夫.迈耶斯) Andrew Glover(安德鲁.格洛弗) 著,王海鹏 译出版社:电子工业出版社出版时间:2012年06月
摘要:
主要包含 :构建,集成,部署,测试,审查,文档与反馈
第二章:引入集成
集成的价值
减少风险,减少重复工作,增加项目可度量性,随时提供可用产品,增强开发人员对产品的信心
集成实践内容
修改代码后要及时向版本库提示可编译的代码;自动化测试;及时修复构建失败的代码;自动化审查代码标准;做到至少每日一次自动化构建。
第三章:通过CI来减少风险
1.缺少可部署的软件
(ant定期编译)
2.很晚才发现缺陷
(单元测试,自动化测试)
3.项目可见性差
(SMS,EMAIL通知相关人员)
4.低品质的软件
(编码标准checkstyle/PMD/Findbug,架构标准 Jdepend)
四:及时构建软件
构建频率要至少半小时以上,无需每分钟,因项目基本上都不可能几分钟就构建完成了。
五:持续数据库集成 CDBI
1.版本库管理数据库脚本要像源代码一样进行管理,规划好资源目录
2.提供不同环境的执行脚本,做到重建数据库及数据
3.测试存储过程或函数
4.多版本并行开发也是同样道理
5.DBA要成为开发中的一员,完成SQL性能优化,脚本规范化等工作
六:测试
1.将测试分组:单元、组件、系统、功能
2.先执行较快的测试:单元
3.为缺陷编写测试案例,防止相同错误再次出现
4.一个测试用例使用一个断言
5.测试数据共享,可重复
七:审查
1.人工和自动化审查互补
2.审查编码标准,架构分层,重复代码
3.降低代码复杂度,CCN > 10不安全,降低圈度复杂度方法是《重构》和增加测试案例
4.重构前要先编写测试用例
5.常用工具:javaNCSS,PMD,Checkstyle
6.对象依赖:传入耦合高的对象会造成破会,传出耦合高的配件会遭到破会(JDepend)
7.代码覆盖率工具:PMD-CPD,Simian,Cobertura,EMMA,Clover,jacoco
8.通过代码覆盖率工具检查代码测试案例不足的功能(重要)
八:部署
1.随时随地提供可运行的软件
2.最好有回滚到上个版本的能力
3.生成报告,及时反馈
九:反馈
在正确的时间,以正确的方式,将正确的信息,发送给正确的人