我与一组专业人员放在一个事件,以帮助教的做法使人感兴趣,但没有经验(新).

我们正在试图拿出实验室、研讨会等等而我在想的单一、最重要的事情,我们需要赋予这些人以帮助他们获得成功,在实践TDD向前迈进。

什么,你会说我们应该让我们的优先学习?这方面的教学方 最重要的。如果你必须做的两件事是确定的,我不会拿着你的单部分:)

有帮助吗?

解决方案

它是关于设计.它的 有关试验。

其他提示

不要跳步骤的进程。它需要更长的时间才能得到成初始槽的使用,但一旦它在整个周期速度更快和更为错误。

红色绿色的重构->只要做到这一点。

只是因为你的测试通过这并不意味着代码是正确的。

除此之外,我想说,重要的是要考虑的测试在您的设计。如果你的代码是难以测试不知识的内部执行单位测试中,你可能需要重新考虑设计。否则,重构变得更加容易发生风险的,因为测试可能必须要改变用的代码。

我不知道这是否算作一个最重要的事-但这是一件我花了一些时间"得到"当我第一次探索使用的影响。

不要写的代码,在你的头以前你写的测试。

当我第一次开始做TDD我"知道"什么的设计应该的。我"知道"什么样的代码,我想写。所以我写了一个测试,就让我写的代码。

当我这么做我真的不做指由于我写的第一个代码(即使码只是在我的头:-)

我花了一些时间(以及一些戳通过聪明的民族)意识到你需要把重点放在测试。编写测试对行为你想要-然后编写最小的代码需要使它通行证-那么我们的设计出现通过重构。重复,直到完成。

我建议,"以患者。" 这感觉很奇怪的开始。对我来说,它可能是三个项目之前,它开始觉得自然的。

我同意什么 乔恩说,在他的回答, 但是我认为的一个重要的必然结果是,可测性并不决定 "设计良好的", 但是只表示你的设计上的目标。

求在我的脑海里,是所有的节奏(红、绿、"重构").得到的节奏向下得到你的"驼背"的"不得"。如果你没有得到节奏,你可能不会坚持TDD很长时间。本质上的节奏是婴儿的步骤,这已经提到。写作的小的代码成为可能,并重构毫不留情。

一件事 强调 方交易的一些短期收益于长期的。开始与TDD都会降低你的生产力。但一旦你学会了节奏,它类似于进入一个槽,它确实可以帮助你的工作速度更快。不要说的副作用使用的是一个不断增长的基础的单元的测试,提供回归测试。一个不可避免的软件系统维护(而不是一套自动回归测试)降低在一段时间。

强调TDD是开发人员的范式转变。如果您正在组建新团队,请意识到需要长达六个月的时间才能让团队充分发挥TDD从业者的作用。一旦你有一个成熟的敏捷团队有效地练习TDD,配对将使新开发人员能够在经过几次迭代后进入一个事物。此外,通过使用来自一个团队的对来播种新线,您可以使新线路在TDD上加速,比第一线快得多。

在我们测量的项目中,一旦团队学会了TDD,我们已经看到在自动功能/回归测试期间发现的缺陷减少了六倍。这是一笔可观的节省。此外,代码反映了更清晰的设计,每个功能的代码行数更少。 TDD但是对镀金的虚拟停止。如果你的故事卡有验收标准,TDD最有效。

TDD还可以实现可持续发展的步伐。团队将发现他们可以继续获得与每次迭代相同数量的功能,因为代码保持干净,几乎没有缺陷。通过TDD和自动功能/回归测试,我们经常会在用户验收测试中发现零缺陷。

在截止日期紧张的情况下处理开沟TDD的压力。这是我用TDD帮助人员和团队的最大问题之一。他们很难说出将特色而不是测试放到高级管理层的重要性和价值。

继续婴儿步骤。

确保您的测试仅覆盖非常小的范围,并且正如PhlipCPP所说:'执行使测试通过所需的最小编辑。'

即便如此,TDD也有很多,所以你仍然要确保不要错过任何东西。

根据我的经验,使用TDD可以让我和我的团队无情地重构我们的代码而不用担心它会在意外的地方破坏某些东西。

所以对我来说,TDD最重要的方面就是覆盖,因为只要我在代码库中看到可以使用它的位置,良好的覆盖率就让我有信心重构。

强调不同类型的测试。黑盒测试和白盒测试都很重要,并且具有不同的用途。白盒测试无法验证是否正确,因为它无法测试整个系统。它使代码闻起来更加臭,因此提供了更好的重构方向。黑盒测试是为了测试正确性。每个功能都应该经过黑盒测试。

另外,强调测试覆盖率的差异。由于组合和可重复性问题,不可能对应用程序中的每个代码路径进行黑盒测试。我的规则是,在黑盒测试之前,功能不完整。你应该帮助学生找出自己的规则。但是,白盒测试不应该具有外部类依赖性;因此,每个班级的每一行都应该进行白盒测试。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top