Testing 是否有任何静态分析工具可以用作此概念的“教程”?

Testing 是否有任何静态分析工具可以用作此概念的“教程”?,testing,automated-tests,static-analysis,Testing,Automated Tests,Static Analysis,我知道静态分析、动态分析的基本概念,并且有使用数据流分析、污染分析和一些模型检查工作的经验 目前,我正试图通过阅读一些静态分析工具的实现来加深对静态分析的理解 有什么建议吗 特别欢迎使用动态类型语言的工具: 谢谢大家! 我建议你去看看和。它们是非常学术化的实现,但是它们实现了非常有趣的算法 如果您想从轻量级的过程内、无全局数据流等分析开始,可以查看Findbugs 关于动态类型语言,WALA对JavaScript有一些支持,但是AFAIK的支持相当有限,尽管还没有深入研究它。不过也有一些用于Ja

我知道静态分析、动态分析的基本概念,并且有使用数据流分析、污染分析和一些模型检查工作的经验

目前,我正试图通过阅读一些静态分析工具的实现来加深对静态分析的理解

有什么建议吗

特别欢迎使用动态类型语言的工具:


谢谢大家!

我建议你去看看和。它们是非常学术化的实现,但是它们实现了非常有趣的算法

如果您想从轻量级的过程内、无全局数据流等分析开始,可以查看Findbugs


关于动态类型语言,WALA对JavaScript有一些支持,但是AFAIK的支持相当有限,尽管还没有深入研究它。不过也有一些用于JavaScript的学术工具,比如TAJS。Google closure compiler在这方面也很有趣。

静态分析工具种类繁多,与以下方面的差异有关:

该工具的用途是查找死变量?查找下标错误?确定动态变量类型? 实现它的方法是启发式的?保守算法?定理证明者? 分析了目标语言和属性 表示已处理文本、AST、字节码、混合 当面对图灵硬分析时,用户注释可以帮助指导分析,有时提示是巨大的帮助 用户界面、IDE集成和报告 ... 通过阅读一些实现来了解这一点太多了。实际上,通过阅读源代码,您永远不会学到任何有意义的东西。更糟糕的是,90%的源代码处理与上述问题无关的垃圾邮件:打开文件、解析词素、打印unicode字符串


你最好能得到一本关于程序分析的教科书,并阅读它,以了解至少上述一些问题。

我完全同意。你必须忍受的垃圾数量令人难以想象。如果人们不知道,Pascal负责提供我所知道的用于错误发现和属性提取的最佳静态分析工具之一。如果他像我一样,他可能讨厌读自己的代码,更不用说读别人的代码了