代码覆盖率和分析之间的区别是什么。
这是代码覆盖率最好的开源工具。
发布于 2011-03-29 20:33:08
覆盖率对于查看代码的哪些部分尚未运行很重要。在我的经验中,它必须在多个用例中积累,因为软件的任何一次运行都只会使用其中的一些代码。
分析在不同的时间意味着不同的事情。有时它意味着测量性能。有时这意味着诊断内存泄漏。有时,这意味着要了解多线程或其他低级活动。
当目标是通过找到所谓的“瓶颈”并修复它们来提高软件性能时,不要仅仅满足于任何分析器,甚至不一定是高度推荐或受人尊敬的分析器。使用能够获得正确类型的信息并以正确的方式将其呈现给您的类型是必不可少的,因为在这方面有很多困惑。More on that subject.
补充:对于覆盖工具,我一直都是自己做的。在几乎每个例程和基本代码块中,我都会像这样插入一个调用:Utils.CovTest("file name, routine name, comment that tells what's being done here")。例程记录它被调用的事实,当程序结束时,所有这些注释都被附加到一个文本文件中。然后有一个后处理步骤,从一个完整的列表中“减去”该文件(由一个类似grep的程序获得)。结果是尚未测试的内容的列表,需要额外的测试用例。
当不做覆盖率测试时,Utils.CovTest什么也不做。我把它从最里面的循环中去掉了,所以它不会对性能有太大影响。在C和C++中,我使用了一个宏,在正常使用时,它会扩展为空。
发布于 2011-03-29 13:55:52
代码覆盖率是对运行了多少代码的评估。这是用来查看您的测试如何测试您的代码。
分析用于查看代码的各个部分的执行情况。
工具取决于您使用的语言和平台。我猜您正在使用Java,所以推荐使用CodeCover。不过,您可能会发现NoUnit更易于使用。
https://stackoverflow.com/questions/5468423
复制相似问题