首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正常的“功能代码行”与“测试代码行”的比率是多少?

正常的“功能代码行”与“测试代码行”的比率是多少?
EN

Software Engineering用户
提问于 2012-07-15 10:05:20
回答 6查看 13K关注 0票数 34

我对TDD方法非常陌生,我的第一个实验表明,编写1行功能代码意味着编写2-3行测试代码。所以,如果我要写1000 LOC,包括测试在内的整个代码库将是大约3500 LOC。

这算正常吗?您编写的代码中的比率是多少?

EN

回答 6

Software Engineering用户

回答已采纳

发布于 2012-07-15 10:22:33

1:3与TDD正常。

从我的经验,也从我记得的其他引文。

票数 18
EN

Software Engineering用户

发布于 2012-07-15 17:04:53

根据不同的编码样式和语言有不同的变化。然而,不管你使用哪种语言,最大的变化就是你。

罗伯特·马丁曾经说过:

“随着测试变得更加具体,代码变得更加通用。”

这让我觉得。更具体的测试意味着更多的测试代码。更通用的生产代码意味着更少的代码,因此测试/代码比率应该随着代码的发展而增加。

等等,这也不太好。在某些特殊情况下,例如,当您定义某个算法时,您可能只有6-10行代码,其中包含一对"if"s,一段时间,可能还有2-3个递归。我可以告诉你,这段代码可能还有100行测试代码。

在一个真正的项目中,不仅仅是几个算法,测试/代码的比率应该介于1:1和2:1之间。如果它超过2:1,那么你就有一种应该重构或删除的测试(或者可能是难以测试的代码)的味道。您应该始终在您的测试中投入与在生产代码中相同的谨慎和重构。

无论如何,你的问题最好的答案也许是“圈复杂度”。你的方法的圈复杂度越高,你需要为它编写的测试指数就会更多,以涵盖所有的情况。

票数 14
EN

Software Engineering用户

发布于 2012-07-15 15:30:33

这个比率将根据您的方法的大小而变化。方法的大小将因编程风格、语言和问题域而异。

如果你的方法很短,那么3:1是合理的。如果你的方法是长的,那么3:1是偏高的。

所以,要回答你的问题,这取决于。:-)

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/156883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档