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

前言导入

        作为一名软件开发从业者,想必 你肯定听过以下名词: “TDD" "UTDD" "ATDD" "BDD" ”DDD" ;正如你所见,它们看起来非常相似—— “xDD”
        正是因为,这“外表"的相似性,致使它们在我们眼中就如 孪生兄弟 一般,总是让人傻傻分不清。那如何能分清他们?答:了解、学习它们!只有和它们接触相处,才能对它们有所了解,从而才能有效分清它们。

姓甚名谁

TDD:

  • 英文全称:Test Driven Development ,中文全称:测试驱动开发

  • TDD是一种软件开发过程中的应用方法论 ,由极限编程(简称:XP,是敏捷软件开发的一种方式)中倡导,以其倡导先写测试程序,然后编码实现其功能得名。TDD开发始于20世纪90年代,推动者为 Kent Beck(软件开发界的大佬)。

UTDD:

  • 英文全称:Unit Test Driven Development ,中文全称:单元测试驱动开发

  • UTDD是一种敏捷软件开发的技术,它期望通过单元测试用例来驱动功能代码的实现。首先开发人员需编写单元测试用例,然后编写实现代码直到单元测试通过。

ATDD:

  • 英文全称:Acceptance Test Driven Development ,中文全称:验收测试驱动开发

  • ATDD是一种敏捷软件开发的技术,它期望通过验收测试用例来驱动功能代码的实现。团队需要定义出期望的质量标准和验收细则,以明确而且达成共识的验收测试计划(包含一系列测试场景)来驱动开发人员的TDD实践和测试人员的测试脚本开发。

BDD:

  • 英文全称:Behavior Driven Development ,中文全称:行为驱动开发

  • BDD是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。BDD最初是由Dan North在2003年命名。

  • 它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。

        是不是看完上述“介绍”后,有种 “貌似你能分清它们,但好像分不清它们” 云里雾里的感觉?是的话,就对了,当初我学习 “测试驱动开发” 的时候也是这样。网上许多文章总是这样一同去介绍他们,给我的感觉就是 “说正确的废话!”。 下面让我们通过 关系图谱,更进一步了解、认识它们。

关系图谱

一图胜千言:         

补充解释:

  • TDD有广义、狭义之分;狭义上,TDD 指的是UTDD;广义上,TDD 包括UTDD、ATDD。
  • 为了消除歧义,此处我们进行 统一术语(TDD采用广义说法)。所以,TDD可分为UTDD、ATDD两大分支;在代码层面,进行TDD(测试驱动开发),称为UTDD(单元测试驱动开发);在业务层面,进行TDD(测试驱动开发),则称为ATDD(验收测试驱动开发)。
  • ATDD(验收测试驱动开发),由于验收方法类型也是多种多样的。所以根据验收方法和类型的不同,将ATDD细分为BDD、EDD,FDD、CDCD等各种的实践方法
    • 软件的行为为验收标准,这个是BDD(Behavior Driven Development)

    • 特定的实例数据为验收标准,这个是EDD(Example Driven Development)

    • 软件的功能特征为验收标准,这个是FDD(Feature Driven Development)

    • 以Web Service API消费者提出API契约来驱动API提供者开发API,这个是CDCD(Consumer Driven Contract Development)

    • 所以ATDD的具体实现需要结合项目的实际情况来选用适合的验收测试方法与类型。

形象类比:

        我们可以把 TDD、UTDD、ATDD、BDD几者的关系,看做三世同堂。

  • TDD(测试驱动开发) 看做“爷爷” ,是一切思想的起源(软件质量内建)。
  • UTDD(单元测试驱动开发) 看作“母亲” ,负责家里的各种大小事务——“女主内”(在代码层面,确保软件的实现逻辑代码是整洁可用的)。
  • ATDD(验收测试驱动开发) 看作“父亲”,在外打拼负责在外挣钱养家——“男主外”(在业务层面,确保开发出来的软件是符合业务需求、业务预期的)。
  • BDD(行为驱动开发) 看作“孩子”,是新一代青年,继承了父亲ATDD的衣钵,并做到了 ”青出于蓝,胜于蓝。“(验收标准实例化)。

                           (图片来源于,五分钟说透TDD UTDD ATDD BDD_哔哩哔哩_bilibili

更多文章,请移步至:https://blog.csdn.net/qq_41998273/category_11699499.html

参考文章

让我们再聊聊TDD - 知乎
 Introduction to Test Driven Development (TDD)
 What is TDD, BDD & ATDD ? – Assert Selenium

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值