<返回更多

静态代码检查工具有哪些,你都知道吗?

2023-07-04  今日头条  学为先编程
加入收藏
看了一系列的静态代码扫描或者叫静态代码分析工具后,总结对工具的看法:静态代码扫描工具,和编译器的某些功能其实是很相似的,他们也需要词法分析,语法分析,语意分析...,但和编译器不一样的是他们可以自定义各种各样的复杂的规则去对代码进行分析。

静态测试简介

静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。

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

看了一系列的静态代码扫描或者叫静态代码分析工具后,总结对工具的看法:静态代码扫描工具,和编译器的某些功能其实是很相似的,他们也需要词法分析,语法分析,语意分析...,但和编译器不一样的是他们可以自定义各种各样的复杂的规则去对代码进行分析。

二、静态代码检查工具

1、PMD

PMD是一个代码检查工具,它用于分析JAVA源代码,找出潜在的问题:

PMD特点

2、FindBugs

FindBugs是一个开源的静态代码分析工具,基于LGPL开源协议,无需运行就能对代码进行分析的工具。不注重style及format,注重检测真正的bug及潜在的性能问题,尤其注意了尽可能抑制误检测(false positives)的发生。以bytecode(*.class、*.jar)为对象进行检查。除了单独动作,还可以用作Eclipse 的plug-in,以及嵌入Ant作为task之一 进行利用。

findbugs自带检测器的介绍: findbugs自带60余种Bad practice,80余种Correntness,1种Internationalization,12种Malicious code vulnerability,27种Multithreaded correntness,23种Performance,43种Dodgy。

Findbugs的一些特点:

3、Checkstyle

定义: Checkstyle是一款检查Java程序源代码样式的工具。

特点:

CheckStyle的主要流程是:

4、Hammurapi

定义: Hammurapi它是一个开源的代码审查/评审(review)工具。它可以帮助改进Java代码的质量。它可以基于一套设计规范来分析代码库。当它碰到违反规范的地方,会在报告中标识。就像Checkstyle一样,它与Ant无缝集成并且由基于XML配置文件来驱动。

特点:

5、Lint4j

定义:Lint4J是一个针对Java的源代码分析工具,它可以对Java源码和字节码进行静态分析,判断其中是否存在死锁、性能问题或者伸缩性问题。它可以集成到任何IDE种或构建系统

特点:

6、Sonar

定义:代码质量管理工具Sonar提供了设计与架构度量。Sonar 2.0引入了针对Java应用的设计分析、架构与面向对象的度量,Sonar 2.1可以检测到未使用的方法以及对不建议使用方法的调用。是一个集成了CheckStyle、PMD、Findbugs的代码校验规则,重复代码发现,代码测试覆盖率,代码注释率,及所有的检测率变化追踪的完美代码质量检查工具。它包含了代码质量检测的七个方面

特点:

Sonar2.1:

Sonar 2.1的新特性:

7、JDepend

JDepend一个开放源代码的可以用来评价Java程序质量的优秀工具,它遍历Java class的文件目录,以Java包(package)为单位,为每一个包/类自动生成 包的依赖程度,稳定性,可靠度等的评价报告,根据这些报告,我们可以得到包或类之间的依赖关系,并分析出包的稳定程度,抽象程度,是否存在循环依耐关系等 。可以根据JDepend给出的报告数据,分析出我们的包是否是可靠的,稳定的,健壮的包,是否符合面向对象的设计原则。

特点:

Depend生成的Java包的质量评价报告主要包括:

8、IBM Checking Tool for Bugs Errors and Mistakes(简称BEAM)

定义:是 IBM 开发的一个静态分析工具,可以用于分析并查找出 C, C++ 和 Java代码中的一些不容易发现的潜在错误,从而达到提高代码质量的目的。同动态分析工具和其它静态分析工具相比,它拥有一些可贵的特性。

特点:

9、LDRA Testbed

定义:LDRA Testbed为应用软件的确认和验证提供强大的源代码测试和分析功能,是独特的质量控制工具。 它有助于提高计算机软件必需的可靠性,健壮性和尽可能的零缺陷,它的使用带来时间、成本和效率上真实的节省,这些都是无法衡量其价值的。它是强大和完整的集成工具包,使先进的软件分析技术应用在开发生命周期的关键阶段。

LDRA Testbed提供强大的分析功能,用于两个主要的测试领域,静态分析和动态分析。

使用LDRA testbed 的好处软件开发和测试过程的成本效率分析工具单元、集成和系统测试的理想工具贯穿于软件开发的整个生命周期LDRA Testbed应用于许多不同的领域过程改进软件测试软件维护

LDRA Testbed的优点:

10、Yasca

定义:Yasca是一个开源静态代码分析工具插件框架, 集成流行的多语言静态分析工具如findbugs/pmd/jlint/rats/cppcheck,由于插件本身多样故可支持java c++等语言静态分析.Yasca是一个用来寻找安全漏洞,在程序的源代码中检测代码质量、性能以及一致性的软件。它集成了其他开源项目,其中包括FindBugs PMD ,JLint , Cppcheck ,并扫描某些文件类型,以及自定义扫描书面的Yasca 这是一个命令行工具,与报告中生成的html , CSV格式, XML,SQLite ,和其他格式。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>