我正在努力改进我们小组的开发过程,我正在考虑如何最好地实现与测试驱动开发合同设计.看来这两种技术有很多重叠,我想知道是否有人对以下(相关)问题有所了解:
- 除非您使用某种代码生成器根据合同生成单元测试,否则是否违反DRY原则才能使用TDD和DbC?否则,你必须在两个地方维持合同(测试和合同本身),或者我错过了什么?
- TDD在多大程度上使DbC变得多余?如果我写得很好,那么它们不等同于写合同吗?如果我在运行时以及通过测试执行合同,我是否只能获得额外的好处?
- 仅仅使用TDD而不是TDD与DbC相比,它更容易/更灵活吗?
这些问题的主要问题是这个更普遍的问题:如果我们已经正确地进行了TDD,如果我们也使用DbC,我们是否会从开销中获得显着的好处?
一些细节,虽然我认为这个问题主要与语言无关:
- 我们的团队非常小,<10名程序员.
- 我们大多使用Perl.