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。

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

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

ATDD,TDD,BDD的区别相关推荐

  1. 让人傻傻分不清的TDD、ATDD、BDD

    前言导入 作为一名软件开发从业者,想必 你肯定听过以下名词: "TDD" "UTDD" "ATDD" "BDD" &qu ...

  2. TDD和BDD的区别 (TDD vs BDD)

    前言 如果你关注软件开发最佳实践方面的话题,你肯定听说过测试驱动开发(TDD - Test Driven Development) 和行为驱动开发(BDD - Behavior Driven Deve ...

  3. Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计

    Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计 1.1. software development methodology (also known as SDM 1 1 ...

  4. 【转】浅谈TDD、BDD、ATDD、DDD的区别

    四个开发模式意思: TDD:测试驱动开发(Test-Driven Development) BDD:行为驱动开发(Behavior Driven Development) ATDD:验收测试驱动开发( ...

  5. The RSpec Book笔记《一》初步认识TDD,BDD,RSpec,Cucumber

    TDD(Test-Driven Development)测试驱动开发. 在编写代码之前先编写一个测试,这时候测试是失败的,red,因为还没有写对应的实现代码.然后开始编写实现的代码,然后跑刚才写的测试 ...

  6. [转]Angular 单元测试讲解

    Angular_单元测试 测试分类 按开发阶段划分 按是否运行划分 按是否查看源代码划分 其他 ATDD,TDD,BDD,DDD ATDD TDD BDD DDD Angular单元测试 Karma的 ...

  7. Angular 单元测试讲解

    Angular_单元测试 测试分类 按开发阶段划分 按是否运行划分 按是否查看源代码划分 其他 ATDD,TDD,BDD,DDD ATDD TDD BDD DDD Angular单元测试 Karma的 ...

  8. TDD 与 BDD 仅仅是语言描述上的区别么?

    当然不是了,通过这个问题,我顺便跟大家聊聊 ATDD,TDD,BDD3者的区别,方便大家有一个清晰的认识和了解. ATDD: Acceptance Test Driven Development(验收 ...

  9. 软件开发方法论:TDD、BDD、DDD、ATDD、DevOps

    软件开发方法论:TDD.BDD.DDD.ATDD.DevOps 一.TDD:测试驱动开发 二.BDD:行为驱动开发 三.ATDD:验收测试驱动开发 四.DDD:领域驱动开发 五.持续集成CI 六.持续 ...

最新文章

  1. 如何获取有性能问题的SQL
  2. 【noi 2.6_9284】盒子与小球之二(DP)
  3. java 显示透明背景png图片
  4. Cibersort免疫浸润的在线分析及R语言代码实现
  5. git ignore 怎么添加和删除_Git删除已追踪文件,上传大文件到Github
  6. 每日一练:完全恢复与不完全恢复概念
  7. Spring:@Transactional 注解使用讲解
  8. 有序链表转换二叉搜索树
  9. Asp.Net在SqlServer中的图片存取
  10. BZOJ1076: [SCOI2008]奖励关【状压DP+期望DP】
  11. Maven POM 浅析
  12. 2020本博客年度信息
  13. Excel技能培训之十四 统计函数count,countif,counta,countblank,large,small,average,max,min
  14. 节目源php代理_【斗鱼直播源】浏览器抓取真实直播源地址(纯前端JS PHP解析源码)...
  15. Zigbee协议栈中文说明
  16. JavaScript基础知识总结(必看篇)
  17. oracle从入门到精通视频教程下载,Oracle从入门到精通与实践视频教程
  18. 快速使用git、svn
  19. 【GANs学习笔记】目录
  20. idea连接linux中mysql[08S01]错误

热门文章

  1. 经典人脸识别算法(特征脸,FISHERFACE,LBP)
  2. springboot框架 目录结构
  3. php直播接口代码,网易云视频直播php版api
  4. 2020年第十一届蓝桥杯国赛—c++B组—试题F:皮亚诺曲线距离
  5. emacs使用reveal.js备忘
  6. 云原生尝试——docker容器域名绑定
  7. 2022蓝桥杯 Python研究生组
  8. 乌云(WooYun)来啦
  9. leetcode-帕斯卡三角形
  10. 微信小程序| 打造ChatGPT英语四六级背单词小程序