Atitit各种驱动的xdd tdd bdd设计 ATDD ddd v3 u66.docx Atitit各种驱动的xdd tdd bdd设计 ATDD ddd v2 s66 开发方法论与效率提

本文探讨了软件开发中常见的问题及解决方案,重点介绍了TDD、BDD、DDD等开发方法论,解析了它们如何提高开发效率,确保软件质量和满足用户需求。

Atitit各种驱动的xdd  tdd  bdd设计 ATDD ddd v3 u66.docx

Atitit各种驱动的xdd  tdd  bdd设计 ATDD ddd v2 s66

开发方法论与效率提升

 

Atitit各种驱动的xdd  tdd  bdd设计 ATDD ddd

 

Tdd bdd 行为驱动

 

目录

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

1.1. 需求和开发脱节: 1

1.2. 开发和测试脱节: 2

2. 高效率的开发范式 开发方法论 2

2.1. Xp 2

2.2. 完美的组合是TDD,DDD和BDD 2

2.3.  FDD (Feature-driven Development)  2

2.4. BDD  指的是Behavior Drive Development 2

3. Xdd "X" Driven-Development Methodologies 2

3.1.  DDD (Defect-Driven Development) – 3

3.2. RDD (Responsibility-Driven Design) – 3

3.3. UGDD (User Guide-Driven Development) 3

3.4.  MDD (Model-driven Development)  3

3.5. DDD (Documentation-Driven Development) 3

3.6. Edd 事件驱动 3

3.7. TFD -- Test First Development) 3

3.8. 2. BDD  指的是Behavior Drive Development,也就是行为驱动开发 3

3.9.  DDD DDD指的是Domain Drive Design,也就是领域驱动开发 3

3.10. CBD(核心Core+行为Behavior+驱动Driver)架构模式 4

3.11. TDD(测试驱动开发(Test-Driven Development)) 4

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

4. 区别 5

4.1. 简而言之,完美的组合是TDD,DDD和BDD 5

5. ref 7

 

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

 

    1. 需求和开发脱节:
  • 用户想要的功能没有开发
  • 开发的功能并非用户想要
  • 用户和开发人员所说语言不同
    1. 开发和测试脱节:
  • 开发和测试被认为割裂
  • 从开发到测试周期过长
  • 测试自动化程度低

3. 如何解决上面说的两个问题

 

使用BDD可以解决需求和开发脱节的问题,首先他们都是从用户的需求出发,保证程序实现效果与用户需求一致。

  1. 高效率的开发范式 开发方法论
    1. Xp
    2. 完美的组合是TDD,DDD和BDD
    3.  FDD (Feature-driven Development) 
    4.  BDD  指的是Behavior Drive Development
  2. Xdd "X" Driven-Development Methodologies

 

    1.  DDD (Defect-Driven Development) –
    2.  RDD (Responsibility-Driven Design) – 
    3. UGDD (User Guide-Driven Development)
    4.  MDD (Model-driven Development) 
    5. DDD (Documentation-Driven Development)
    6. Edd 事件驱动
    7. TFD -- Test First Development)
    8. 2. BDD  指的是Behavior Drive Development,也就是行为驱动开发

BDD指的是Behavior Drive Development,也就是行为驱动开发。这里的B并非指的是Business,实际上BDD可以看作是对TDD的一种补充,当然你也可以把它看作TDD的一个分支。因为在TDD中,我们并不能完全保证根据设计所编写的测试就是用户所期望的功能。BDD将这一部分简单和自然化,用自然语言来描述,让开发、测试、BA以及客户都能在这个基础上达成一致。因为测试优先的概念并不是每个人都能接受的,可能有人觉得系统太复杂而难以测试,有人认为不存在的东西无法测试。所以,我们在这里试图转换一种观念,那便是考虑它的行为,也就是说它应该如何运行,然后抽象出能达成共识的规范。如果你用过JBehave之类的BDD框架,你将会更好的理解其中具体的流程。这里我推荐一

    1.  DDD DDD指的是Domain Drive Design,也就是领域驱动开发

DDD指的是Domain Drive Design,也就是领域驱动开发。这是一种非常好的思想,在我们刚开始学习程序,甚至刚开始学习三层架构的时候,我们曾经面临过很多疑惑,比如如何来实现我们的数据层?后来我们开始学习MVC,MVP等架构,如何设计Model层又成了我们的新问题。我们见过太多这种情况,Model变成了单纯的数据容器,也就是我们经常说的贫血模式。DDD实际上也是建立在这个基础之上,因为它关注的是Service层的设计,着重于业务的实现,因此不可避免的以贫血模式为基础而存在。但是它最大的特别是将分析和设计结合起来,不再使他们处于分裂的状态,这对于我们正确完整的实现客户的需求,以及建立一个具有业务伸缩性的模型,是有很大帮助的。

    1. CBD(核心Core+行为Behavior+驱动Driver)架构模式
    2. TDD(测试驱动开发(Test-Driven Development))

 

TDD的好处自然不用多说,它能让你减少程序逻辑方面的错误,尽可能的减少项目中的bug,开始接触编程的时候我们大都有过这样的体验,可能你觉得完成得很完美,自我感觉良好,但是实际测试或者应用的时候才发现里面可能存在一堆bug,或者存在设计问题,或者更严重的逻辑问题,而TDD正好可以帮助我们尽量减少类似事件的发生。而且现在大行其道的一些模式对TDD的支持都非常不错,比如MVC和MVP等。

但是并不是所有的项目都适合TDD这种模式的,我觉得必须具备以下几个条件。

首先,项目的需求必须足够清晰,而且程序员对整个需求有足够的了解,如果这个条件不满足,那么执行的过程中难免失控。当然,要达到这个目标也是需要做一定功课的,这要求我们前期的需求分析以及HLD和LLD都要做得足够的细致和完善。

其次,取决于项目的复杂度和依赖性,对于一个业务模型及其复杂、内部模块之间的相互依赖性非常强的项目

 

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

 

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

 

  1. 区别
    1. 简而言之,完美的组合是TDDDDD和BDD

 

  1. ref

TDD(测试驱动开发(Test-Driven Development))_百度百科.html

 

 

 

TDD、BDD、ATDD、DDD 软件开发模式 - 优快云博客.html

大话TDD,BDD,ATDD的本质 - 优快云博客.html

关于TDD、BDD和DDD的一些看法 - ustbwuyi - 博客园.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值