代码覆盖率和分析之间的差异

时间:2011-03-29 05:50:06

标签: profiling code-coverage

代码覆盖率和分析之间有什么区别。

哪种代码覆盖率最好的开源工具。

2 个答案:

答案 0 :(得分:2)

代码覆盖率是对您的代码运行量的评估。这用于查看测试执行代码的情况。

分析用于查看代码的各个部分的执行情况。

这些工具取决于您使用的语言和平台。我猜你正在使用Java,所以推荐CodeCover。虽然您可能会发现NoUnit更容易使用。

答案 1 :(得分:2)

覆盖范围非常重要,可以查看代码的哪些部分尚未运行。 根据我的经验,它必须在多个用例中累积,因为任何一次运行的软件都只会使用一些代码。

分析在不同时间意味着不同的东西。有时它意味着衡量绩效。有时它意味着诊断内存泄漏。有时它意味着可以看到多线程或其他低级别活动。

当目标是提高软件性能时,通过找到所谓的“瓶颈”并修复它们,不要只针对任何分析器,甚至不一定是高度推荐或古老的分析器。 必须使用能够获得正确信息并以正确方式呈现给您的那种信息,因为对此存在很多困惑。 More on that subject.

添加了: 对于覆盖工具,我总是自己做。在几乎每个例程和基本块中,我都插入一个这样的调用:Utils.CovTest("file name, routine name, comment that tells what's being done here")。 例程记录了它被调用的事实,当程序完成时,所有这些注释都附加到文本文件中。 然后是一个后处理步骤,从完整列表中“减去”该文件(由类似grep的程序获取)。 结果是未经过测试的列表,需要额外的测试用例。

如果不进行覆盖测试,Utils.CovTest什么都不做。无论如何,我把它留在最里面的循环中,所以它不会影响性能。 在C和C ++中,我使用一个宏,在正常使用期间,它会扩展为空。