没有合适的资源?快使用搜索试试~ 我知道了~
四种常用的java代码扫描工具介绍
需积分: 50 11 下载量 56 浏览量
2016-03-30
15:18:40
上传
评论 1
收藏 3.04MB DOCX 举报
温馨提示
试读
18页
资源推荐
资源详情
资源评论
简介
本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4
种主流Java静态代码分析工具(Checkstyle,FindBugs,PMD,Jtest),最
后从功能、特性等方面对它们进行分析和比较,希望能够帮助Java软件开发
人员了解静态代码分析工具,并选择合适的工具应用到软件开发中。
引言
在Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改
代码缺陷。Java 静态代码分析(static code analysis)工具能够在代码构建
过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极
大地提高软件可靠性并节省软件开发和测试成本。目前市场上的Java 静态代
码分析工具种类繁多且各有千秋,因此本文将分别介绍现有4 种主流Java 静
态代码分析工具(Checkstyle,FindBugs,PMD,Jtest),并从功能、特性等
方面对它们进行分析和比较,希望能够帮助Java 软件开发人员了解静态代码
分析工具,并选择合适的工具应用到软件开发中。
静态代码分析工具简介:
什么是静态代码分析
静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法、结构、
过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹
配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。
在软件开发过程中,静态代码分析往往先于动态测试之前进行,同时也可以作
为制定动态测试用例的参考。统计证明,在整个软件开发生命周期中,30%至
70%的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的。
但是,由于静态代码分析往往要求大量的时间消耗和相关知识的积累,因此对
于软件开发团队来说,使用静态代码分析工具自动化执行代码检查和分析,能
够极大地提高软件可靠性并节省软件开发和测试成本。
静态代码分析工具的优势
1.帮助程序开发人员自动执行静态代码分析,快速定位代码隐藏错误和缺陷。
2.帮助代码设计人员更专注于分析和解决代码设计缺陷。
3.显著减少在代码逐行检查上花费的时间,提高软件可靠性并节省软件开发和
测试成本。
Java静态代码分析理论基础和主要技术
缺陷模式匹配:缺陷模式匹配事先从代码分析经验中收集足够多的共性缺陷模
式,将待分析代码与已有的共性缺陷模式进行模式匹配,从而完成软件的安全
分析。这种方式的优点是简单方便,但是要求内置足够多缺陷模式,且容易产
生误报。
类型推断:类型推断技术是指通过对代码中运算对象类型进行推理,从而保证
代码中每条语句都针对正确的类型执行。这种技术首先将预定义一套类型机制,
包括类型等价、类型包含等推理规则,而后基于这一规则进行推理计算。类型
推断可以检查代码中的类型错误,简单,高效,适合代码缺陷的快速检测。
模型检查:模型检验建立于有限状态自动机的概念基础之上,这一理论将被分
析代码抽象为一个自动机系统,并且假设该系统是有限状态的、或者是可以通
过抽象归结为有限状态。模型检验过程中,首先将被分析代码中的每条语句产
生的影响抽象为一个有限状态自动机的一个状态,而后通过分析有限状态机从
而达到代码分析的目的。模型检验主要适合检验程序并发等时序特性,但是对
于数据值域数据类型等方面作用较弱。
数据流分析:数据流分析也是一种软件验证技术,这种技术通过收集代码中引
用到的变量信息,从而分析变量在程序中的赋值、引用以及传递等情况。对数
剩余17页未读,继续阅读
资源评论
qq_34482480
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功