一些代码静态检查工具的简介
1、KLOCWORK:
适用语言:C, C++, JAVA
是否开源:否,
是否需要编译:是
作用:代码静态检查工具。用于高效检测软件缺陷和安全隐患,提供优秀的静态源代码分析解决方案。软件号称是业界领导者,能够快速、准确分析大规模(几百万,甚至几千万行)、高复杂度代码的工具。能够自动化检测和解决C/C++、Java等源代码中的严重、安全和规范类的缺陷。通过对构建环境、源代码和开发过程给出一个完整的分析,最终实现高质量软件。
2、COVERITY:
适用语言:C, C++, JAVA,PYTHON,java scrip
是否开源:否,
是否需要编译:是
作用:用于高效检测软件缺陷和安全隐患,提供优秀的静态源代码分析解决方案。软件号称是业界领导者,是第一个能够快速、准确分析大规模(几百万,甚至几千万行)、高复杂度代码的工具。内部采用Prevent SQS(软件质量系统)架构方法,能够自动化检测和解决C/C++、Java等源代码中的严重缺陷。通过对构建环境、源代码和开发过程给出一个完整的分析,最终实现高质量软件。
3、FORTIFY:
适用语言:C, C++, JAVA,PYTHON,java scrip
是否开源:否,
是否需要编译:是
作用:代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。
4、CPPTEST:
适用语言:C, C++
是否开源:否,
是否需要编译:是
作用:Parasoft ® C/C++test TM –针对 C/C++ 开发的综合性代码质量保障工具,使用C++test经时间验证的重要最佳实践—例如静态分析,全面的代码审查,运行时错误检测,集成覆盖率分析的单元测试和组件测试—能够在开发周期的开始阶段,自动地在开发者的桌面上完成。能够通过命令行模式自动化地执行回归和持续集成测试,为监测和分析质量趋势提供数据。
5、TOX
适用语言:PYTHON
是否开源:是
是否需要编译:否
作用:TOX是一个通用的virtualenv管理和测试命令行工具,TOX的目标是提供最先进的自动化打包,测试和发布的Python软件的工具,可以用于控制台或者基础到你的持续构建平台。
支持功能:
1)、检查你的包被正确地安装不同版本的Python和解析器
2)、在每个环境中运行你的测试,配置测试工具的选择
3)、作为一个持续集成服务器的前端,大大降低了测试工作量。
6、Flake8
适用语言:PYTHON
是否开源:是
是否需要编译:否
作用:Flake8是Python代码规范利器,他封装了三个工具:1)PyFlakes:静态检查Python代码逻辑错误的工具;2)pep8: 静态检查PEP 8编码风格的工具;3)Ned Batchelder’s McCabe script:静态分析Python代码复杂度的工具。flake8综合了上述三个工具的功能,还提供了扩展开发接口。
主要特征:
1)包含这行文件将被忽略:#flake8: noqa
2)结尾包含#noqa注释的行将不发布告警
3)GIT和Mercurial钩子
4)McCabe复杂度检查器
5)可以通过flake8.extension入口点扩展
Flake8的下载地址:https://pypi.python.org/pypi/flake8
7、GO LINT:
适用语言:GO
是否开源:是
是否需要编译:否
作用:编码规范类检查
8、GO VET:
适用语言:GO
是否开源:是
是否需要编译:否
作用:检查源代码并报告可疑结构
9、SONAR:
适用语言:C, C++, JAVA,PYTHON,java scrip
是否开源:是
是否需要编译:否
作用:Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。
开源中国代码质量管理系统 -> http://sonar.oschina.net/
主要特点:
•代码覆盖:通过单元测试,将会显示哪行代码被选中
•改善编码规则
•搜寻编码规则:按照名字,插件,激活级别和类别进行查询
•项目搜寻:按照项目的名字进行查询
•对比数据:比较同一张表中的任何测量的趋势
10、Scalastyle:
适用语言:Scala
是否开源:是
是否需要编译:否
作用:Scalastyle是个简单易用的code style检测工具,非常轻巧,有助于团队风格一致。
1)目前有63条规则,主要集中在代码格式,如文件行数、方法行数是否过多,是否指定了返回值,圈复杂度是否高于阈值等
2)有些规则和使用习惯不一致,如文件首必须有license说明,if后必须有花括号等;
3)使用很简单,一个配置,一行命令就可以,参见http://www.scalastyle.org/sbt.html
4)可以和CI结合
建议:因为侧重格式方面,因此可以有条件使用,即关闭若干与习惯严重不符的规则,配合另外的能够做安全检查的工具;
一些代码静态检查工具的简介相关推荐
- Jenkins 在 Tomcat 中的部署及代码静态检查工具集成
Jenkins 的简单部署 在安装了 Jenkins 运行所需的依赖(主要是 JDK)之后,可以通过如下步骤简单快速地部署 Jenkins: 下载 Jenkins. 打开终端并切换至下载目录. 运行命 ...
- 代码静态检查工具PC-Lint运用实践
代码静态检查工具PC-Lint运用实践 如何提交zero bug的产品,如何尽早发现bug,是软件开发工程师和测试工程师都需要思考的问题.我认为高质量的代码是关键,具体实施保障办法有:框架约束,代码评 ...
- linux shell脚本 静态检查工具 shellcheck 简介
简介 shellcheck 是一款实用的 shell脚本静态检查工具. 首先,可以帮助你提前发现并修复简单的语法错误,节约时间.每次都需要运行才发现写错了一个小地方,确实非常浪费时间. 其次,可以针对 ...
- cppcheck 自定义规则_cppcheck代码静态检查工具及相关工具插件用法介绍
摘要:介绍代码缺陷静态检查工具(static code analyzer)cppcheck,以及其vs.qtcreator.git.jenkins插件及用法. Cppcheck着重于检测未定义的行为和 ...
- 代码静态检测工具cppcheck简介
cppcheck是一款小型的代码缺陷静态检查工具,支持C.C++代码,作为编译器的一种补充检查方式,不同于C/C++编译器等其他众多分析工具,它不检测代码的语法错误,只检查编译器检查不出来的BUG类型 ...
- 代码静态检查工具汇总
静态代码扫描,借用一段网上的原文解释一下(这里叫静态检查):"静态测试包括代码检查.静态结构分析.代码质量度量等.它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行.代码 ...
- php代码静态检查工具,代码静态检查工具汇总
工具名 静态扫描语言开源/付费 厂商 介绍 主页网址 ounec5.0 VB.Net.C.C++和C#, 还支持Java. 付 费 Ounce Labs \ http://www.ouncelabs. ...
- c++代码静态检查工具——cpplint使用技巧
cpplint使用技巧 google c++ 编码规范 (中文 ) 李开复微博爆谷歌公开 C++编码规范 称全球最好, 开复认证,值得信赖@@@ 这篇文档确实值得去细看,不过条条框框太多,不强制 ...
- C/C++代码静态检查工具PC-lint在VS2008开发环境中的安装配置和使用
PC-Lint偏重于代码的逻辑分析,它能够发现代码中潜在的错误,比如数组访问越界.内存泄漏.使用未初始化变量等. 1. 从http://download.csdn.net/detail/liucha ...
最新文章
- mysql left join 慢 的一个原因
- MPEG4 (ISO/IEC 14496) 文档内容 简介
- 中引入文件报错_关于前端开发中的模块化
- 使用U盘安装Windows Server2008
- 通过一个简单的例子学习Angular Injection Token工作原理
- python日志模块 限制日志记录数_python日志记录-logging模块
- python 编程效率_五个Python编程Tips,帮你提高编码效率
- 计算机二级c语言模拟题,2016下半年计算机二级C语言模拟试题及答案
- 中国芯片人才大军在哪里?
- 机器学习实践指南(二)—— 正则化参数
- python元素定位_Python自动化中的元素定位(一)
- Shader山下(十九)标记Tag
- win10安装mysql8.0,一台电脑上安装多个mysql
- C 语言 switch 语句
- Kafka producer的事务和幂等性
- 该如何在中国手机市场生存
- 第8章 第七天 - 电影网站整合/集成到公众号
- c#视频格式转换(.mov=>.mp4)
- 为什么经常把VARCHAR长度设置成255,而不是更大
- 大数据术语英文翻译及详解
热门文章
- ROS1/2 C++ talker.cpp 对比案例
- system data oracle,System.Data.OracleClient大全
- PageRank算法与特征向量和特征值(eigenvector和eigenvalue)
- 什么是构造方法,为什么要使用构造方法
- Carla 开源自动驾驶仿真软件使用指南 [AD simulator]
- Spark ML 特征工程之 One-Hot Encoding
- paddlepaddle 27 支持任意维度数据的梯度平衡机制GHM Loss的实现(支持ignore_index、class_weight,支持反向传播训练,支持多分类)
- linux使用usermod修改用户主目录
- 微信获取信息用户登录报错redirect_uri域名与后台配置不一致,错误码10003
- 针对0xc000007b问题的解决办法