发布时间:2020-07-14
通常,代码检查很重要,原因有三:
避免低级bug:一些常见代码问题,如果在编译或运行前不能及时发现,代码中的语法问题会直接导致编译或运行时错误,影响开发效率和代码质量;
统一代码习惯:每一个团队或个人都会有一些代码规范或者代码习惯,为了便于后期维护和阅读,我们编写的代码也需要符合一定的格式规范;
保证线上代码质量:在版本管理中,我们需要在提交或发布之前自动执行一些代码检查工作,确保我们的代码符合最终版本要求。
静态扫描就是不运行程序,通过扫描源代码的方式检查漏洞,常见的方法也有多种:
如把源代码生成 AST(抽象语法树)后对 AST 进行分析,找出用户可控变量的使用过程是否流入到了危险函数,从而定位出漏洞;
或者通过正则规则来匹配源代码,根据平常容易产生漏洞的代码定制出规则,把这些规则代入到代码中进行验证来定位漏洞。
当然静态扫描由于不运行程序也有好多事情处理不了,如程序通过运算得到的一个结果后,就没办法分析这个结果了,所以需要动态运行程序来解决这个问题,也就是动态扫描,动态扫描可以通过单元测试或人工扫描等方式。
静态代码分析是指无需运行被测代码,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。统计证明,在整个软件开发生命周期中,30% 至 70% 的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的。
在软件项目开发过程中,因为其为编译执行语言,语言规则要求较高,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。所以 静态代码分析工具能够帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性并节省开发成本。
静态代码分析工具的优势 :
自动执行静态代码分析,快速定位代码隐藏错误和缺陷。
帮助代码设计人员更专注于分析和解决代码设计缺陷。
减少在代码人工检查上花费的时间,提高软件可靠性并节省开发成本。
下面主要介绍一下:泽众推出的代码分析工具CA,CA支持对源代码进行解析,得到代码的控制流程图,通过对流程图进行代码走查,实现代码级的测试覆盖,轻松实现XUnit单元测试模块的构建。CA还可以通过时间设定,只检验更新的代码,提高效率。
推荐阅读:
什么情况下需要进行静态程序分析?常用Java静态代码分析工具的优势
您的信息已成功提交!
我们的客服人员稍后会与您联系