对于一个有经验但是新手测试的程序员,有没有好的在线TDD教程?

17

我正在和一支经验丰富的Python开发团队合作,他们擅长Python编程,但现在刚开始尝试TDD。由于我自己有一些TDD的经验,因此被要求做一个关于TDD的演讲。主要是想看看其他人如何教授TDD,并获取一些演示材料的想法。

最好的情况是希望这些文章是基于Python的,但只要示例易于阅读,且相关概念可以轻松转移到Python上,任何语言都可以。


3
我认为你最好与团队成员配对,说:“今天让我们采用测试驱动的方法来解决问题,这样你们就能感受到TDD的好处。” 其次,在演示中,只需使用一个简单的例子。体验是最好的;看见它是次好的。听别人讲不太好。 - Carl Manaster
7个回答

10

我建议你开始一个编程道场团体。与团体一起从头开始实践TDD,掌握大部分推荐的最佳实践和专注于TDD非常有帮助。

它的基本思想是接受一个简单的挑战(比如把罗马数字字符串转换为整数的程序),从简单的输入开始编码,并且只在测试失败时才编码。重点不在于解决问题,而在于以正确的方式开始解决问题。

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

  • 事先公布编程挑战。
  • 有一个房间,附有一台计算机和视频屏幕。
  • 主持人解释编程挑战并开始编程。主持人可以选择是否有联合飞行员。如果这是Randori会话,则通常会分配一个联合飞行员,以便在切换发生时,联合飞行员接替编码员。
  • 如果会话是Randori,则每5分钟更换一半的组员。
  • 编码员应不断地解释他/她正在做什么。
  • 只有当观众中的某个人跌下雪橇(对组员正在做什么有疑问)时,编码员才会停止,并且只有当那个人重新理解后才继续。
  • 所有编码员都使用TDD(测试驱动开发)。
  • 所有生成的代码将使用Eclipse公共许可证进行公开发布。
  • 将在每个会话之前宣布要使用的编程语言。

我真的很喜欢这个想法。我会尝试它。 - Jason Baker
1
+1,我希望在我的TDD之旅中早些时候就知道这些。这是一本我正在使用的书,可以帮助我运行dojo:https://leanpub.com/codingdojohandbook - Jon Reid

4

3

肯特·贝克中使用了一些Java和Python的例子(说实话,从这本书的示例代码来看,肯特在这两种语言中都不太像超级巨星......但他在TDD和极限编程方面绝对是一个超级巨星--他应该是这两个领域的创始人,可以参见他的Wikipedia条目)。


1
我必须说,那本书让我感到有些失望。他建议做的许多事情在我看来似乎是直接有害的。例如,他主张使代码返回测试所期望的结果(即:对测试进行欺骗),然后称修复代码以使其在其他情况下实际工作的行为为重构。这在许多层面上都是错误的,以至于我发现很难认真看待这本书的其余部分。 - Laurence Gonsalves

1

1

我认为Dive Into Python中涵盖测试的章节非常不错。它们介绍了如何使用TDD从头开始构建基本程序。


0

0

我几年前开始进行单元测试,并且自我的第一本书以来已经阅读了很多相关的书籍。 然而,我的第一本书是Lasse的《测试驱动》。 对我来说,作者让它变得简单易懂。 也许你可以从中获取一些信息来教学。

顺便说一下,我也教过TDD。 我发现在进入TDD之前确保受众理解如何使用单元测试非常方便。

祝好运! :-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接