【问题标题】:splint and test coverage analysis?夹板和测试覆盖率分析?
【发布时间】:2009-03-29 17:05:12
【问题描述】:

我正在寻找一种具有夹板成熟度的静态分析工具,该工具还可以对代码进行测试覆盖分析。例如,libfoo.c 中的所有非静态函数都应该存在于 libfoo.h 中,因此 libfoo.h 中的所有函数都应该有单元测试。

当然,这种行为需要某种精细控制,但这将在静态分析工具的某种启动配置文件中定义。

我正在处理一个进展非常迅速的项目,每天都在添加各种东西,我希望找到一些有助于确保单元测试覆盖率保持足够的静态分析工具。它是一个庞大的、地理分布的团队,这意味着事情会 24/7 全天候提交,我需要每晚构建更智能。

我不需要它超级聪明,我只需要它在没有测试的情况下破坏构建,除非它明确超出范围。

CCAN 正在研究类似的东西,但要写出任何实质性的东西还需要几个月的时间。我也需要一些成熟的东西。

提前感谢您提供任何宝石的链接。

【问题讨论】:

  • “测试覆盖率”是动态分析;除非您(动态)运行测试(并动态确定结果运行了哪些代码),否则您无法知道您测试了什么。 Splint 是一个静态分析工具;因此它不可能测量测试覆盖率。所以我不知道如何有意义地结合这些。你能澄清一下吗?

标签: c unit-testing static-analysis splint


【解决方案1】:

GCC 文档将读者指向gcov 以进行代码覆盖率分析。这篇 2005 年 Dobbs 博士在 Defensive programming 上的文章包括对使用 gcov 的讨论。

【讨论】:

  • 感谢防御性编程链接。
  • gcov 很好,我希望在 de-linter 中内置一些东西(而不是配置文件)。我真正需要它做的只是覆盖率分析,而不是基于实际输入的次数,而是简单地使用。
【解决方案2】:

您可能有兴趣查看:What is the best command-line tool to clean up code? 我不知道这是否会有所帮助,但那里有很多很棒的建议。

【讨论】:

  • 我对夹板真的很满意,我希望它就像它一样,它还提供测试覆盖率分析。我只需要知道(每晚)是否真正应该测试的功能没有被测试。
猜你喜欢
  • 2011-08-02
  • 2018-10-18
  • 2012-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多