一 09
7
个人拙见-阿Q版TDD~BDD是也。
今天csdn推出java工具大总结,看到BDD的概念已经逐渐成为流行。之前有段时间关注敏捷和TDD,对BDD有个浅显的接触,当然仅限于名称的了解。既然成为流行,当然要深究一下。
BDD(behavior driven development)行为驱动开发。敏捷开发的一种方式。
维基的解释http://en.wikipedia.org/wiki/Behavior_Driven_Development
大概BDD 就是个基于行为的设计方法。其实TDD应该也可以算是设计方法吧。不过他们各自的关注点不一样。
例如TDD可能比较贴近功能点,而BDD以我拙劣的理解能力看来,就是换了个yy方式吧,可能是为了让开发能够从测试的怪圈里跳出来,从而只关注这段程序应该做什么,要做什么。而不是关注在这个数组边界是多少,数组类型是什么,从而写对应的单元测试以保证这些功能点,业务规则,甚至是程序规范这些细致的点。
从下面这篇文章看来
http://www.ibm.com/developerworks/cn/java/j-cq09187/
其实BDD的代码也是非常有特色的 不再是Test开头都变成Should开头了。呵呵。个人感觉,这样一种行为驱动,似乎就是将需求细分成很多功能和系统行为,边设计边开发。写的稍微粗点的话,这又和敏捷的userstory有什么区别呢?
然而userstory 其实又可以说是用户的简单的需求卡。那么这样追溯下去其实就是拿着一个有条理的需求边设计边开发而已。
可能框架提供了很好的环境和接口。由于我没有实践和经历过BDD,单从此时有的材料纸上谈兵一下,感觉上似乎BDD的结果就是测试保证了功能点的功能结果。无形加重后期测试成本。但是TDD,如果测试设计的好可以在单元测试过程中覆盖到很多程序员一些不良习惯,粗心大意造成的问题。。
就这样原始追求发展,发展后有复古回归原始。有点像7,80年代流行喇叭裤,8,90年代流行窄脚裤,直筒,90年代末到21世纪初又开始流行喇叭裤,现在2008,2009年了又介于喇叭裤和窄脚裤的过渡期间。
感觉上这BDD有点像行为艺术,哈哈。
其他的一些参考:
http://www.javaeye.com/problems/2221
http://tech.it168.com/d/2008-03-10/200803101401922.shtml
http://www.infoq.com/cn/news/2008/02/unit_tests_forests_n_trees


