GTLC全球技术领导力峰会·上海站,首批讲师正式上线! 了解详情
写点什么

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

2008 年 3 月 06 日

在 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

2008 年 3 月 06 日 06:29406
用户头像

发布了 109 篇内容, 共 35.8 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第 3 周 _ 课后作业

方舟勇士

课程作业

ARTS打卡 第4周

引花眠

ARTS 打卡计划

十万同时在线用户,需要多少内存?——Newbe.Claptrap 框架水平扩展实验

newbe36524

单例及组合模式实践

WulalaOlala

设计模式 极客大学架构师训练营

Week 03 学习总结 代码重构

Z冰红茶

第三周作业

胡江涛

极客大学架构师训练营

Spring 源码学习 - @Async注解实现原理

公众号:好奇心森林

Spring Boot aop

设计模式学习总结

qihuajun

架构师训练营 第3周作业

Lingjun

极客大学架构师训练营

「架构师训练营」第 3 周作业

邓江川。

week3 命题作业

任小龙

138 张图带你 MySQL 入门

cxuan

MySQL 数据库

架构师训练营 - 第 02 周学习总结

Eric

重学设计模式之单例模式

设计模式 单例模式 Singleton

区块链中的“链上”和“链下”

CECBC区块链专委会

区块链技术 分布式身份标识 难以篡改

单例模式和组合模式

Arvin

技术学习进阶(死磕法)

dudu

学习 技术

信息的表示与存储-整数的运算

引花眠

计算机基础

设计模式练习及感想(训练营第三课)

看山是山

设计模式 极客大学架构师训练营

设计模式-单例&组合

Z冰红茶

模式与重构

满山李子

Raft探索历程--Part1

老胡爱分享

分布式协同 raft

搞定 HTTP 协议(三):如何严谨地描述一个 HTTP 报文?

零和幺

https HTTP

架构师训练营-第 02 周作业

Eric

架构师训练营 第3周总结

Lingjun

极客大学架构师训练营

第三周总结

胡江涛

极客大学架构师训练营

ARTS 第 3 周

乌拉里

架构师训练营-第 03 周作业提交

Eric

极客大学架构师训练营

Feign Client 原理和使用

公众号:好奇心森林

Spring Boot HTTP

易纲:上海可以在人民币自由兑换等方面先行先试

CECBC区块链专委会

数字货币 区块链技术 金融科技中心

架构师训练营-第 03 周总结

Eric

极客大学架构师训练营

DNSPod与开源应用专场

DNSPod与开源应用专场

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