【问题标题】:TDD approach for developed source code开发源代码的 TDD 方法
【发布时间】:2012-03-20 12:26:55
【问题描述】:

我已获得源代码。我必须对其实施 TDD 方法。

TDD 的一般方法是:

  1. 编写测试。
  2. 失败了。
  3. 编写代码。
  4. 通过测试。
  5. 如有必要,请重构。

    我应该如何向这样的现有源代码添加测试?
    欢迎提出针对这种情况的临时方法的建议。
    谢谢

【问题讨论】:

  • 有效地使用遗留代码 作者:Michael Feathers -- 特别是第 2 章。
  • 还要阅读更多关于 TDD 的内容,TDD 需要先测试(测试前不能编写代码)。因此,要么您尝试向现有代码添加(回填)测试,要么您可能尝试遵循 TDD 来对源代码进行所有未来的更改?答案会根据你的情况而有所不同。首先,没有简单的答案 - 找到您想要关注的领域并增加测试覆盖率。提出测试并实施。其次,获取 Austin 推荐的 WELC 书籍。

标签: unit-testing testing tdd


【解决方案1】:

不要忘记第 0 步:了解需求。你可以做的是发现需求,然后编写测试来证明需求是否得到满足。如果它会通过,那就太好了。如果没有,你就发现了一个错误。无论哪种方式,您都添加了回归测试。

你不能做的是对已经编写好的代码实施 TDD(或任何开发实践):那艘船已经航行了。您可以做的是使代码库的未来开发能够从测试驱动的开发实践中受益。

【讨论】:

  • 谢谢格雷厄姆。我其实不相信你的说法。仅将测试设为绿色并不能排除测试本身存在错误的可能性(特别是在这种情况下)。
  • 那你打算怎么做呢?测试测试代码?如果在某些时候您不相信自己正确编写简单测试的能力,那么它将一直是测试。
  • 我不同意你的回答。但是我只是不相信。
【解决方案2】:

您可以将该代码库视为第三方代码并为其编写一些learning tests。学习测试可以让您发现代码,同时为自己构建一个很好的测试套件,以便以后必须修改代码。

如果遗留代码足够小,您可以这样做,直到代码覆盖率接近 90% 或 100%。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多