如何判断静态代码质量分析工具的性能?
这五大因素必须考虑
近日,SonarQube发布了10.1版本。这个最新版本更新了许多功能,包括自动同步来自GitHub的用户和组配置、Java安全分析覆盖率改进、多个C/C++代码变体分析等多个特定语言的改进、SonarQube用户体验更新,以及更好的新项目入门指导。
通过GitHub实现更顺畅的集中式访问管理
对于使用GitHub的团队管理员来说,支持自动用户和组配置以及同步是一个好消息。当在GitHub中添加新用户或组时,管理员不再需要手动在SonarQube中添加。他们现在可以将这个管理任务委托给GitHub,以便安全、集中地配置用户和组同步。
对于更喜欢使用SAML的企业,SonarQube企业版已经开始支持Okta/Azure AD。
多个C/C++代码变体分析
准备好以更简便的方式来进行C/C++项目代码分析了吗?开发人员现在可以使用同一个项目来分析他们代码的多个变体(例如编译器、编译器标志、平台等)。无需为每个变体创建单独的项目或分支,也不需要管理重复内容——您可以通过一个统一的视图轻松查看代码,并了解分析结果,包括问题来自哪个代码变体。
Java安全覆盖范围得到提升
Java安全分析引擎能够检测并帮助您修复更多的安全问题。通过对引擎进行了多项改进,我们能够在选定的top OWASP安全基准中,实现出色的90%以上的正确判断率(True Positive Rate,简称TPR)。例如,对OWASP基准进行的分析显示90%的TPR;对Security Shepherd基准进行的分析显示约98%的TPR;对WebGoat基准的分析TPR超过了88%。
IDE中安全热点的实时同步
在您的IDE环境中使用SonarLint,能够在编写并提交代码之前提供一级检查,帮助查找并修复问题。如果您使用VSCode或IntelliJ系列的IDE,您将能够实时将安全热点的状态与SonarQube同步。一旦设置了连接模式,SonarQube中标记的热点状态(例如,已修复、已确认安全)将立即反映在SonarLint中,并且仅显示需要用户关注的问题。此外,经过审核后,安全热点的状态可以直接在IDE中进行更改,这也将从SonarQube一侧进行自动同步。
随着领导在团队中推广使用Sonar生态系统,他们能够了解在特定的SonarQube实例上,开发人员如何采用SonarLint工具。
“边写边清洁”指导检查
“边写边清洁”是让企业达到“清理代码”状态的最实用、最有效的方法。在新项目启动时,按照默认设置,项目管理员会被指导根据其开发环境正确地配置“新代码”周期,以确保项目从一开始就准备好实践“清理代码”。通过正确的项目配置,包括设置符合“边写边清洁”的质量门限,企业就能更好、更有效地使用SonarQube。
编程语言方面的更新
支持Django框架,提供涵盖错误和代码异味的基本规则; 当API使用“密码”作为参数时,检测硬编码密码; 增加部分规则,用于检测复杂正则表达式的模式,以及在Python中使用类型提示时的最佳实践规则; 新增基本算术运算的新规则(例如IndexError、DivByZero、field和mod运算符)。
支持Java 20; 3条新规则,涵盖Singleton、Monster Class和Brain method,帮助开发人员编写架构良好且易于维护的Java代码; 检查基本算术运算的新规则(例如IndexError、DivByZero和运算符)。
支持TypeScript 5; 针对TypeScript内置特性和普通的JavaScript,新增了22条规则; 改进了TypeScript项目检测功能。
增加冗余规则,提升Kotlin代码的可读性和可靠性; 支持编写符合Kotlin惯例的最佳实践规则(特别针对从Java过渡到Kotlin的开发人员); 支持分析Kotlin多平台(KMP)项目,以便进行跨平台代码开发。
改进了Null跟踪和计算溢出检测,尤其适用于C# 9-11; 新增10条规则,实现更高效的集合处理。
支持在SonarQube中导入“tflint”和“HadoLint”分析。
立即升级SonarQube至10.1版本,请联系SonarQube中国官方授权合作伙伴——创实 ,我们提供SonarQube产品的咨询、销售、实施、培训及技术支持服务。