没有仪器的代码覆盖率

时间:2010-12-16 11:00:31

标签: testing code-coverage

我们有功能测试和自动回归测试设置 有兴趣测量我们的测试覆盖率/代码覆盖率 基于Linux的项目。

我想知道是否有任何可用于测试的工具 覆盖/代码覆盖率测量,无需检测代码。

请建议任何可以执行此操作的工具或方法。

我知道仪器提供了最好的测量方法 代码覆盖率,但如果工具可以,那就足够了 测量为测试覆盖执行的功能 测量。

谢谢和问候, Prashnk

1 个答案:

答案 0 :(得分:2)

收集测试覆盖率数据的方法只有三种:

  • 检测程序,让仪器进行覆盖率收集
  • 在定期基础上中断程序(假设本机执行)以确定其PC, 并将PC映射到源行号
  • 在解释器下运行程序,让解释器执行它(或让解释器在发生某些关键程序事件时调用特殊的用户代码事件处理程序,例如“函数入口”)。
事实上,解释器可能没有内置的那种能力,其中 如果你被缩减到第一个解决方案: - {如果你正在运行一个解释器,它可能内置的任何测试覆盖数据集应该在其文档中做得很好。

您可以使用链接映射或目标文件中的符号数据(或者某人已经为您完成)来实现“中断获取PC”方法。它有一个严重的缺点:因为您正在采样在PC上,很难验证某些功能是否真正被执行了。它可能有,而你根本就没有在适当的时候对PC进行采样。这就是该方案未在实际测试覆盖率工具中使用的原因。