2011-12-02 64 views
5

我正在使用Cobertura为具有JUnit测试用例的Java项目计算代码/分支覆盖率。我知道100%的覆盖率并不能说明代码有多好,但目前为6%。分支机构覆盖率为1%。我的直觉说,由于这个项目的决策性质,分支机构的覆盖范围可能更重要。由于这是我目前唯一的大型项目,所以我没有正确的代码/分支覆盖目标值。代码覆盖率/分支覆盖建议值

我相信分支机构覆盖率在这个应用中非常重要,所以我将所需的值设置为100%。我已将代码覆盖率阈值定义为80%。

这些值的代码复杂度是什么因素?

我可能会强调太多的数字,但我想听听其他人的经验。我知道这些值取决于项目的性质,但是我可以参考一些常规指标/文章/个人经验吗?

回答

5

我想听听其他人的经验。

我写了一个包含数千行代码的库和一个比库本身更长的覆盖套件。在99.98%的情况下,我覆盖了除一个之外的每一行:该方法来自遗留项目,而且我不知道如何构建会触及该行的测试用例。当我的图书馆投入生产时,第一个错误报告是由那条未经测试的线路引起的。

我从这个项目中获得的教训是,你不知道如何击打的线条是最危险的。如果您的项目是决策密集型的,那么获得100%覆盖率对您来说是最有利的。

+0

甚至100%不能保证没有缺陷的软件。即使100%的分支覆盖也不能保证。 – CuongHuyTo