DDT origin(转)

看“测试驱动开发”这个名字,首先应该明确:与它对应的是“文档驱动开发”。它是一种开发过程,这里的测试是一个设计问题,而不是QA问题。在没有TDD之前,“正统的”开发过程要求有设计文档:高层设计描述一个模块“做什么事”,详细设计描述一个模块“如何做这些事”。软件工程课讲得清楚,只有源代码的软件不能算软件,因为它不可理解、不可维护;源代码加上文档,才算是程序员完整地交付了自己的工作。要做任何一件事之前,你必须首先清楚地知道自己要做什么(以及不要做什么),否则那就是crack,不是在从事职业的软件开发。

但这种文档有几个致命的缺陷。第一,自然语言的描述容易产生歧义;第二,不能自动化地验证;第三,不能保证文档与程序同步。测试驱动开发正是为了解决这些问题而产生的。在编写一段代码之前你所写的测试,不是为了确保这段代码不出错,而是为了描述你想要做的事情。当你拥有这个测试之后,持续集成会始终确保你的代码恰好是做了你想要做的事情。测试驱动开发是一种设计方法,它清晰无二义地描述你的设计,并保证设计与实现一致。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章