TDD(Test Driven Development,测试驱动开发)
测试驱动开发,是敏捷方法中的一项重要实践。一般认为,它是由极限编程之父Kent Beck所创立的,并且在其经典之作《Test-Driven Development By Example》一书中有过详尽的阐述。不过,一如许多软件技术与方法的出现,TDD也可算作是众人智慧的结晶了。这其中,不乏早期与KentBeck一起活跃于Smalltalk社区,而今声名显赫的业界大牛们,如:Erich Gamma,Ward Cunningham,以及Martin Fowler等人。有这么多前辈高人作后援,想必TDD的价值是勿庸置疑的。
典型的TDD包含如下几个步骤:
l 根据需要快速编写一个测试用例,此时甚至可以是连编译都无法通过的
l 编写尽可能少的功能代码,以让刚才的测试用例通过
l 根据需要逐步补充测试用例,此时的测试用例依然是没有通过的
l 修改功能代码以让新增的测试用例通过,同时也要让原来通过,而今又失败了的测试用例重新通过
l 对上述功能代码进行重构(有时甚至也包括测试代码),以消除重复
测试驱动开发的优点:
l 为系统改进提供了有效保障
l 对改善设计有很大助益
l 为功能代码提供了很好的“文档”
l 在一定程度上可以代替程序调试的工作
l 可以显著增加开发者的信心并赢得他人的信任