如果您强制要求单元测试的代码覆盖率的最低百分比,甚至可能作为提交到存储库的要求,它会是什么?

请解释你是如何得出你的答案的(因为如果你所做的只是选择一个数字,那么我自己也可以完成;)


当前回答

代码覆盖率只是另一个度量。就其本身而言,它可能非常具有误导性(参见www.thoughtworks.com/insights/blog/are-test-coverage-metrics-overrated)。因此,您的目标不应该是实现100%的代码覆盖率,而是要确保您测试了应用程序的所有相关场景。

其他回答

从Testivus的帖子中,我认为答案上下文应该是第二个程序员。

从实际的角度来看,我们需要争取参数/目标。

我认为这可以在敏捷过程中进行“测试”,方法是分析我们拥有的代码、架构、功能(用户故事),然后得出一个数字。根据我在电信领域的经验,我认为60%是一个很好的值。

这取决于您所处的应用程序开发生命周期的哪个阶段。

If you've been at development for a while and have a lot of implemented code already and are just now realizing that you need to think about code coverage then you have to check your current coverage (if it exists) and then use that baseline to set milestones each sprint (or an average rise over a period of sprints), which means taking on code debt while continuing to deliver end user value (at least in my experience the end user doesn't care one bit if you've increased test coverage if they don't see new features).

根据你的领域,达到95%并不是不合理的,但我不得不说,平均而言,你将看到的平均情况是85%到90%。

当我认为我的代码没有经过足够的单元测试,并且我不确定接下来要测试什么时,我使用覆盖率来帮助我决定接下来要测试什么。

如果我在一个单元测试中增加覆盖率——我知道这个单元测试有价值。

这适用于未覆盖的代码,50%覆盖或97%覆盖。

代码覆盖率很好,但功能覆盖率更好。我不喜欢把我写的每一行都写一遍。但是我相信编写100%的测试覆盖我想要提供的所有功能(即使是我自己带来的额外的很酷的功能,这些功能在会议中没有讨论)。

我不关心我的代码是否会在测试中被覆盖,但我关心的是我是否会重构我的代码并最终具有不同的行为。因此,100%的功能覆盖率是我的唯一目标。

我想分享另一个关于测试报道的趣闻。

我们有一个巨大的项目,在twitter上,我注意到,700个单元测试,我们只有20%的代码覆盖率。

斯科特·汉塞尔曼的回答充满智慧:

这是正确的20%吗?是20%吗 代表您的用户的代码 打击最大?你可能会再加50个 测试后只添加2%

这又回到了我关于代码覆盖率的答案。你应该在锅里放多少米?视情况而定。