ATDD,TDD,BDD的区别

ATDD: Acceptance Test Driven Development(验收测试驱动开发)

是一种在编码开始之前将客户带入测试设计过程的技术。也是一个协作实践,用户,测试人员和开发人员定义了自动验收标准。 ATDD有助于确保所有项目成员准确理解需要完成和实施的内容。如果系统未通过测试可提供快速反馈,说明未满足要求。验收测试以业务领域术语进行指定。每个功能都必须提供真实且可衡量的业务价值,事实上,如果您的功能没有追溯至至少一个业务目标,那么您应该想知道为什么您要首先实施它。

TDD: Test-driven development (测试驱动开发)

是一种使用自动化单元测试来推动软件设计并强制依赖关系解耦的技术。使用这种做法的结果是一套全面的单元测试,可随时运行,以提供软件可以正常工作的反馈。

在编写真正实现功能的代码之前先编写测试,每次测试之后,重构完成,然后再次执行相同或类似的测试。该过程根据需要重复多次,直到每个单元根据所需的规格运行。

BDD:Behavior-Driven Development (行为驱动开发)

BDD将TDD的一般技术和原理与领域驱动设计(DDD)的想法相结合。 BDD是一个设计活动,您可以根据预期行为逐步构建功能块。

BDD的重点是软件开发过程中使用的语言和交互。通过自然语言定义系统行为,以功能使用者的角度,编写需求场景,且这些行为描述可以直接形成需求文档,同时也是测试标准。

行为驱动的开发人员使用他们的母语与领域驱动设计的语言相结合来描述他们的代码的目的和好处。

使用BDD的团队应该能够以用户故事的形式提供大量的“功能文档”,并增加可执行场景或示例。 BDD通常有助于领域专家理解实现而不是暴露代码级别测试。它通常以GWT格式定义:GIVEN WHEN&THEN。

区别项ATDDTDDBDD
参与者和范围业务用户,开发人员,测试人员之间的沟通机制以确保需求得到充分记录开发人员和测试人员之间的开发方法,以创建良好的代码单元(模块,类,功能)ATDD和TDD的组合。
重点专注于提取用户验收测试中的要求并用于推动开发。是一种使客户进入设计阶段的技术一种模式和范例专注于客户和开发者的系统行为方面,仍然是偏向于不断测试的实践来引导客户进入测试阶段,并通过逐步关注其行为进行认证。
敏捷步骤1. 讨论 2. 开发 3.发布 不断重复1. 测试 2.编码 3.重构 不断重复按预期行为逐步构建功能。 它是TDD和编写使功能/行为失败的测试的延伸
输入文档验收标准+示例(数据和方案)=验收测试需求文档将作为开发和测试的基础。需求文档用GWT格式书写的实例化文档,有时也需要验收标准
自动化要求不是必须,但是可在回顾测试时实现必须必须
故事/特性/测试地图每个故事都应对应一个验收测试每个功能都需要对应一个测试每个故事应对应一个行为测试
主流工具· Robot Framework · FitNesse ·FITSelenium, Xunit frameworkCypress, Playwright, Cucumber, Behave, Concordian,lettuce
最终用户客户开发人员,测试人员客户和开发者

TDD侧重于自动化测试,并把它作为实例化需求说明过程的一部分。这个模型的主要优点是开发目标更加分明确,并且可以防止功能退化。
BDD侧重于制定系统行为的场景。主要工作是通过协作和需求澄清,在项目干系人和交付团队之间建立共识。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值