BDD测试和TDD测试

BDD测试和TDD测试

TDD

TDD是测试驱动开发(Test-Driven Development)的缩写,是敏捷开发中的一项测试技术,也是一种设计方法论。她的大概思路是:先针对每个功能点抽象出接口代码,然后编写单元测试代码,接下来再实现接口,最后运行单元测试代码,循环整个过程直到整个单元测试通过。

TDD步骤

测试驱动开发是一个过程,依赖于不断重复极短的开发周期。它基于极限编程(XP)的测试优先理念,倡导采用可高度信赖的简单设计。
流程并不复杂,由几个步骤反复进行:

  1. 编写一个测试
  2. 运行所有测试
  3. 编写实现代码
  4. 重构
  5. 运行所有测试

鉴于测试是在实现前编写的,因此它应该不能通过。如果通过了,就说明测试是错误的:要么它描述的功能早已存在,要么编写不正确。

TDD的好处

  1. 保证代码的质量
  2. 提高开发效率
  3. 能够更好的满足测试
  4. 减少自测的时间
  5. 能够成为更好的代码说明文档

总结

当然,并不是所有的项目都适合TDD这种模式。采用TDD测试应该具备一下几个条件:

  1. 项目需求清晰
  2. 开发人员对需求有足够的理解
  3. 业务模型不能过于复杂,模块之间的依赖性不能太强,过于复杂会导致拆分接口和编写测试代码工作量增大

BDD

BDD是TDD的一种衍生,她通过特定的框架,用自然语言或类自然语言,按照编写用户故事或用户用例的方式,以功能使用者的角度,描述并编写测试用例。她不是某种工具或技术,她是一种思想、一种协作方式。

BDD 工具

  1. Cucumber

BDD与TDD区别

  1. TDD更多的关注测试接口的实现正确性,BDD更多关注用户使用功能时的行为和结果是否符合预期
  2. TDD是使用编程语言来描述测试用例,而BDD是用自然语言来描述
  3. TDD的需求文档和测试用例是分别储存的,而BDD的需求文档就是测试用例

BDD的实现

  1. 确定沟通和协作方式,如:slack、Teams
  2. 确定工作流程,如:什么阶段开始写测试代码
  3. 选定BDD实现,如cucumber
  4. 设计用户场景
  5. 编写测试代码
  6. 持续执行和改进
posted @ 2023-01-30 14:51  Ysun_top  阅读(259)  评论(0编辑  收藏  举报