FidBugs的使用学习
阅读原文时间:2023年07月08日阅读:1

是什么?

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

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

能找出什么问题?

可能的 bugs - 空的 try/catch/finally/switch 声明

死码 - 未使用的本地变量,参数和私有方法

次优代码 - 无用的 String/StringBuffer 使用

过于复杂的表达式 - 不必要的 if 声明,可能可以写成 while 的 for 循环

CPD,复制粘贴探测器,查找多种语言的重复代码:重复代码常常是由复制粘贴产生的。这意味着,bugs 也被复制粘贴了。修正它们意味着,修正所有重复的代码。

集成方式

Jenkins -> Manage Jenkins -> Manage Plugins ,在 Jenkins 中安装 findbugs 的插件。

findbugs -textui -low -xml -output findbugs.xml /opt/.wkspace/xxx.jar;

这个命令将产生名为 findbugs.xml 的 XML 格式的检查报告,这也是 Jenkins 的findbugs 插件所支持的格式。

参数说明(跟多参数参考 http://findbugs.sourceforge.net/manual/running.html#d0e465):

-textui: runs the command line user interface

-low Report all bugs.

-xml -output findbugs.xml: -xml指定报告格式  -output指定报告文件

在jenkins中生成报告:

生成报告之后在jenkins的job主页可以看到报告,点击进去可看详情

参考文档

https://www.cnblogs.com/amberly/p/7201041.html

https://www.cnblogs.com/lingyejun/p/7723252.html

https://blog.csdn.net/javaandroid730/article/details/53589918

http://findbugs.sourceforge.net/manual/running.html#d0e465

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章