首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用动态代码分析工具进行静态代码分析?

使用动态代码分析工具进行静态代码分析?
EN

Stack Overflow用户
提问于 2011-05-03 16:45:27
回答 2查看 906关注 0票数 2

为什么我从来没有见过既有静态代码分析又有动态代码分析的分析工具,因此要同时检查它们?

附注: FxCop使用CIL解析和调用图分析来运行其检查。有人知道它是使用动态调用图分析还是静态调用图分析吗?

我承认,我对这些工具的了解有限,但我一直在做一些研究,似乎找不到两者结合在一起……如果你确实知道有一些工具可以同时做这两件事,请列出它们。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-03 22:22:10

将两者结合起来确实是有意义的:您显然希望静态分析能够检测真正的问题(而不仅仅是看似合理的问题)并报告它们。对于那些静态分析器确定没有问题的地方,不需要做什么或说什么。对于那些静态分析器找不到它的地方...您希望动态分析在运行时监视坏事件。

基本的答案是,执行静态分析的工具通常不能很好地装备应用程序代码,而且那些装备的工具对静态分析没有太多支持。

我们的DMS Software Reengineering Toolkit是一组具有这两个功能的基础设施,可以用来构建这样的工具。DMS的核心是一个程序分析和转换系统。分析端解析代码并构建模型( and、符号表、控制/数据流图等)。分析器的基础。转换端可以修改AST(使用分析器来确定要更改的内容),并生成具有任意更改的修改后的源代码;出于本讨论的目的,可以使用仪表化代码。

本文清楚地概述了如何使用DMS来检测代码(动态分析):Branch Coverage for Arbitrary Languages Made Easy

我们的CheckPointer工具是一个结合了静态和动态分析的更复杂的例子,它可以检测发生指针错误的地方(而不是下游损坏)。CheckPointer主要结合(在其生命的早期)动态分析来实现此效果,并结合一些(并计划进一步)静态分析来消除尽可能多的动态检查。

票数 1
EN

Stack Overflow用户

发布于 2011-08-28 22:32:37

虽然我不知道有一个工具可以同时执行静态和动态分析,但工具供应商已经合作提供了这一功能。MathWorks的Polyspace静态分析工具和Vector Software的VectorCAST动态分析工具就是一个很好的例子。

这些工具一起使用的示例:

  1. 使用静态分析来帮助获得更好的代码覆盖率。例如,静态分析工具可以识别不可能从静态分析工具获得测试coverage.
  2. Using范围分析的失效或无法访问的代码,以开发测试用例,然后可以在动态分析工具中使用这些测试用例。
  3. 使用静态分析工具(例如MISRA或JSF++)中的代码规则检查功能来开发更好的代码,从而生成具有更好覆盖率分析的软件。

为了进一步阅读,这里有一篇文章的链接,该文章描述了如何结合使用这些工具:http://www.vectorcast.com/blog/2011/04/25/combining-dynamic-testing-static-verification-part-1/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5867108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档