聊一下TDD和BDD
2018-11-04 本文已影响0人
Jerry379
TDD 和 BDD 分别是什么
BDD(Behavior Driven Development,行为驱动开发)和TDD(Test-Driven Development,测试驱动开发)都是敏捷开发中的技术。下面描述几个工作中的案例来帮助理解这两个知识点。
TDD的特点
在网上找了一个图来说明一下TDD的测试流程:
TDD测试流程图
- 测试先于编写代码
- 开发动能之前,先编写测试用例代码,测试代码确定需要编写什么产品代码
- 有利于更加专注软件设计
- 清晰的了解软件需求
- 很好的诠释了代码即文档
BDD的特点
案例一
业务分析人员觉得自己分析的需求已经写的很清晰了,并且跟技术人员进行了足够的沟通,可是开发完 sign off的时候,发现所开发的功能还是跟期望有差距。
案例二
开发团队辛辛苦苦开发完一个功能,满怀信心的去给客户展示的时候,才发现原来客户需求的功能不是这样的。
BDD解决的就是上面这些问题,它:
- 鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作
- 是对TDD理念的扩展
- 表述接近于自然语言
两者的区别
- TDD侧重点偏向于开发,BDD侧重于设计
- BDD避免了客户和开发者在沟通上的障碍,实现客户和开发者同时定义系统的需求。
TDD的迭代反复验证是敏捷开发的保障,但没有明确如何根据设计产生测试,并保障测试用例的质量,而BDD倡导大家都用简洁的自然语言描述系统行为的理念,恰好弥补了测试用例(即系统行为)的准确性。
参考链接
参考链接: