【51CTO.com快译】静态代码分析,或称为源代码分析,是一种将静态代码分析工具,以非运行的方式运用到软件源代码上,以审查其是否符合既定的编码标准,进而发现各种潜在漏洞的方法。通常,静态分析可以为我们带来如下好处:
在实际运用中,您可以使用任何带有静态分析器的IDE(如:Pycharm使用的是pep8),来开展静态分析。下面,让我们一起来探讨一下,目前市场上七种领先的静态代码分析工具:
DeepSource可帮助您在代码审查期间,自动查找并修复代码中的各类问题。在使用过程中,它可以与用户的Bitbucket、GitHub或GitLab帐户相集成。该工具可以查找反模式(anti-patterns)、Bug风险、以及由性能引发的各种问题。同时,DeepSource还会生成并跟踪例如:依赖项数量、文档覆盖率等相关指标。
该分析器既可以运行在文件级别,在特定位置发现反模式;又可以运行在存储库级别,发现某些依赖项尚未安装等深层次问题。此外,DeepSource的Autofix还会为发现的问题提供修复建议,并根据更改建议创建拉取式请求。
主要特征
缺点
语言支持
定价:
作为一种流行的静态分析工具,SonarQube可用于持续审查代码库中的代码质量和安全性,并在代码审查期间给予开发团队相应的指导。同时,它也可被用于带有CI/CD集成的自动化代码审查中。此外,SonarQube还通过提供质量管理工具,来主动协助IDE集成、Jenkins集成、持续集成服务器、以及确保代码查看工具的正确设置。
主要特征
缺点
语言支持
定价:
3.Codacy
Codacy是一种静态分析工具,可以帮助开发人员解决技术问题,并提高代码质量。Codacy在每一次提交和PR(产品迭代)中监视代码质量。您可以用它来执行代码质量标准,执行安全性实践,并节省代码审查的时间。
主要特征
缺点
语言支持
定价:
4.DeepScan
DeepScan是一款业界技术领先的静态分析工具。它能够方便开发人员查找运行时(runtime)中的各项错误与质量问题,而不仅仅停留在编码规则的层面上。通过将DeepScan与目标GitHub存储库的集成,您可以对自己项目的产品质量进行深入了解。
主要特征
缺点
语言支持
定价:
5.Embold
作为一种通用的静态分析器,Embold既可帮助开发人员在那些关键代码问题出现在产品中之前,事先查找并定位它们,又能够针对应用程序,提供诊断、转换和运维等服务。
由于整合了AI和机器学习技术,Embold能够通过评级机制,对发现的问题提出最佳解决方案,并按需对应用进行重构。而且,它可运行在诸如DevOps技术栈、本地系统、私有云、以及公有云中。
主要特征
缺点
语言支持
定价:
6.Veracode
Veracode是一款仅针对安全性问题的流行静态代码分析工具。它能够通过IDE扫描、管道(pipeline)扫描、以及策略扫描等方式,在整个管道中执行代码审查,以发现安全漏洞。通过创建对于代码的评估,Veracode能够被作为程序的一部分进行审计。
主要特征
缺点
语言支持
Java、.NET、JavaScript、Scala、Python、PHP、Ruby on Rails、ColdFusion、Swift、C/C ++、COBOL、Visual Basic 6、RPG等
定价:
7.Reshift
Reshift是一个基于SaaS的软件平台。它可以无缝地被集成到软件开发的工作流程中。项目团队可以用它来加速交付流程,并确保持续部署过程中的安全性。Reshift能够减少他们花费在查找与修复漏洞,识别数据泄露的潜在风险,以及协助软件产品合规性等方面的成本和时间。
主要特征
缺点
语言支持
定价:
原文标题:Top 7 Static Code Analysis Tools,作者:Saif Sadiq
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
前言 这个问题算是开发当中偶尔会遇到的一个小问题,比如如何将两个集合压缩成为...
作为一起新型贷款诈骗案件,相关监管部门和银行已关注到其中的欺诈风险,目前已...
互联网的春风在中国一吹,互联网和计算机处于高速发展的过程,中国的IDC商如雨后...
站群服务器 哪里好?站群服务器是为多个网站配置了独立IP的服务器。如果公司或站...
Kim是什么 域名 ? .kim域名 是Afilias注册局旗下的新顶级域名,国内很多 域名注...
创作人:骆潇龙 通常来说,搜索数据一般需要经过 3 个步骤: 定义数据(建表建索...
这一课讨论关于容错(Fault-Tolerance)和复制(Replication)的问题,主要研究 VMwa...
大规模日志全局分析的需求数据大规模与时效性 基于时间的数据 日志、指标 在日积...
工业和信息化部电信研究院副院长(财苑)刘多在昨天召开的2013宽带通信及物联网...
我们很高兴向大家宣布,Docker已经正式将Docker Distribution贡献给云原生计算基...