API的代码覆盖率目标

API的代码覆盖率目标,api,code-coverage,Api,Code Coverage,对于想要API代码覆盖率的具体目标数字的人,您会给出什么数字 更新:为了澄清,声明/行代码覆盖范围。我意识到具体的数字没有多大意义,但这是针对这样的情况:你告诉人们具体的数字没有多大意义,他们仍然坚持从你那里得到一个数字,不管发生什么。我专门编写了API/SDK,因为有些人可能会发现较低的代码覆盖率更适合应用程序/GUI级别的软件,而不是库,因为库中暴露了更多的接口。实际上,具体的数字没有多大意义 如果有14个相同的情况,如果不测试所有14个,您的测试是否更容易出错?如果您有一个不可能失败的边界

对于想要API代码覆盖率的具体目标数字的人,您会给出什么数字


更新:为了澄清,声明/行代码覆盖范围。我意识到具体的数字没有多大意义,但这是针对这样的情况:你告诉人们具体的数字没有多大意义,他们仍然坚持从你那里得到一个数字,不管发生什么。我专门编写了API/SDK,因为有些人可能会发现较低的代码覆盖率更适合应用程序/GUI级别的软件,而不是库,因为库中暴露了更多的接口。

实际上,具体的数字没有多大意义

如果有14个相同的情况,如果不测试所有14个,您的测试是否更容易出错?如果您有一个不可能失败的边界检查(我喜欢在这些情况下抛出描述性异常,然后通过电子邮件发送给我们的开发人员),该怎么办

最好只是确保覆盖了所有逻辑路径


要获得更详细的答案,请参阅。

我建议他们需要检查API的各个部分,以确定哪些部分实际上无关紧要,不需要超过20%,哪些部分是超关键的,需要超过90%

看看C.R.a.p.——它结合了覆盖率和复杂性分析。如果您是Java,则有一个实现。我们一直在整理一个我们在这里写博客的垃圾4net:


如果你有简单的小方法,或者如果更复杂的方法有很好的覆盖率,你会得到很好的结果。

忘记代码覆盖率吧。这只是一个数字,不能成为测试代码时的焦点。场景必须是重点,然后是高质量的API。我知道这听起来像是在胡说八道,但您必须将您的思维方式从代码覆盖改为场景:您正在测试许多API打算处理的场景吗

代码覆盖率将有助于检测您是否缺少一些场景,如果您编写了很多好的场景,您将拥有接近100%的覆盖率,但同样,这只是一个数字,不能成为您的重点


您可以获得一些代码覆盖工具来为您提供“函数覆盖”,例如,是否执行了函数。我坚持API中的每个函数都包含在内


API实现中的行覆盖率是另一回事。良好的实践建议根据行或语句以及总大小拍摄70-80%的覆盖率。

如果您使用PHP,80%似乎是一个很好的建议:

如果您用“代码覆盖率”标记此问题,您会得到更多的回复……其中已经有几个问题与此类似。@Elie:谢谢,我没有代表自己做这件事。