浅谈TDD、BDD与ATDD软件开发

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

这些知识之前就了解了一点,还没来得急总结,现在总结一下。

1. 首先了解一下这三个开发模式都是什么意思:

  • TDD:测试驱动开发(Test-Driven Development)

测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。

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

行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。BDD最初是由Dan North在2003年命名,它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。

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

TDD 只是开发人员的职责,通过单元测试用例来驱动功能代码的实现。在准备实施一个功能或特性之前,首先团队需要定义出期望的质量标准和验收细则,以明确而且达成共识的验收测试计划(包含一系列测试场景)来驱动开发人员的TDD实践和测试人员的测试脚本开发。面向开发人员,强调如何实现系统以及如何检验。


2. 软件开发过程中最常见的两个问题

需求和开发脱节:

  • 用户想要的功能没有开发
  • 开发的功能并非用户想要
  • 用户和开发人员所说语言不同
开发和测试脱节:
  • 开发和测试被认为割裂
  • 从开发到测试周期过长
  • 测试自动化程度低
3. 如何解决上面说的两个问题
使用BDD和ATDD可以解决需求和开发脱节的问题,首先他们都是从用户的需求出发,保证程序实现效果与用户需求一致。
这个过程可以使用基于BDD的自动化测试工具Cucumber。


解决开发和测试脱节主要从以下几个方面入手:
  • 开发的全过程都要贯穿测试:单元测试,集成测试和系统测试
  • 测试需要自动化
  • 所有测试通过,开发才算完成
  • 持续集成,保证每一次集成系统都能运行
4. 如何进行CI(Continuous Integration)也就是持续集成
       ● 持续提交代码 (Check-in)
                ○ 一天之中多次提交
       ● 持续构建代码 (Build)
                ○ 保证在任何时刻代码是可以继续开发的
       ● 持续部署代码 (Deploy)
                ○ 保证始终有一个可以部署的版本
       ● 持续测试代码 (Test)
                ○ 每次提交均执行单元测试
                ○ 每天一次或数次集成测试
                ○ 每天一次或数次系统测试
持续集成工具:Jenkins


5. 一张图比较TDD与ATDD


软件开发方法论:TDDBDD、DDD、ATDD、DevOps 软件开发方法论一、TDD测试驱动开发二、BDD:行为驱动开发三、ATDD:验收测试驱动开发四、DDD:领域驱动开发五、持续集成CI六、持续交付CD七、持续部署CO八、DevOps 一、TDD测试驱动开发 测试驱动开发(Test-Driven Development, TDD)是敏捷开发中的一项核心实践和技术。针对每个功能点抽象出接口代码,然后编写单元测试代码。目前的一些模式对TDD的支持都非常不错,比如MVC和MVP等。 适合TDD这种模式的项目必须具备: 项目的需求必须足够清晰,而且程序员对整个需求 阅读详情

相关推荐

通信工程学习:什么是TDD时分双工

TDD(时分双工)是一种在同一频率信道上通过时间划分实现双向通信的技术。其核心特点是频谱利用率高、上下行信道互惠性强,可根据业务需求灵活调整时隙比例,适用于5G等移动通信场景。TDD能有效提高网络容量和通信质量,成本效益显著,但可能存在上行干扰下行的局限。随着5G发展,TDD技术将继续发挥重要作用。

limengshi138392的博客 2688

TDD、FDD是什么意思?

TDD、FDD指第三代移动通信技术(3G)中的两种双工通信模式。 TDD(Time-division Duplex )模式指时分双工模式,3G标准中的TD-SCDMA采用此双工模式; FDD(Frequency-division Duplex)模式指频分双工模式,3G标准中的WCDMA和CDMA2000采用此模式。 一、工作原理 TDD是一种通信系统的双工方式,在移动通信系统中用于分离接收......

魏波 12万+

浅谈TDDBDDATDD、DDD的区别

四个开发模式意思: TDD测试驱动开发(Test-Driven Development) BDD:行为驱动开发(Behavior Driven Development) ATDD:验收测试驱动开发(Acceptance Test Driven Development) DDD:领域驱动开发(Domain Drive Design) 1. TDD: Test-driven developm...

道可道 非常道 4665

TDD开发模式

TDD开发模式 原创javafanwk 最后发布于2018-05-29 11:30:33 阅读数 2741 收藏 展开 TDD测试驱动开发(Test-Driven Development) 测试驱动开发敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行...

cxu123321的博客 743

java tdd_TDD实战(一)开发模式

TDD 介绍TDD测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。-- 百度百科准备工具TDD只是一种...

weixin_30635747的博客 2497

浅谈TDDBDDATDD软件开发 (敏捷开发模式)

这些知识之前就了解了一点,还没来得急总结,现在总结一下。 1. 首先了解一下这三个开发模式都是什么意思: TDD测试驱动开发(Test-Driven Development) 测试驱动开发敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行,但测

明风的博客 9322

TDD测试驱动开发——BDDATDD和DDD 软件开发模式

参考:TDD测试驱动开发http://www.testclass.net/tdd TDDBDDATDD、DDD 软件开发模式https://blog.csdn.net/ejinxian/article/details/70212208 浅谈TDDBDDATDD软件开发 (敏捷开发模式)https://blog.csdn.net/tianxuhong/article/...

weixin_30558305的博客 182

【理论】测试框架体系TDDBDDATDD、MBT、DDT介绍

测试驱动开发TDD)是一个软件开发过程,在软件完全开发之前,将软件需求转换为测试用例,并通过针对所有测试用例重复测试软件来跟踪所有软件开发。这首先 ​​ 开发软件和稍后创建测试用例相反在软件工程中,行为驱动开发 (BDD) 是一种敏捷软件开发过程,它鼓励软件项目中的开发人员、质量保证专家和客户代表之间进行协作。它鼓励团队使用对话和具体示例来形成对应用程序应该如何运行的共同理解。它源于测试驱动开发 (TDD)。

2127

BDDTDDATDD的对比区别(译文)

本指南旨在描述不同的测试方法或实践,例如行为驱动开发(BDD)、测试驱动开发(TDD)、 验收测试驱动开发(ATDD)。它还将描述这些技术之间的主要区别。在文章最后,将描述它们是怎样工作的,它们的关键差异以及在开发过程中所扮演的独特的角色。 原文:https://www.browserstack.com/guide/tdd-vs-bdd-vs-atdd 什么是测试驱动开发-Test-Driven Development (TDD)? 测试驱动开发是从开发人员角度使用的一种测试方法或者说编程实践。 在.

极简 2711

TDDBDDATDD都是什么、有什么区别?(下)

虽然TDDBDDATDD都是软件开发中使用的测试方法,但它们在方法和重点上有所不同。

Aaron_Zentao的博客 983

让人傻傻分不清的TDDATDDBDD

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

qq_41998273的博客 3631

TDDBDDATDD以及SBE的概念和区别

软件开发或是软件测试中会遇到以下这些词:TDDBDDATDD以及SBE,这些词代表什么意思呢?它们之间有什么关系吗?

oscar999的专栏 1635

BDD之单元测试(二):ATDDTDDBDD的区别

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

蓝天之枫 1579

ATDD,TDD,BDD的区别

ATDD, TDD, BDD

weixin_42019332的博客 1124
上一篇: 77个XSS注入汇总
下一篇: HttpWebResponse请求状态代码
振长策而御宇内
博客等级 码龄15年 247粉丝 340原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值