workAndroid开发Android知识

FindBugs:简介与使用

2016-12-10  本文已影响835人  格子林ll

目前已转至个人博客,本系列地址:Lam's Blog - Knowledge as Action

前言

FindBugs是一个帮助项目发现Bug的静态分析工具,因为FindBugs分析报告都为英文,而且只有这个问题的描述,所以接下来将会通过多篇文章以Bad Practice、Correctness、Style等FindBugs错误类型为分类进行整理,每篇文章会对每个出现的问题尽量按照以下的方式给出详细的说明

由于个人遇到的错误类型有限,所以该系列文章会整合项目中遇到的和网上找到的问题,有遗漏的或者错误的地方也会持续补充和修改,想要查找具体问题的同学可以到相对应的文章里面按照Bug名称进行搜索。

简介

Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种 Internationalization,12种Malicious code vulnerability,27种Multithreaded correctness,23种Performance,43种Dodgy。我们还可以自己配置检查规则(做哪些检查,不做哪些检查),也可以自己来实现独有的校验规则(用户自定义特定的bug模式需要继承它的接口,编写自己的校验类,属于高级技巧)。

白盒测试中的静态检查一般是检查编码标准规范,错误列表。编码规范往往团队会根据自己的经验和风格进行设置一些规范。现在很多IDE工具都会在编辑代码的时候实时的提醒是否符合代码风格。错误列表,一般是代码潜在的bug,由于某种代码写法虽然没有语法错误,但是可能存在错误,比如会导致线程死锁。这些都是错误列表应该检查的。静态检查的可操作方式:

FindBugs在Android Studio上应用

apply plugin: "findbugs"
task findbugs(type: FindBugs) {
     //toolVersion = "3.0.1"
     gnoreFailures= true
     effort= "max"
     reportLevel= "low"
     classes = files("$project.buildDir/intermediates/classes")
     source= fileTree('build/intermediates/classes/debug/com/sn/')
     classpath= files()
     reports{
        xml {
        destination "build/findbugs.xml"
     }
}

FindBugs错误类型说明

其他文章(持续更新)

FindBugs 规则整理:CORRECTNESS
FindBugs 规则整理:Bad Practice
FindBugs 规则整理:Style & Dodgy
FindBugs 规则整理:Malicious Code Vulnerability
FindBugs 规则整理:Multithreaded Correctness
FindBugs 规则整理:Security & Experimental
FindBugs 规则整理:Performance
FindBugs 规则整理:Internationalization

引用

findBugs学习小结

上一篇下一篇

猜你喜欢

热点阅读