开源工具Findbugs使用总结

一、代码检查法概念

白盒测试分为静态测试和动态测试。

代码检查法是静态测试的一种,主要是由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。

代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。

二、Findbugs工具介绍

静态分析工具有很多,其中商业工具比较有名的有Klocwork,coverity,pc-lint,开源的有splint,Findbugs等。

以下主要介绍一下Findbugs工具。

Findbugs是一款Java静态代码分析工具,与其他静态分析工具(如Checkstyle和PMD)不同,Findbugs 不注重样式或者格式,它专注于寻找真正的缺陷或者潜在的性能问题,它可以帮助java工程师提高代码质量以及排除隐含的缺陷。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。

Findbugs运用Apache BCEL 库分析类文件(class文件)而不是源代码,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs的检测器已增至300多条,被分为不同的类型,常见的类型如下:

· 正确性(Correctness):这种归类下的问题在某种情况下会导致bug,比如错误的强制类型转换等。

· 最佳实践反例(Bad practice):这种类别下的代码违反了公认的最佳实践标准,比如某个类实现了equals方法但未实现hashCode方法等。

· 多线程正确性(Multithreaded correctness):关注于同步和多线程问题。

· 性能(Performance):潜在的性能问题。

· 安全(Security):安全相关。

· 高危(Dodgy):Findbugs团队认为该类型下的问题代码导致bug的可能性很高。

三、Findbugs安装及使用

Findbugs可以通过三种方法使用,可以通过Ant工具,通过Ant提供的Swing操作界面和作为Eclipse的一个插件来使用。下面介绍第三种。

下载地址:http://Findbugs.sourceforge.net/downloads.html

需要注意的是eclipse的版本问题,目前最新的Findbugs版本为2.0.3.20131118,支持eclipse 版本3.6及以上。

此处我使用的eclipse版本 3.3.2,使用的Findbugs的版本为1.3.9.20090821。

下载完成后,在Eclipse中安装Findbugs插件

1.  安装Findbugs

解压zip文件,将解压后的文件放到Eclipse的Plugin中。重新启动Eclipse 。(使用MyEclipse的话,放在/dropins文件夹下)

2.  打开Findbugs视图

3.  执行Find Bug 任务

右键单击你要检测的工程、包或文件,-->Find Bugs-->Find Bugs。

4.  查看具体错误信息

选中一条问题,点击右键-->Properties。

双击问题,可以定位到具体代码行。

四、设置Findbugs属性

1.  Minimum priority to report选择项

选择哪个级别的信息进行显示,有Low、Medium、High三个选择项。

1)     High选择项是High级别的提示信息才会被显示。

2)     Medium选择项是Medium和High级别的提示信息才会被显示。

3)     Low选择项是所有级别的提示信息都会被显示。

2.  Report bug categories选择项

在这里是一些显示Bug分类的选择:

Malicious code vulnerability关于恶意破坏代码相关方面的

Correctness关于代码正确性相关方面的

Internationalization关于代码国际化相关方面的

Performance关于代码性能相关方面的

Multithreaded correctness关于代码多线程正确性相关方面的

3.  Run Automatically开关

当此项选中后,Findbugs将会在你修改Java类时自动运行,如你设置了Eclipse自动编译开关后,当你修改完Java文件保存,Findbugs就会运行,并将相应的信息显示出来。

当此项没有选中,你只能每次在需要的时候自己去运行Findbugs来检查你的代码。

4.  Detector Configuration选择项

在这里你可以选择所要进行检查的相关的Bug Pattern条目,你可以根据需要选择或去掉相应的检查条件。

五、其它分析工具

除FingBugs静态分析工具外,还有PMD和Checkstyle,FingBugs、PMD和Checkstyle三个工具各有不同的特点,联合使用有助于减少误报错误,提高报告的准确率。

时间: 2024-10-29 10:46:36

开源工具Findbugs使用总结的相关文章

ArcMap2Sld:一个将MXD中图层配图样式转换为OGC的SLD文件的开源工具

