QCon北京2014:实战演示ATDD解决技术债务:从零到密码保护功能

4 下载量 4 浏览量 更新于2024-07-15 收藏 481KB PDF 举报
"本文将带你深入理解ATDD实战——一种在真实世界项目中应用的验收测试驱动开发方法。2014年QCon全球软件开发大会在北京站上,作者分享了他的实践经验,强调了ATDD作为解决技术债务的有效工具。文章以webwhiteboard.com项目为例,引入了如何为网站添加密码保护功能,这是一个需要考虑用户体验和安全性的复杂任务。 在开始前,作者提到他已经有了良好的单元测试和集成测试基础,但缺乏验收测试,即从用户视角进行的端到端测试。他明确了设计原则,如用户设置密码后无需再次登录查看白板,且采用OpenId/Oauth的第三方身份验证以简化注册过程。 ATDD的具体实施步骤如下: 1. 高层次流程设计:首先,作者在概念层面上描绘出预期的用户流程,例如设置密码、验证密码访问白板等。 2. 编写验收测试:然后,将这些流程转换成可以运行的自动化测试用例,确保它们能够准确反映功能需求。 3. 执行并失败:由于初始设计可能存在不足,测试会因为代码未实现预期功能而失败。 4. 代码实现与迭代:每次迭代中,根据测试结果调整代码,直至测试通过。这是一个迭代过程,每个步骤都可能导致代码结构的优化。 5. 代码清理:完成功能后,还要进行代码审查和重构,确保代码质量。 作者强调,尽管文章中的实践可能不是唯一的方法,也没有创新的内容,但它代表了ATDD的核心理念——通过测试驱动开发来指导设计和实现,而不是依赖于过度使用的第三方框架。读者可以从中学习到一个具体案例中如何运用ATDD解决实际问题,以及如何在面对技术挑战时保持清晰的思维和迭代式的开发过程。"