2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

7 个顶级静态代码分析工具

  • 2021-02-19
  • 本文字数:2416 字

    阅读完需:约 8 分钟

7个顶级静态代码分析工具

静态代码分析或源代码分析是指使用静态代码分析工具对软件的“静态”(不运行的) 代码进行分析的一种方法,找出代码中潜在的漏洞。静态代码分析器检查源代码,找出特定的漏洞,并检查代码是否符合各种编码标准。

为什么要进行静态代码分析?


  • 在执行代码之前获取代码洞见;

  • 与动态分析相比,执行速度更快;

  • 可以对代码质量维护进行自动化;

  • 在早期阶段 (尽管不是所有阶段) 可以自动检索 bug;

  • 在早期阶段可以自动发现安全问题;

  • 如果你在使用带有静态分析器的 IDE(例如遵循 PEP8 的 Pycharm),那你已经在“船”上了。


在知道了什么是静态代码分析之后,接下来就有必要了解一下市场上有哪些好用的静态代码分析工具。废话不多说,让我们来看看现在比较流行的静态代码分析工具。

DeepSource


DeepSource 可以帮你在代码评审期间自动发现并修复代码中的问题。它可以与 Bitbucket、GitHub 或 GitLab 帐户集成。这个工具可以找出反模式、bug 风险、性能问题。DeepSource 还会生成并跟踪各种指标(例如依赖项计数、文档覆盖率等)。分析器先发现文件级别的问题 (如在特定位置发现反模式),并进一步发现代码库级别的问题 (如发现有些依赖项没有安装)。DeepSource Autofix 会为检测到的问题提出修复建议,并创建一个修复的拉取请求。


https://deepsource.io


关键特性


  • 单个文件配置;

  • 对拉取请求进行质量检查;问题频谱;

  • 维护活跃度分析器;

  • 可以详细了解每一个问题;

  • 跟踪代码指标;

  • 定制分析,可以忽略掉一些问题;

  • 分析器可以为经常发生的问题提出修复建议,如果允许的话,它们还可以创建修复过的拉取请求;

  • 对每个代码提交和拉取请求进行 Black、YAPF、Go fmt 等代码格式化。不需要进行 CI 设置。


缺点


不支持 PHP。


支持的语言


Python、JavaScript、Go、Ruby、Java、Docker、SQL、Terraform、Shell,以及 TestIdentify 和修复 bug 风险、提交代码中的反模式、性能问题和安全缺陷。


定价


开源项目、学生和非营利组织可以免费使用。付费用户从 12 美元 / 月起算。

SonarQube


SonarQube 是一种很流行的静态分析工具,用于持续检查代码库的代码质量和安全性,并在代码评审期间指导开发团队。SonarQube 可与 CI/CD 集成,进行自动化代码检查。它还提供了质量管理工具帮你主动纠正错误:IDE 集成、Jenkins 集成和代码评审工具。


https://www.sonarqube.org


关键特性


  • 多语言支持;

  • 安全性分析;

  • 发布质量代码;

  • 可维护性;

  • 可以识别蹊跷的问题。


缺点


  • 并不是每个 IDE 都支持 SonarQube;

  • 不能选择忽略团队不需要去修复的问题。


支持的语言


25 种以上的编程语言,包括 Java、C#、JavaScript、TypeScript、C/C++、COBOL 及其他。


定价


社区版是免费和开源的。商业版起步价为 120 欧元。

Codacy


Codacy()是一个静态分析工具,可以帮助开发人员处理技术债务并提高代码质量。Codacy 监控每一次代码提交和 PR 的代码质量。你可以用它来加强代码质量标准,加强安全实践,并节省代码评审时间。


https://www.codacy.com


关键特性


  • 代码评审自动化;

  • 代码质量分析;

  • 安全代码分析;

  • 集群安装 / 多个实例。


缺点


  • 缺乏与其他 SaaS 服务集成 (Sonatype、Blackduck、AWS API 网关的 API QOS 指标或 UI/E2E SaaS 测试服务) 的能力;

  • 无法加密项目信息或限制对源代码的访问;

  • 社区相对较小。


支持的语言


30 多种语言,包括 Elixir、Go、Java、JavaScript、JSON、Kotlin、Python、Ruby、Scala、Swift、TypeScript 等等。


定价


对开源免费,付费用户起步价为 15 美元 / 月。

DeepScan


DeepScan 是一个支持 JavaScript、TypeScript、React 和 Vue.js 的静态分析工具。你可以使用 DeepScan 来查找部分运行时错误和质量问题,而不只是编码风格问题。将 DeepScan 与你的 GitHub 代码库集成起来,以此来发现项目的质量问题。


https://deepscan.io


关键特性


  • 缺陷跟踪;

  • 自动化构建;

  • 代码评审;

  • 协作;

  • 持续集成。


缺点


有限的语言支持。


支持的语言


JavaScript、TypeScript、React 和 Vue.js。


定价


对开源免费,付费用户起步价为 9 美元 / 月。

Embold


Embold 是一个通用的静态分析器,可以帮助开发人员在关键代码问题成为障碍之前把它们找出来。它是一个有效诊断、转换和维护应用程序的得力工具。它集成了人工智能和机器学习技术,可以找出一级问题,提供最佳解决方案,并在必要时重构应用程序。你可以在已有的 DevOps 技术栈中使用它,可以在内部使用,也可以在私有云和公共云中使用它。


https://embold.io