在一个项目中,用户采用GeoServer做为GIS服务器(原因嘛当然是免费能省钱,经过验证可能还会在性能和稳定性等表现力也有优越性),但是手上收集的数据都是ESRI格式的,这倒不打紧,因为GeoServer直接能够支持ESRI的shape file和ArcSDE两种数据格式,要命的是用户的配图也是用ESRI,mxd中40个左右的图层组织和专题图样式都配好了.在网上查了大部分关于在GeoServer中发布服务的样式都是建议在uDig中重新配置,然后导出SLD文件,添加到GeoServer中.由于时

C#正则表达式开源工具,为.net开源绵尽薄力

先交代一下背景,最近工作中经常用到正则表达式,而正则表达式这个东西我个人觉得很鸡肋,不用吧,有些功能实现起来会很麻烦.用吧,又不是说工作中经常用到,只是有时候有些需要求用到而已.但是正则表达式只要一段时间不用,就会被遗忘,甚至是忘的一干二净.为了一定程度上解决这个鸡肋的问题,就有了这篇博客和我打算写的这个开源的正则表达式验证工具的想法.关于正则网上的资料其实已经很多了,之所以还写这篇博客只是为了记录一些现在或者以后工作中可能会用到的正则,然后分享出来,同时也是希望为.net开源做一些事情. v0

GitHub 开源工具整理

技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT技术问答网站 GitHub:全球最大的源代码管理平台,很多知名开源项目都在上面,如Linux内核, OpenStack等免费的it电子书:http://

代码质量检查工具FindBugs和Simian(重复率)

1. 代码质量检查工具FindBugs和Simian(百度网盘分享地址). 2. 使用Ant集成.(Ant入门 外链). 3. 执行文件.staticCheck.xml <?xml version="1.0" encoding="UTF-8" ?> <project name= "staticCheck" default="check" basedir="../"> <prop

DevOps开源工具的三种分类整理

原文地址:http://www.360doc.com/content/16/0322/07/31263000_544210096.shtml 随着开发运维一体化的DevOps运动在国内外蓬勃发展,DevOps相关工具也呈现热闹趋势,在这个言必谈如何实施落地引入工具.建设平台的大环境下,我们今天也来盘点一下DevOps相关工具. 先来看一下业界对DevOps工具的各种分类介绍. 一.DevOps应用交付工具链   ElasticBox是国外一个云应用管理工具,主要用于实现云应用生命周期的可视化管理

淘宝开源工具:Orztop

mysql自动化运维工具参考文档; 淘宝开源工具:Orztop 实时查看当前的processlist和full processlist; 可以查看mysql数据库实时运行的sql状况的工具,以前苦于通过show processlist/show full processlist抓取sql的同志们现在只要盯一盯屏幕就可以了,非常的方便, 安装部署: 1.下载:wget http://hidba.org/wp-content/uploads/2013/06/orztop.rar 上传下载的文件到服务

tesseract-ocr图片识别开源工具

tesseract-ocr图片识别开源工具 今天看同事的ppt,提到了图片识别,又tesseract-ocr,觉得不错,试一下,如果效果好可以用来做验证码的识别 http://code.google.com/p/tesseract-ocr/ tesseract是一款开源工具,我安装了Windows版试水先 1.首先登录首页在‘下载’页面下载 Java代码   tesseract-ocr-setup-xx.xx.exe chi_sim.traineddata.gz   中文语言包 2.双击即可安装

Android开源工具项目集合

最近因为要去外派了,工欲善其事,必先利其器!所以又回顾了一下自己github上所收藏的项目,也算是温故而知新吧. 最流行的android组件大全 http://www.open-open.com/lib/view/open1409108030307.html Android开源项目分类汇总 http://www.open-open.com/lib/view/open1406272852585.html Android开发免费类库和工具集合 http://www.open-open.com/lib

科技公司钟爱的50款开源工具--转载

本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品. 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提供与开源工具相关的产品和服务,或基于开源工具而建的产品和服务,还有一些在为开源代码贡献代码或支持开源项目. Black Duck 在 2015 年的一项调查发现,78% 的企业组织使用开源软件,这个比例几乎是 2010 年时候的两倍.此外,88% 的企业表示,它们预计在今后几年,会加大为开源项目贡献