有没有适合经验丰富但新接触测试的程序员的TDD在线教程?
我正在和一个有经验的Python开发团队合作,他们对Python编程很熟悉,但现在刚开始学习测试驱动开发(TDD)。因为我自己对TDD有一些经验,所以他们请我做一个关于这个主题的演讲。我主要想找一些文章,看看其他人是怎么讲解TDD的,从中获取一些灵感,帮助我准备演讲的内容。
如果能找到关于Python的入门资料那就最好了,不过只要示例简单易懂,其他语言的资料也可以,因为我希望这些概念能很容易地转到Python上。
7 个回答
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/3 和 3/3
这些文章真的让我明白了如何使用Python的unittest模块进行测试驱动开发,同时也让我对测试驱动开发的思维方式有了更深入的理解。
10
我有一个建议,可以考虑组建一个编程道场小组。这样可以和大家一起从零开始学习测试驱动开发(TDD),并且能掌握很多推荐的最佳实践。
这个道场的基本理念是,选择一个简单的挑战(比如把罗马数字字符串转换成整数的程序),然后开始编码。我们从简单的输入开始,只有在测试失败的时候才进行编码。这里的重点不是解决问题,而是以正确的方式开始。
这里还有一个链接,我从中获取了以下内容:
- 会提前公布一个编程挑战。
- 有一个房间里有一台连接到大屏幕的电脑。
- 演示者会解释这个编程挑战并开始编码。演示者可以选择是否有一个助手。如果这是一个Randori(轮流编码)环节,通常会指定一个助手,这样在轮换时,助手可以接替编码者。
- 如果是Randori环节,每5分钟就会更换一位编码者。
- 编码者应该不断解释自己在做什么。
- 如果观众中有人对编码者的工作有疑问(比如不理解他们在做什么),编码者应该暂停,直到那个人理解了再继续。
- 所有编码者都使用测试驱动开发(TDD)。
- 所有产生的代码都会以Eclipse公共许可证的方式公开。
- 每次会议使用的编程语言会提前公布。