TDD

2010-08-17  夏洁 

     下午逛网页逛到一个不错的IT网站,了解了一些新知识。其中一个词汇是我在多处地方看到的:TDD。下面这篇文章很深入浅出地讲解了什么是TDD。我截取了其中一部分,原文详见:http://www.javaeye.com/topic/121276
 
 
     TDD,也就是 Test Driven Development--测试驱动开发,其实是一种开发方式的巨大提高。它
提出了一种新的开发方式:以测试为驱动。在此,我仍然想引用一个曾经看过的ThoughtWorks的
一个人的Blog中的一句话:“什么是TDD?TDD就是把你的需求用测试给描述出来。”这句话一下
子让我明白了TDD的意义,并且被我个人奉为TDD中的经典 :)

    归根到底,TDD的实质仍然是以需求来驱动开发,只是,TDD中把需求进一步写成了测试,那
就成了测试驱动开发了。

    这么做的好处是什么?我想至少有以下这么几条:

    1、你的代码是可测试的。
    2、你的代码完全反应了需求。
    3、通过测试驱动,会规范你的代码和结构,甚至架构。

    不错,我承认,TDD会带来成本的提高。因为我们要写测试,所以必然要花费时间。那么这部分
的成本谁来买单呢?客户吗?这很难,因为毕竟大部分的客户已经在软件的本身就和你讨价还价

了,你还想让客户再为测试来买单?

    让老板买单?老板恐怕要为此付出加班费。舍得,还是舍不得?这似乎又变成了一个哲学的问
题。

    自己来买单?也就是自己白加班来做这些事。值得,还是不值得?这似乎又是一个职业态度的
问题。

    如果单从理论上,每种买单方式都可以写厚厚的文字去论证,不过这么做其实并没有很大的意
义,我还是从实践中说起。

 

 

写在后面:简而言之,TDD是敏捷开发的一种。这篇文章年头蛮老了,敏捷开发现在还在提,很多公司跃跃欲试,可是却不敢轻易尝试。我想路途还任重道远。其中的原因这篇文章也详细提到了。

385°/3831 人阅读/2 条评论 发表评论

刘玉晓  2010-08-17

好多东西都在等待挖掘啊。。所以我们的知识面就要扩大了


夏洁  2010-08-17

刘玉晓: 好多东西都在等待挖掘啊。。所以我们的知识面就要扩大了
对的对的。。。我也有这种感觉。。。。好多东西都不知道。


登录 后发表评论