BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Deborah Hartmann Preuss 关注 0 他的粉丝 , Vikas Hazrati 关注 0 他的粉丝 ,译者 张逸 关注 12 他的粉丝 发布于 2008年3月7日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。
在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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

怎么舒服怎么来 by 曹 云飞

先写测试用例后编码,或者在编码后编写测试用例,怎么舒服怎么来。终于有同学这么说了。

Re: 怎么舒服怎么来 - 其实中国有位程序员叫张恂,两年之前就这么说了 by Zhang Charlie

太极敏捷:UDD over TDD

2008-3-6 6:29pm cao yunfei

先写测试用例后编码,或者在编码后编写测试用例,怎么舒服怎么来。终于有同学这么说了。


这个顺序其实并不重要,也不是重点。而据我所知,大部分程序员习惯的是前者。难道“在编码后编写测例”就不敏捷了?问题并没有这么简单。

“怎么舒服怎么来”,这句话恰合太极敏捷之意。

敏捷 OO 教练 张恂
www.zhangxun.com

Re: 怎么舒服怎么来 by 轻眉 柳

记得庄表伟也早就说过,把测试和编码比作左腿和右腿,走路的时候无论是先迈左腿后迈右腿,还是先迈右腿再迈左腿,都可以平平稳稳的走下去,只要别一直单腿蹦。

我看 by 陈 雷

还是开发和测试同行比较的好,并进行小范围的快速集成。

Re: 我看 - 微软的敏捷前传 by Zhang Charlie

2008-3-6 8:24pm lei chen

还是开发和测试同行比较的好,并进行小范围的快速集成。


没错,所以微软采用了程序员、测试员 1:1 的配置,并做到了超过我们想象的、大规模软件(可能以数十万行、百万行计)的 daily (nightly) build and smoke test,如果谁破坏了 build,第二天早上还要带小丑帽 ...

我还记得当时 Excel 的交付(上世纪 90 年代中期)好像只比原计划晚了一周!

这些可都是在 10 多年前做到的,您说敏捷不敏捷?这才是真正赚钱的敏捷,超敏捷。

本命年高龄程序员 兼
敏捷 OO 教练 张恂
www.zhangxun.com

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

6 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT