Android(Java)利用findbugs进行代码静态检查

本文主要介绍利用java静态代码检查工具findbugs进行代码检查,包括其作用、安装、使用、高级功能(远程review和bug同步)

虽然Android提供了Test Project工程以及instrumentation可以方便的进行单元测试,不过据了解国内Android开发会写自测代码的寥寥无几。那么有没有简单的方法一定程度上保证代码质量呢。Android应用开发大多使用Java,所以对于Java代码检查工具都可以适用,本文介绍其中功能较为强大的findbugs。

1、findbugs作用
findbugs可用于对java代码进行静态检查,检查bug类型包括:

XHTML


1

2

3

4

5

6


Bad practice 坏的实践:常见代码错误,序列化错误,用于静态代码检查时进行缺陷模式匹配

Correctness 可能导致错误的代码,如空指针引用等

国际化相关问题:如错误的字符串转换

可能受到的恶意攻击,如访问权限修饰符的定义等

多线程的正确性:如多线程编程时常见的同步,线程调度问题。

运行时性能问题:如由变量定义,方法调用导致的代码低效问题。

记住一点,findbugs只能用于代码静态检查,对于动态运行中不断变化的数据产生的bugs是无法捕捉的,所以不能代替单元测试、功能测试、性能测试,只能说一定程度上检查简单错误。

2、findbugs安装
通过Eclipse插件进行安装
Eclipse -> Help -> Install New Software, site输入http://findbugs.cs.umd.edu/eclipse,进行安装。

3、findbugs使用
右击工程,选择Find Bugs -> Find Bugs即会对代码开始检查。检查完成后通过Windows -> Show View -> Find Bugs -> Bug Exporer查看bug列表,如TrineaAndroidCommon工程检查结果如下图:


点击右上角+标记展开所有bug细节,点击某个bug进入相应代码行
findbugs会对bug进行分类,同时每一类中会按bug的优先级分类,如下图


4、findbugs高级功能

findbugs提供了代码review以及在线同步功能,这样,对于一个团队,尤其是异地工作,可以方便的代码review。以前在阿里应用有专门的开发部门开发类似功能。
右击工程,选择Properties -> Find Bugs, 勾选Enable project specific settings, store issue evaluations in选择FindBugs Cloud。在Bug Exporer视图中选中某个bug,在Bug Reviews视图中填写review信息即可,如下:


不过国内findbugs被强了,vpn访问吧

时间: 2024-09-22 00:25:21

Android(Java)利用findbugs进行代码静态检查的相关文章

大话js代码静态检查

1.背景 首先必须承认,静态代码检查不能解决所有问题!比如说,QA不能指望着靠静态代码检查来发现rd的代码逻辑的bug.而对于javascript,可能就是代码某处少了个分号,或者是某些编码的bad –practice.这些问题可能很小很小,但是对用户体验足以造成巨大影响.因此,如果这种检查真的能发现问题,那么还是很有必要的. 之后的一个问题是成本:为了发现一个潜在的问题,我们要付出多少精力?静态检查给我们的印象是:飞速的扫描一遍代码然后返回一大堆信息--就像一个可能蕴藏金子的沙堆,我们必须有耐

node js-求助:node.js 如何做代码静态检查?

问题描述 求助:node.js 如何做代码静态检查? 如题,给位大神,给推荐个工具或者方法吧,最好附上检查的详细方法或者工具使用方法,谢谢了! 解决方案 还真不知道nodeJS的 代码检查工具,试试javascript的代码检查工具把 解决方案二: http://www.51testing.com/html/87/300987-818864.html 解决方案三: 谢谢大神,回复的这么及时,赞!

利用FindBugs减少代码中的bug数学习

FindBugs 作用 开发人员在开发了一部分代码后,可以使用FindBugs进行代码缺陷的检查.提高代码的质量,同时也可以减少测试人员给你报的bug数. 静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷.当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现. 代码缺陷分类 根据缺陷的性质,大致可以分为下列几类 ·Bad practice  不好的做法·Correctness   可能有不正确·Dodgy code     糟糕的代码·Experimental  实验·Inter

Android JAVA 语言基础例子代码

Android的界面一般都是java开发的,因此对于c++,.net人员来说理解和编写有一个适应过程,最近参考了一下资料,把这些涉的一些java基础使用以例子代码的形式总结起来,记录了这个平台的熟悉过程. 文件目录(涉及了java的一些主要语法) AnnotDefine.java AnnotDemo.java             ClassDemo.java CodeResource_en_US.java    Collection.java demo.java               

C/C++代码静态检查工具Cppcheck在VS2008开发环境中的安装配置和使用

Cppcheck is an analysis tool for C/C++code. Unlike C/C++ compilers and many other analysis tools, it doesn't detect syntax errors. Cppcheck only detects the types of bugs that the compilers normally fail to detect. The goal is no false positives. Cpp

java利用QQ邮件服务器发邮件的代码 谁有 各位大神谢谢了

问题描述 java利用QQ邮件服务器发邮件的代码 谁有 各位大神谢谢了 ...................................................................... 解决方案 //发送邮件 try { Properties prop = new Properties(); //设置服务器地址 prop.put("mail.smtp.host", "smtp.qq.com"); //设置需要身份验证 prop.put(&

字体颜色-android java代码中设置radiobutton选中与为选中颜色

问题描述 android java代码中设置radiobutton选中与为选中颜色 tab_rb_b.setTextColor(MainActivity.this.getResources().getColor(R.drawable.main_text_color)); 其中R.drawable.main_text_color是自己写好的 颜色改变的xml <!-- not selected --> 但是设好之后 颜色并没有随选中而改变,只是一直都是为选中状态的颜色. 哪位大神知道是怎么回事吗

静态分析-请问有大神知道如何自定义规则对代码进行静态检查么?

问题描述 请问有大神知道如何自定义规则对代码进行静态检查么? 请问有大神知道如何自定义规则对代码进行静态检查么?一直想根据自己的编程规则集,指定适合自身的分析工具. 解决方案 不知道你说的是什么的静态检查,代码分析工具么?

Android java代码有错误,获取的list一直为0,问题出在哪里

问题描述 Android java代码有错误,获取的list一直为0,问题出在哪里 package com.example.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.Intent; import android.content.