有没有适合经验丰富但新接触测试的程序员的TDD在线教程?

17 投票
7 回答
6243 浏览
提问于 2025-04-15 12:54

我正在和一个有经验的Python开发团队合作,他们对Python编程很熟悉,但现在刚开始学习测试驱动开发(TDD)。因为我自己对TDD有一些经验,所以他们请我做一个关于这个主题的演讲。我主要想找一些文章,看看其他人是怎么讲解TDD的,从中获取一些灵感,帮助我准备演讲的内容。

如果能找到关于Python的入门资料那就最好了,不过只要示例简单易懂,其他语言的资料也可以,因为我希望这些概念能很容易地转到Python上。

7 个回答

3

Kent Beck里有一些用Java和Python写的例子(说实话,从这本书里的例子来看,Kent在这两种语言上并不是特别出色……不过,他在测试驱动开发(TDD)和极限编程方面绝对是个高手——这也是他应该的,因为他基本上是这两个概念的创始人,详细可以看看他的维基百科页面)。

4

我非常喜欢O'Reilly网站上那篇关于“Python中的测试驱动开发”的两部分文章:

http://www.onlamp.com/pub/a/python/2004/12/02/tdd_pyunit.html - waybackmachine

http://www.onlamp.com/pub/a/python/2005/02/03/tdd_pyunit2.html - waybackmachine 2/33/3

这些文章真的让我明白了如何使用Python的unittest模块进行测试驱动开发,同时也让我对测试驱动开发的思维方式有了更深入的理解。

10

我有一个建议,可以考虑组建一个编程道场小组。这样可以和大家一起从零开始学习测试驱动开发(TDD),并且能掌握很多推荐的最佳实践。

这个道场的基本理念是,选择一个简单的挑战(比如把罗马数字字符串转换成整数的程序),然后开始编码。我们从简单的输入开始,只有在测试失败的时候才进行编码。这里的重点不是解决问题,而是以正确的方式开始。

这里还有一个链接,我从中获取了以下内容:

  • 会提前公布一个编程挑战。
  • 有一个房间里有一台连接到大屏幕的电脑。
  • 演示者会解释这个编程挑战并开始编码。演示者可以选择是否有一个助手。如果这是一个Randori(轮流编码)环节,通常会指定一个助手,这样在轮换时,助手可以接替编码者。
  • 如果是Randori环节,每5分钟就会更换一位编码者。
  • 编码者应该不断解释自己在做什么。
  • 如果观众中有人对编码者的工作有疑问(比如不理解他们在做什么),编码者应该暂停,直到那个人理解了再继续。
  • 所有编码者都使用测试驱动开发(TDD)。
  • 所有产生的代码都会以Eclipse公共许可证的方式公开。
  • 每次会议使用的编程语言会提前公布。

撰写回答