ThoughtWorks文集第二辑:敏捷实践的艺术
基本信息
- 来源:/books/ThoughtWorks2.pdf
- 页数:94页
- 作者:覃其慧、章昱恒、陈金洲、乔梁、胡凯、李光磊、熊节、李贝等
- 性质:ThoughtWorks敏捷实践案例合集(续集)
- 出版:InfoQ企业软件开发丛书,C4Media Inc. 2010
核心内容
本书记录了ThoughtWorks中国团队在多个敏捷项目中积累的最佳实践,涵盖测试策略、数据迁移、富客户端开发、版本控制、持续集成、TDD实践等领域。
第一章:我和敏捷团队的五个约定
作者:覃其慧
测试人员在敏捷团队中的角色定位:
- 约定1:参加客户需求会议——预防胜于治疗,尽早了解需求,减少缺陷
- 约定2:为自动化测试提供意见——测试人员更了解用户行为模式和易错点
- 约定3:不要测试所有路径——按价值优先级测试,关注高风险功能
- 约定4:项目经理应咨询测试人员关于交付风险
- 约定5:测试人员也要参与敏捷实践——结对编程、INVEST原则等
核心观点:测试人员不是”找bug的人”,而是”质量守护者”,需要深度参与需求分析和设计阶段。
第二章:在敏捷开发中做好数据迁移
作者:章昱恒
CRM系统数据迁移案例(旧系统50GB数据):
- DBA需要有自己的”故事墙”管理任务
- 参加IPM(迭代计划会议),理解每个story的数据需求
- 制定目标:7个数据迁移story
- 风险评估:数据质量、脏数据、遗留技术债
关键实践:
- 渐进式数据库开发
- 测试驱动 + 持续集成用于数据迁移
- 引入精益软件开发技巧保障数据质量
第三章-四章:富客户端/RIA原则与实践
作者:陈金洲
富客户端开发原则:
- 职责分离:UI、业务逻辑、数据访问
- 可测试性设计
- 模块化架构
第五章:为什么我们要放弃Subversion
作者:乔梁
分析SVN的局限性,推荐分布式版本管理工具。核心观点:分布式版本控制系统能更好地支持并行开发和代码审查。
第六章:“持续集成”也需要重构
作者:胡凯
持续集成系统的维护问题:
- CI脚本需要像产品代码一样维护
- 定期重构CI配置
- 保持反馈快速和稳定
第七章:Mock不是测试的银弹
作者:未知
讨论Mock框架的适用场景:
- Mock适用于隔离外部依赖
- 但不应滥用,过度Mock会降低测试可信度
- 真实系统集成测试更有价值
第八章:环境无关的环境
作者:李光磊
如何建立规范、统一开发环境:
- 统一IDE设置、shell配置
- Docker/虚拟机实现环境一致性
- 一键部署脚本
第九章:Tech Lead的三重人格
作者:熊节
Tech Lead的三个核心职责:
- 技术决策者:架构设计、攻克技术难题、确定设计方案
- 流程监督人:开发环境、持续集成、测试
- 干扰过滤器:与客户技术团队沟通、与BA/QA协作、处理杂事
核心观点:Tech Lead不是”最厉害的程序员”,而是”团队效率的最大化者”。
第十章:自动化测试的分层结构
作者:李贝
提出三层架构:
- 测试用例层:表达测试逻辑,使用业务语言
- 领域层:封装HTTP请求、浏览器控制、结果解析
- 待测系统层:实际被测试的系统
优势:
- 测试逻辑清晰易理解
- 减少测试脆弱性
- 降低维护成本
番外篇:TDD实践之实用主义
作者:李光磊
三个TDD实践创新:
- 用中文写测试用例名——在特定团队场景下,中文比英文表达更精确
- 用大量测试来驱动——先写所有测试名称,再逐步实现
- 一个环境,多个断言——共享测试环境的批量断言
核心思想:遵循原则背后的精神,而非死板遵守形式。
关键概念
- INVEST原则(独立、可协商、价值、可估算、短小、可测)
- 故事墙(Story Wall)
- IPM(迭代计划会议)
- 分层测试架构
- Tech Lead三重人格
与其他知识的关联
- ThoughtWorks文集精选版-5篇敏捷实践文章 - 同一系列的第一辑
- ThoughtWorks读书雷达-2016年版 - 相关读书清单