大话TDD,BDD,ATDD的本质

原创 2017年01月01日 01:06:29

最近在研究软件工程中最佳实践,接触了TDD(测试驱动开发),BDD(行为驱动开发), ATDD(可接受性测试驱动开发)。有一天,在路上走的时候,突然想了一下,他们之间有什么共通点呢?TDD,BDD,ATDD的本质是什么呢?



带着这个问题,咱们先看看上面这张图,我们知道在软件开发或者维护过程中,基本的主流角色有,开发,测试,客户,用户,项目经理,运维人员等。 而我们知道,在生产和开发一个软件的过程中,处处充满风险,这个时候,从宏观角度来说,做正确的事是最重要的;从微观角度来说,正确的做事也很重要。

首先来看,做正确的事是最最重要的,如果大家看过玩过或者看过传递猜词语游戏的话,应该知道,第一个人看到一个正确的词语,然后用动作表达出来,然第二个人猜意思,然后,在动作表达给第三个人。。。。。 往往到了最后,意思可能大相径庭。



那么,在软件开发的需求分析和实现阶段又何尝不是这样呢?本来客户需要的是一辆自行车,


结果却得到了一辆摩托车,



这一切的一切都是沟通惹的祸,其实就是没有做正确的被期望的事情。而BDD(行为驱动开发), ATDD(可接受性测试驱动开发)就是为了解决这个问题。我们知道,BDD或者ATDD,就是先写需求功能点描述,这种描述客户,经理,开发,测试都能看懂,既是没有写过任何代码的人都能看懂,而且是基于文本的。目的说白了,就是让开发出来的系统正是客户需要的,做正确的事情,正如上面的图所示,客户需要的是自行车,就真正开发出来自行车,而不是开发出摩托车。


而TDD(先写测试,再写实现代码,然后不停的迭代重构,循环)最要是为了给开发人员自己看的,为了让程序员对自己的程序有信心,也就是说开发写的程序是在做正确的事情。


所以,其本质都是围绕,做正确的事和正确的做事。以上只是代表个人观点,不喜勿喷!!!!!新年的第一天,关机睡了,祝大家在新的一年里心想事成!!!!!







版权声明:本文为博主原创文章,未经博主允许不得转载。

浅谈TDD、BDD与ATDD软件开发

这些知识之前就了解了一点,还没来得急总结,现在总结一下。 1. 首先了解一下这三个开发模式都是什么意思: TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发...
  • zhenyu5211314
  • zhenyu5211314
  • 2014年03月25日 09:13
  • 9445

TDD/ATDD

1,用正确的方法解决正确的问题.  代码质量影响缺陷率和可维护性.  传统开发模型经常产出不满足客户需求的产品(需求理解不准确或变化). 在细节层面,以TDD方式编写代码(用正确的方法做...
  • donghong82
  • donghong82
  • 2014年05月05日 17:08
  • 838

浅谈TDD、BDD与ATDD软件开发 (敏捷开发模式)

这些知识之前就了解了一点,还没来得急总结,现在总结一下。 1. 首先了解一下这三个开发模式都是什么意思: TDD:测试驱动开发(Test-Driven Development) 测试驱动开发...
  • tianyeming
  • tianyeming
  • 2015年04月07日 13:43
  • 2947

ATDD和TDD的区别是什么?

ATDD和TDD区别
  • weixin_35854729
  • weixin_35854729
  • 2016年09月08日 10:46
  • 555

如何把BDD,ATDD和TDD结合起来?

笔者最近在研究BDD,尽管在做BDD(行为驱动开发,或者ATDD,可接受性测试)的时候,不一定需要TDD(测试驱动开发),或者在做TDD(测试驱动开发)的时候也不需要BDD(为驱动开发)。但是如果项目...
  • chancein007
  • chancein007
  • 2017年01月01日 23:53
  • 1317

怎样看待活文档“ATDD”---记敏捷中国2012 open space

为什么要有一份活文档? 在现实中有太多这样的情形:新介入一个项目,老人会丢过来一堆的文档或者链接地址,并告诉你说,这些是与这个项目相关的一些文档资料,这些资料里有些内容是已经过时了的,项目有些最新的...
  • janne09
  • janne09
  • 2012年12月17日 17:46
  • 1838

TDD、BDD、ATDD、DDD 软件开发模式

四个开发模式意思: TDD:测试驱动开发(Test-Driven Development) BDD:行为驱动开发(Behavior Driven Development) ATDD:验收测试驱动开...
  • ejinxian
  • ejinxian
  • 2017年04月17日 15:48
  • 1169

BDD:源于TDD而胜于TDD

什么是BDD?    Behave Driven Development(行为驱动开发?)为什么要有BDD?     TDD其实是测试行为的     TDD的测试用例太专业,业务和需求人员...
  • kiol
  • kiol
  • 2006年12月08日 14:54
  • 4316

如何把BDD,ATDD和TDD结合起来?

笔者最近在研究BDD,尽管在做BDD(行为驱动开发,或者ATDD,可接受性测试)的时候,不一定需要TDD(测试驱动开发),或者在做TDD(测试驱动开发)的时候也不需要BDD(为驱动开发)。但是如果项目...
  • chancein007
  • chancein007
  • 2017年01月01日 23:53
  • 1317

浅谈TDD、BDD与ATDD软件开发

这些知识之前就了解了一点,还没来得急总结,现在总结一下。 1. 首先了解一下这三个开发模式都是什么意思: TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发...
  • zhenyu5211314
  • zhenyu5211314
  • 2014年03月25日 09:13
  • 9445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:大话TDD,BDD,ATDD的本质
举报原因:
原因补充:

(最多只允许输入30个字)