思路话语

。Arlen:思想有多远你就能走多远...

TDD ~introduce

......................................................................TDD

Test-Driven Development(TDD),是Extreme Programming (XP)--极限编程的一个重要组成部分。JGTM'2004前不久曾经欣喜若狂地介绍过XP里另一个重要部分,Pair Programming。

以前看到过别人提起“测试驱动开发”,当时我还以为是测试驱动程序的呢,所以没在意。今天看了sam111贴子的连接,才明白是怎么回事。(Test-Driven Development,是不是翻译成“测试为主导的开发”比较好?)

《Test Driven Development: By Example》作者是XP运动的开山鼻祖之一的Kent Beck,他的另一本经典著作是《Extreme Programming Explained: Embrace Change》。

TDD的目的,用Ron Jeffries的话来说,是为了产生Clean code that works,采用自动化的测试来主导开发过程,通常的做法是:
1。只在自动化的测试失败时才写新的编码
2。消除重复编码

在实践中通常的开发周期是这样的,
1。Write a test(写测试编码)
2。Make it run(使其运行,采取任何手段,包括hardcode跟测试相关的值等)
3。Make it right(使其变成好的编码,采用refactoring-重构方法消除重复编码)

这本书分成三部分。在第一部分(共17章)里,作者通过一个多国货币的例子,简单明了地演示了TDD的过程。从货币涉及的操作出发,先从简单的继承法引进多国货币,然后用重构方法反复消除重复编码,最后回复到单个类。第二部分是讲怎么用Python语言用TDD编写测试架构(有点象performing brain surgery on yourself)。第三部份总结了TDD开发中的模式。

总的感觉是,这本书是TDD方面不可多得的入门教材,但也感到TDD的实习人员需要精通OOP以及Refactoring的种种实践,否则很难从头到尾一贯性地实行TDD的精神。

在MSDN上有二篇谈及TDD的文章:

1。Unit Testing and Test-First Development(Eric Gunnerson)
2。Get Test Infected with NUnit: Unit Test Your .NET Data Access Layer(Steven A. Smith)

这里还有一个包含丰富资源的连接:

.NET Test Driven Development

当然别忘了在.NET中开发TDD时必备的测试架构:

NUNIT

以及

NUnitAddin (http://weblogs.asp.net/nunitaddin/)

(本帖引用自:http://blog.joycode.com/saucer/archive/2004/02/25/13794.aspx)

posted on 2006-03-21 11:06  Arlen  阅读(457)  评论(0编辑  收藏  举报

导航