静态分析 Static analysis
如果你在使用一种静态类型语言,你就有一种隔离和发现某几类bug的强大手段----这些bug通过代码评审或是别的传统方式很难发现。静态分析(Static Analysis)就是用软件工具对程序代码进行验证的机制,通过它可以找出其中存在的已知的bug模式。
静态分析工具大致分为两类:对编译结果(class文件 或是字节码)进行分析,或对源代码进行分析。
字节码分析:
字节码分析的目标是在编译后的代码中找出已知的bug模式。首先,人们已经对某些语言进行了足够的研究。以至于能够从编译后的字节码中找到一些常见的bug模式。这个工具不能找出所有的bug。。
字节码分析,能够大概找到以下类型的bug
正确性 可能是逻辑错误的地方
不良实践 违反基本编码实践
迷惑 难懂的代码,奇怪的方法,反常的做法,糟糕的代码
源代码分析
源代码分析,能大概找到以下类型的bug
可能的bug 空的try catch
dead code 没有被用到的本地变量、参数和私有变量等。
欠优化的代码 无节制的字符串操作
过于复杂的表达式 以复制黏贴的方式来复用代码
重复代码