测试驱动开发(TDD)
测试驱动开发(TDD)
在开发过程中有两种类型的测试过程:单元测试 和 测试驱动开发。
单元测试
- 代码级的测试,每个单元测试都是测试单独类或方法。
- 单元测试套件可以开销小、速度快的方式穷举覆盖代码
- 典型的单元测试检查只基于一个代码类的功能,并且不应该涉及与文件系统或数据库的交互
测试驱动开发
- 更侧重于测试自动化的设计哲学,以通过满足测试要求来验证设计
- 在编写一个功能的实际代码之前,先为它开法自动化测试,然后开发功能
- 在测试通过之后,可以重构代码以满足更高的质量标准
集成测试之前
- 强制在提交集成测试前自动进行一组相关的单元测试和冒烟测试
- 冒烟测试以快速(但不完整)的方式检查服务的整体功能是否完好,可以发现通过单元测试但破坏整体系统的缺陷
- 如果通过相关的单元测试和冒烟测试,就可以提交进入集成测试
1. 实现测试
- 先开始编写测试,而后编写代码
- 先指定要开发代码的接口规格,然后实现代码。为了能编写测试
- 开发人员必须先获得所有相关的需求规格、用例和用户故事,将重心从编码切换到理解需求
2. 验证新写的测试会失败
- 因为还没有实现正确的行为,运行新添加的测试并且确认它会失败
3. 编写实现测试的功能:
- 开始时,编写实现的功能只需要通过新测试即可
- 编写的代码不需要多么优雅或者高性能
4. 验证新测试和通过旧测试
- 能够新的测试表明实现的特性是正确的
- 旧的测试也能通过,说明没有破坏已有的功能
5. 重构代码
- 清理代码的同时,让代码更容易理解和维护
- “重构”实质上是一种趋向良好的“迭代”
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。