【发布时间】:2008-12-27 02:48:06
【问题描述】:
我正在努力改进我们团队的开发流程,并且我正在考虑如何最好地通过测试驱动开发来实施按合同设计。这两种技术似乎有很多重叠之处,我想知道是否有人对以下(相关)问题有所了解:
- 除非您使用某种代码生成器来生成基于合同的单元测试,否则拥有 TDD 和 DbC 是否违反 DRY 原则?否则,您必须在两个地方维护合同(测试和合同本身),还是我遗漏了什么?
- TDD 在多大程度上使 DbC 变得多余?如果我写的测试足够好,它们不等于写合同吗?如果我在运行时以及通过测试执行合同,我是否只会获得额外的好处?
- 仅使用 TDD 而不是 TDD 和 DbC 是否更容易/更灵活?
这些问题的重点是这个更普遍的问题:如果我们已经在正确地进行 TDD,如果我们还使用 DbC,我们是否会从开销上获得显着收益?
一些细节,尽管我认为这个问题很大程度上与语言无关:
- 我们的团队很小,
- 我们主要使用 Perl。
【问题讨论】:
标签: language-agnostic project-management tdd design-by-contract