极限编程XP- 测试驱动开发- 20210908
2021-09-09 14:35:00 23 举报
AI智能生成
坚持一日一思维导图,加油! 近期钻研主题:敏捷 参考链接:https://www.scrumcn.com/agile/tdd.html 最后,走过路过点个小赞 👍 ,谢谢!
作者其他创作
大纲/内容
测试驱动开发
Test-Driven Development
简称TDD
在编写某个功能的代码之前先编写测试代码
只编写使测试通过的功能代码
通过测试来推动整个开发的进行
有助于
编写简洁可用和高质量的代码
加速开发过程
《测试驱动开发》
Kent Beck先生
在其极限编程(XP)方法论中
推荐“测试驱动”这一最佳实践
基本原理
基本思想
在开发功能代码之前,
先编写测试代码,
然后只编写使测试通过的功能代码,
从而以测试来驱动整个开发过程的进行
先编写测试代码,
然后只编写使测试通过的功能代码,
从而以测试来驱动整个开发过程的进行
基本过程
快速新增一个测试
运行所有的测试(有时候只需要运行一个或一部分),
发现新增的测试不能通过
发现新增的测试不能通过
做一些小小的改动,
尽快地让测试程序可运行,
为此可以在程序中使用一些不合情理的方法
尽快地让测试程序可运行,
为此可以在程序中使用一些不合情理的方法
运行所有的测试,并且全部通过
重构代码,以消除重复设计,优化设计结构
口号
不可运行/可运行/重构
本质和优势
测试驱动开发
不是
测试技术
是
分析技术、设计技术
组织所有开发活动的技术
优势
更符合后期开发的需求
TDD根据客户需求编写测试用例,
对功能的过程和接口都进行设计,
从使用者角度对代码进行的设计
通常更符合后期开发的需求
对功能的过程和接口都进行设计,
从使用者角度对代码进行的设计
通常更符合后期开发的需求
因为
关注用户反馈
及时响应需求变更
从使用者角度出发的简单设计
更快地适应变化
提高系统的可扩展性和抗变性
出于易测试和测试独立性的要求,
将促使我们实现松耦合的设计,
并更多地依赖于接口而非具体的类,
提高系统的可扩展性和抗变性
将促使我们实现松耦合的设计,
并更多地依赖于接口而非具体的类,
提高系统的可扩展性和抗变性
缩短设计决策的反馈循环
几秒或几分钟之内就能获得反馈
降低后续测试及修复成本,
提高代码质量
提高代码质量
将测试工作提到编码之前,
并频繁地运行所有测试,
可以尽量地避免和尽早地发现错误
并频繁地运行所有测试,
可以尽量地避免和尽早地发现错误
在测试的保护下
不断重构代码
消除重复设计
优化设计结构
提高代码重用性
提高软件产品质量
持续跟踪整个系统状态
回归测试
有重构的勇气
代码的改动导致系统其他部分产生任何异常,
测试都会立刻通知我们
测试都会立刻通知我们
完整的测试
持续地跟踪整个系统的状态
需要担心会产生什么不可预知的副作用
单元测试代码就是
最完美的开发者文档
最完美的开发者文档
展示了所有的API该如何使用以及是如何运作的
它们与工作代码保持同步,永远是最新的
快乐工作的
重要前提
重要前提
减轻压力
降低忧虑
提高我们对代码的信心
使我们拥有重构的勇气
快速提高开发效率
现状和前景
向敏捷转型
”Forrester的高级分析师Dave West认为,测试驱动开发(TDD)就像是“圣杯”,但是“如果能达到这个目标,付出再多的辛苦也是值得的。”
参考链接
https://www.scrumcn.com/agile/tdd.html
0 条评论
下一页