测试基础 【译】红 - 绿 - 重构

黑水 · 2021年01月31日 · 最后由 黑水 回复于 2021年02月01日 · 2794 次阅读

原文:Red-Green-Refactor

我们用抽认卡帮助学生达到无需反应快速牢记概念的效果。经典的抽认卡向学生展示一个词汇或数学方程,我们希望学生几乎能立即识别并回答。我展示西班牙语 "acuario",你脱口而出 “鱼缸!”。

所以,红 - 绿 - 重构。根据定义 TDD 要先写测试。因为还没有写出要被测试的功能,测试会失败,此时测试工具的界面会显示红色。这种有益的反馈让你写出正好够所有测试通过的代码;测试工具界面会显示绿色。最后,因为测试给了你修改的信心,你可以确保重构出理想设计的代码。花几分钟改进设计,然后重新运行测试,结果应该还是绿色。整个周期平均应该需要 5 分钟左右,不超过 10 分钟。

如果你使用过几天 TDD 应该充分理解这个循环了。我是说真正的使用,不是先写代码然后偷偷的写几个测试,然后告诉别人 “我做过 TDD 了”。我们这些使用 TDD 比较久的人——可能几个月了,就不再需要额外思考。红 - 绿 - 重构是我们构建软件的自然方式。

  • 红——对于 TDD 新手来说,一个常见的错误是忽略了需要先看到测试失败。这是正确道路的一部分;红色是极有价值的反馈,它告诉我们我们的假设仍然成立。有时候不成立,你会因为立即发现这种情况节省大量的时间。
  • 绿色——粗略跟踪你需要多长时间才能有一个通过所有测试的解决方案。如果平均需要 5-10 分钟或者更多时间,就要想办法采取更小的步骤了。
  • 重构——你应该始终利用重构这一步骤。即使你添加了完美的代码(不与系统中的任何其他代码重复),也要把重构步骤当作 “强制奖励时间”。摸索一下你要改变的区域。摆脱一个警告。重新命名一个测试。提高现有方法的可读性。遵循童子军规则。让事情在你离开的时候比你来的时候更好一些。请注意,重构步骤不一定表现为让一条测试运行结果是绿色。你应该把重构工作分解成更细小的步骤,频繁的获得绿条然后继续。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 2 条回复 时间 点赞

其实就是戴明环

恒温 回复

工业界,PDCA、Lean manufacturing、 Agile Manufacturing 应该都是从丰田生产方式来的。管理是实践的艺术,这些事知难行易,真正花时间实践过很容易感受到重要性,纸上谈兵多了反而变得越来越玄。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册