聊一下TDD和BDD

TDD 和 BDD 分别是什么

BDD(Behavior Driven Development,行为驱动开发)和TDD(Test-Driven Development,测试驱动开发)都是敏捷开发中的技术。下面描述几个工作中的案例来帮助理解这两个知识点。

TDD的特点

在网上找了一个图来说明一下TDD的测试流程:


TDD测试流程图
  • 测试先于编写代码
  • 开发动能之前,先编写测试用例代码,测试代码确定需要编写什么产品代码
  • 有利于更加专注软件设计
  • 清晰的了解软件需求
  • 很好的诠释了代码即文档

BDD的特点

案例一

业务分析人员觉得自己分析的需求已经写的很清晰了,并且跟技术人员进行了足够的沟通,可是开发完 sign off的时候,发现所开发的功能还是跟期望有差距。

案例二

开发团队辛辛苦苦开发完一个功能,满怀信心的去给客户展示的时候,才发现原来客户需求的功能不是这样的。

BDD解决的就是上面这些问题,它:

  • 鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作
  • 是对TDD理念的扩展
  • 表述接近于自然语言

两者的区别

  • TDD侧重点偏向于开发,BDD侧重于设计
  • BDD避免了客户和开发者在沟通上的障碍,实现客户和开发者同时定义系统的需求。

TDD的迭代反复验证是敏捷开发的保障,但没有明确如何根据设计产生测试,并保障测试用例的质量,而BDD倡导大家都用简洁的自然语言描述系统行为的理念,恰好弥补了测试用例(即系统行为)的准确性。

参考链接

参考链接:

  1. https://www.cnblogs.com/bigdataZJ/p/AutoTesting1.html
  2. https://blog.csdn.net/bailyzheng/article/details/11694069
  3. https://www.jianshu.com/p/02d61fa41d66
  4. https://m.aliyun.com/jiaocheng/topic_4247.html
  5. https://m.aliyun.com/jiaocheng/374243.html?spm=5176.100035.1.8.6c432c986yh08W

你可能感兴趣的:(聊一下TDD和BDD)