考古学新发现:代码测试的“神旨”

  • Deborah Hartmann Preuss
  • 乔梁

2007 年 4 月 29 日

话题:敏捷测试文化 & 方法

Agitar Software 的 Alberto Savoia 找到了一篇堪称珍品的“远古文章”,并在 Artima Blog 上贴了出来,名为“Testivus 之路——软件开发初期的单元测试名言”。该文为开发者提供了关于单元测试的一些建议,并戏称其为“可与古老东方名言相提并论的十二条”。

副标题为“单元测试,教条越少,效果越好"。该文讲述了喜玛拉雅远征队的一个故事,据说他们找到了史前文字:



他们遇到所有令人称奇的事情中最为神奇的事:在山洞里发现了一个程序员留下的一张字条,上面写道:
“我们又一次比预期时间提前完成了软件发布。所有的测试都通过了,我们正享受着剩余的时间,正要远航。”
这些老程序员的秘密何在?远征队搜索了每一个角落。除了各种各样的 Dilbert 日历, 他们还发现了“Testivus 之路”。是谁写了这本神奇手册?

手册中的内容是否就是那些老程序员可以提供的完成任务的秘诀呢?

该文收录了《Testivus 之路》的所有内容,还包括对 12 信条的诠释。12 个信条如下:
  1. 写代码,就一定要写测试
  2. 不要受单元测试的教条所限
  3. 相信单元测试将会带来的成果
  4. 统一考虑编码和测试
  5. 测试比单元代码重要
  6. 测试的最佳时机是代码刚写完之时
  7. 测试不会白费
  8. 当天有瑕疵的测试也比后补的完美测试好
  9. 不好的测试也比没有测试强
  10. 测试有时可以验证意图
  11. 只有傻瓜不用工具
  12. 用好的去测试不好的
这里有一个“Testivus 之路”的例子:
一个学生问编程大师:

“我什么时候能不写测试了?”

大师回答说:

“当你不写代码的时候。”

学生又问道:

“那我什么时候能不写代码了?”

大师回答说:

“当你成为一个管理者时。”

学生小心翼翼地问:

“那我什么时候成为一个管理者呢?”

大师回答道:

“当你不写测试的时候。”

学生头也不回

冲过去就开始写测试了。

如果要写某段代码,

那么,必定是要有测试代码的。
查看英文原文:Archeology: Testing Sacred Text Found
译者简介:乔梁,BJUG成员,在 IT 领域工作多年,先后从事过软件开发、架构设计、技术管理等工作,目前从事项目管理工作。关心软件技术领域发展,对软件生命周期管理及过程改进方面的内容很感兴趣,对敏捷方法论亦有所了解。他的个人 Blog 为:http://blog.csdn.net/tony1130。为 InfoQ 中文站贡献内容,请邮件至china-editorial@infoq.com
敏捷测试文化 & 方法