一文告诉你ATDD,TDD,BDD的区别

发表于:2018-5-04 09:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:CC先生    来源:51Testing软件测试网原创

  ATDD: Acceptance Test Driven Development(验收测试驱动开发
  这是一种在编码开始之前将客户带入测试设计过程的技术。它也是一个协作实践,用户,测试人员和开发人员定义了自动验收标准。 ATDD有助于确保所有项目成员准确理解需要完成和实施的内容。如果系统未通过测试可提供快速反馈,说明未满足要求。验收测试以业务领域术语进行指定。每个功能都必须提供真实且可衡量的业务价值,事实上,如果您的功能没有追溯到至少一个业务目标,那么您应该想知道为什么您要首先实施它。
  TDD: Test-driven development (测试驱动开发)
  是一种使用自动化单元测试来推动软件设计并强制依赖关系解耦的技术。使用这种做法的结果是一套全面的单元测试,可随时运行,以提供软件可以正常工作的反馈。
  
踢踏舞.png
  TDD重点是培养整个研发过程的节奏感,就像跳踢踏舞一样,"ti-ta-ti"。
  在编写真正实现功能的代码之前先编写测试,每次测试之后,重构完成,然后再次执行相同或类似的测试。该过程根据需要重复多次,直到每个单元根据所需的规格运行。
  BDD:Behavior-Driven Development (行为驱动开发)
  BDD将TDD的一般技术和原理与领域驱动设计(DDD)的想法相结合。 BDD是一个设计活动,您可以根据预期行为逐步构建功能块。
  BDD的重点是软件开发过程中使用的语言和交互。
  行为驱动的开发人员使用他们的母语与领域驱动设计的语言相结合来描述他们的代码的目的和好处。
  使用BDD的团队应该能够以用户故事的形式提供大量的"功能文档",并增加可执行场景或示例。BDD通常有助于领域专家理解实现而不是暴露代码级别测试。它通常以GWT格式定义:GIVEN WHEN&THEN。
  CC先生送彩蛋:在SBE-Specification by Example(实例化需求说明)的过程和工件有两种流行的模型:以验收>测试为中心的模型和以系统行为规范为主导的模型。
  以ATDD侧重于自动化测试,并把它作为实例化需求说明过程的一部分。这个模型的主要优点是开发目标更加分明确,并且可以防止功能退化。
  以BDD侧重于制定系统行为的场景。主要工作是通过协作和需求澄清,在项目干系人和交付团队之间建立共识。
... ...
  查看更多精彩内容,请点击下载:

版权声明:本文出自《51测试天地》第四十九期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号