Cockburn谈测试:真正的程序员都有良好的单元测试

在InfoQ发布了 Bob Martin和Jim Coplien关于“TDD、CDD和专业化”的讨论的视频后,Alistair Cockburn在 博客上发表了自己的观点,他认为有太多开发人员在说到“TDD”的时候,真正想要表达的其实只是他们拥有良好的单元测试(GUTs)。

Alistair写下了对这次讨论的观察:

Bob,你在一开始提到的TDD就是在编码之前先进行测试,而这就是专业化的标志。最后,你又提到专业化的标志就是拥有良好的单元测试,而TDD则是达成这一目标的一种方法而已。

他认为,Bob对于如何才是真正的专业化的主张发生了转变。尽管Bob是以TDD开始说明,但他似乎同意专业化就是需要有良好的单元测试。

Alistair相信,至今为止一直没有合适的术语像表示TDD一样来表示“良好的单元测试”。如果过去能有一个类似“GUTs”的术语来表示良好的单元测试,那么人们就可以海阔天空地讨论GUTs,而无需表明测试究竟是在编码前编写,还是在编码后编写。在极限编程摘要中,他提到:

要点就是:我们需要一个术语表示“我拥有良好的单元测试”,以区别于这句话过去所表达的含义。

现在,单元测试与编码的前后关系,把那些编写测试的人分成了截然不同的两个阵营。类似于“GUTs”这样的术语将有助于这两个阵营回到同一个平台上进行对话。此外,他还提到,如果情况果真如此,那么:

……Bob可以声明拥有GUTs就是现代的专业程序员的标志。……

……Bob可以独立声明TDD是得到GUTs的更好的方式,以及……

……Cope也可以反驳,即使GUTs堆积成山,也无法像CDD一样涵盖状态空间……

……等等……

Alistair似乎同意单元测试的重要性是毫无折扣可讲的。开发团队可能打算实践TDD,或者在编码后编写测试用例,怎么舒服怎么来。真正的问题是他们应该拥有GUTs。

编者按:就像阿基米德那样,“浴盆中”的Alistair Cockburn会因为找到问题的答案而欢呼Eureka[译注:希腊语,意为“找到了”,来自于阿基米德的故事]!他阅读了我们的采访稿,这证明至少有一个赤裸的敏捷专家(Naked Agilist) 阅读了InfoQ。(提示:请打开这个链接[译注:指Naked Agilist的链接],它会彻底消除你心中的奇怪想法:-)

查看英文原文: Cockburn on Testing: Real Programmers have GUTs

你可能感兴趣的:(Cockburn谈测试:真正的程序员都有良好的单元测试)