一、概念
静态代码分析也称静态分析,作为一种软件验证活动,它不要求执行代码,而是通过分析源代码实现质量、可靠性和安全性目的。使用静态分析,您可以识别可能危害您应用安全的缺陷和安全漏洞。静态分析不产生测试用例编写和代码检测配置的开销,因此可以较为经济地衡量和跟踪软件质量指标。
相比较于动态测试,动态测试需要QA编写和执行大量测试用例,由于动态测试不能穷尽所有情形,单靠它还不足以确保软件安全可靠。使用静态代码分析可以弥补动态测试的缺点,具有错误检测、成本低、检验编码标准是否合规和证明不存在严重运行时错误等多个功能优点。
二、背景
当前模型工程项目全部未接入静态代码扫描工具,急需要引入静态代码扫描工具用于发现代码中的安全问题,提升代码质量,保障代码规范和线上稳定运行,在稳定运行后可用于推广到其他项目组,用于项目质量检测。本次调研主要针对算法平台的go项目,因此主要针对是否适用于go语言进行工具调研。
三、调研方式
本次静态代码扫描工具调研主要采用搜索引擎关键字搜索的方式进行,主要信息来源为infoq、csdn、简书等网站。
四、主要内容
1.SonarLint
SonarLint是一个免费的开源IDE 插件,可识别并帮助您在编写代码时解决质量和安全问题。像拼写检查器一样,SonarLint 会显示缺陷并提供实时反馈和清晰的修复指导,以便从一开始就提供整洁的代码,如下为SonarLint在java项目中的一个使用结果,只需要右键项目点击Analyze with SonarLint即可执行一次代码质量检查,生成如图2所示的检测报告ÿ