伞源科技Pinpoint和sonarQube对比

源伞科技Pinpoint和sonarQube对比

测试背景

使用工具:
  • 源伞科技Pinpoint
  • Sonarqube
测试项目:
  • 本地测试框架项目两个文件
    文件1:AsyncHttpClientUtil.java
    文件2:FileUtil.java

测试结果汇总

数据统计:
  • 源伞科技Pinpoint结果:
    • 文件1:
      • 严重:14
      • 中等:2
    • 文件2:
      • 严重:8
      • 中等:1
  • SonarQube结果:
    • 文件1:
      • 严重:13
    • 文件2:
      • 严重:18
      • 一般:4
      • 建议:1

测试细节:

  • 1、数量:
    • 从数量看,Pinpoint较SonarQube结果数量少。
  • 2、安全隐患:
    • SonarQube报告包括

      • 5处空指针异常,
      • 4处无引用方法,
      • 两处““InterruptedException” should not be ignored”问题,
      • 1处注释问题,1处“Utility classes should not have public constructors”问题。
      • 13处用日志记录代替标准输出问题
      • 1处导致资源泄漏问题
      • 1处字符串文本不应重复
      • 1处 Try-with-resources should be used
      • 1处 工具类不应该有公共构造函数,工具类不宜实例化,且应有一个私有构造方法。
      • 2处 可合并的“if”语句应该合并。
    • Pinpoint报告

      • 9处空指针,
      • 5处返回null给函数调用者,
      • 2处函数 instanceof<java.lang.Exception> 的返回值没有被检查
      • 1处创建了一个java.io.BufferedReader类的对象
      • 2处if else分支问题
      • 1处导致资源泄漏问题
      • 2处 在util.FileUtil.readerFile(String)中找到对默认编码的依赖:new java.io.InputStreamReader(InputStream)
      • 1处 util.FileUtil.readerFile(String)在循环中使用+连接字符串

主要结论:

  • 从报告总量上SonarQube比Pinpoint数量多,但是无效问题居多,多出的问题一般是代码规范问题。(本次两款软件均采用默认级别扫描。 )
  • SonarQube报告的4处无引用方法、2处注释问题、13处打印输出问题、2处合并if问题,并不影响程序执行,而Pinpoint每个报告都是需要去查看修改。
  • Pinpoint 规则里可以判断程序中出现的条件判断语句问题,发现该问题2处。而且支持跨函数和跨文件扫描,发现该问题一处。(这两种问题sonar扫描不到)
  • Pinpoint和SonarQube关注点有区别,sonar关注于代码规范,Pinpoint更关注与代码错误,且有效问题较高。
  • sonar开源支持语言比PinPoint多,规则也可以选择。
  • 个人观点:sonar适合开发日常自检,Pinpoint适合验收检测。

相关数据支撑资料已发布在在csdn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值