关键特性


  • 直观的 UI;

  • 更深入和更快的代码检查;

  • 智能地提高性能;

  • 无缝集成。


缺点


价格相对较高。


支持的语言


Java、C、C++、C#、Objective-C、TypeScript、JavaScript、Python、PHP、Go、Kotlin、Solidity、SQL。


定价


对开源免费,付费用户每月 10 欧元。

Veracode


Veracode 是一种流行的静态代码分析工具。它只针对安全问题,跨管道执行代码检查,以便发现安全漏洞,并将 IDE 扫描、管道扫描和策略扫描作为其服务的一部分。它会创建用于审计的代码评估,作为程序的一部分。


https://www.veracode.com/products/binary-static-analysis-sast


关键特性


  • 编码时的安全性问题反馈;

  • 在管道中快速获得结果;

  • 令人满意的审计能力;

  • 不需要调整就可以获得高精确度;

  • 专注于修复问题。


缺点


  • 不支持自定义扫描规则;

  • 用户体验不是很好。


支持的语言


Java、.Net、JavaScript、Scala、Python、PHP、Ruby on Rails、ColdFusion、Swift、C/C++、COBOL、Visual Basic 6、RPG,等等。


定价


基于项目的规模定价,你可以在官网上提交表单来获取报价。

Reshift


Reshift 是一个基于 SaaS 的软件平台,它无缝地集成到软件开发工作流中,让企业可以持续地部署安全的软件产品,而不会减慢它们的速度。Reshift 减少了查找和修复漏洞、识别数据泄露的潜在风险以及帮助软件公司实现合规性和法规要求的成本和时间。


https://www.reshiftsecurity.com


关键特性


  • 快速配置;

  • 安全性扫描;

  • 安全性职责。


缺点


不支持 Java 以外的语言。


支持的语言


Java


定价


对开源免费,付费用户起步价是每月 99 美元。


原文链接:


https://dzone.com/articles/top-7-static-code-analysis-tools

2021-02-19 09:0143103

评论 1 条评论

发布
用户头像
腾讯的Xcheck可以了解一下,能力极强!
2021-10-22 23:50
回复
没有更多了
发现更多内容

不愧是阿里资深架构师,这本“分布式架构笔记”写得如此透彻明了

钟奕礼

程序员 java面试 java编程 #java

精彩纷呈!亚信科技深度参与2022中国移动全球合作伙伴大会

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

星河璀璨 | 2022大数据“星河”案例入选公示

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

YOLOv5全面解析教程①:网络结构逐行代码解读

OneFlow

人工智能 深度学习 代码

如何快速构建企业级数据湖仓?

字节跳动数据平台

大数据 湖仓一体 12 月 PK 榜

2023年上海等保测评机构名单看这里!

行云管家

等保 等级保护 等保测评 上海

Chaos 测试下的若干 NebulaGraph Raft 问题分析

NebulaGraph

分布式 分布式系统 raft 分布式图数据库

面对复杂中国式报表,哪款BI商业智能工具适合你?

小偏执o

阿里巴巴技术官墙裂推荐,鸟哥的Linux私房菜,你是否吃过?

钟奕礼

Java 程序员 java面试 java编程

超赞!阿里大牛熬夜纯手写的微服务架构笔记,肝完面试犹如开挂

钟奕礼

Java 程序员 java面试 java编程

多线程安全问题原理和4种解决办法

华为云开发者联盟

开发 华为云 12 月 PK 榜

您有一封来神州云科冬季发布会的邀请函,请查收!

通明湖

Zebec正在以流支付的方式,推动加密资产支付走上正轨

西柚子

产品负责人 VS 产品经理

ShineScrum

产品经理 产品负责人

降本增效: 蚂蚁在 Sidecarless 的探索和实践

SOFAStack

[1.2.0新功能系列:三]Apache doris 1.2.0 Java UDF 函数开发及使用

张家锋

能让Java开发者提高效率的10个工具

千锋IT教育

软件测试丨只需学会Docker,环境问题再也不是测开路上的「坑」

测试人

Docker 容器 软件测试 自动化测试 测试开发

裸辞美团花两月吃透这Java岗798道真题解析,定级阿里P7

钟奕礼

Java 程序员 java面试 java编程

[1.2.0新功能系列:二] Apache Doris 1.2.0 JDBC外表 及 Mutil Catalog

张家锋

可以保存ins照片的软件~距离实现ins图片下载自由只差这一个步骤!

frank

ins图片下载

有奖征文 | “用 TDengine,写 TDengine”,万元大奖等你来瓜分!

TDengine

tdengine TDengine征文

ubuntu18.04编译webrtc_android库

Geek_pwdeic

android WebRTC

如何配置悬浮层滑动进入动画?

Towify

微信小程序 编辑器 无代码

[1.2.0新功能系列:一] Apache Doris 1.2.0 版本 Light Schema Change

张家锋

直播 | 新一代极速云原生湖仓的技术内核,StarRocks PMC 今天下午为你揭秘!

StarRocks

#数据库

详解视频中动作识别模型与代码实践

华为云开发者联盟

人工智能 图像识别 华为云 12 月 PK 榜

一个随手就能画出小程序的工具

Towify

微信小程序 编辑器 无代码

网站等保三级怎么做?手续是怎样的?

行云管家

等保 等级保护 过等保 等保三级

kali linux忘记密码如何重置|在kali上重置密码

Sher10ck

kali Linux

7个顶级静态代码分析工具_语言 & 开发_Saif Sadiq_InfoQ精选文章