java 查找bug的工具 SpotBugs 和 Findbugs

SpotBugs是Findbugs的继任者(Findbugs已经于2016年后不再维护),用于对代码进行静态分析,查找相关的漏洞。

目前SpotBugs 3.1.3 自带检测器,其中有90余种Bad practice,155余种Correctness,9种Experimental, 2种 Internationalization,17种Malicious code vulnerability,46种Multithreaded correctness,4种 Bogus random noise,37种Performance,11种 Security,87种Dodgy。

  1. Bad practice 不佳实践:常见代码错误,用于静态代码检查时进行缺陷模式匹配(如重写equals但没重写
    hashCode,或相反情况等)
  2. Correctness 可能导致错误的代码(如空指针引用、无限循环等)
  3. Experimental 实验性
  4. Internationalization 国际化相关问题(如错误的字符串转换等)
  5. Malicious code vulnerability 可能受到的恶意攻击(如访问权限修饰符的定义等)
  6. Multithreaded correctness 多线程的正确性(如多线程编程时常见的同步,线程调度问题等)
  7. BogusMultithreaded correctness 多线程的正确性(如多线程编程时常见的同步,线程调度问题等)
  8. Performance 运行时性能问题(如由变量定义,方法调用导致的代码低效问题等)
  9. Security 安全问题(如HTTP,SQL,DB等)
  10. Dodgy code 导致自身错误的代码(如未确认的强制转换、冗余的空值检查等)

注: SpotBugs 需要当前的JDK环境为 1.8以上,但可以对1.0~1.9的代码来进行检查。

这些插件可以在 IntelliJ IDEA 里安装,android studio也可以,不知道eclipse行不行。

原文地址:https://www.cnblogs.com/welhzh/p/13964285.html