基于偏好挖掘的静态代码分析器推荐:提升软件质量的关键之选

【字体: 时间:2025年05月13日 来源:Expert Systems with Applications 7.5

编辑推荐:

  为解决静态代码分析器(SCAs)在软件缺陷检测中因误报、漏报导致有效性差异,以及多分析器联用成本高、警告过多等问题,研究人员开展 SCA 推荐研究。结果显示所构建模型性能超 4 个典型基线 2 - 11 倍,为项目选择合适 SCA 提供依据。

  在当今软件产业蓬勃发展的时代,软件质量成为决定产品成败的关键因素。静态代码分析器(Static Code Analyzers,SCAs)作为保障软件质量的重要工具,能够在不实际执行程序的情况下自动检测缺陷,在开源及商业软件项目中发挥着关键作用。然而,不同的 SCAs 由于采用的静态分析技术各异,受自身固有问题(如静态分析时在可靠性和完整性之间的权衡)以及实现漏洞等因素影响,会产生不同程度的误报(False Positives,FPs)和漏报(False Negatives,FNs) ,导致其在同一项目中的有效性参差不齐。
为了检测出项目中更多的缺陷,理论上可以使用多个 SCAs 对项目进行扫描。但在实际应用中,这种方法却困难重重。一方面,多个 SCAs 联用会产生海量的警告信息,极大地增加了开发人员人工检查的工作量;另一方面,调用所有可用的 SCAs 进行缺陷检测会带来高昂的成本。因此,在实际场景中,大多数开源项目通常仅使用一个 SCA 进行软件缺陷检测。

为了解决这些难题,西南大学和中国地质大学(武汉)的研究人员开展了一项关于 SCA 推荐的研究。研究人员提出了一种基于偏好挖掘的实用 SCA 推荐方法,旨在为特定项目选择最有效的 SCA。该研究成果发表在《Expert Systems with Applications》上,为软件质量保障领域带来了新的思路和方法。

研究人员在此次研究中主要运用了以下关键技术方法:首先,在评估 SCAs 有效性时,采用先进的封闭警告启发式算法(Kang 等人,2022)处理每个项目,获取可靠的警告标签;接着进行警告对齐,解决不同 SCAs 报告的警告在属性和数量上不一致的问题;最后融合 FP 和 FN 率评估 SCA 有效性。在 SCA 偏好挖掘阶段,从项目中提取不同粒度(包、文件、类和方法)的特征,通过特征选择确定最具代表性的项目特征,并进行特征可视化。此外,将 SCA 推荐视为多标签分类任务,构建 SCA 推荐模型。

SCA 性能评估


研究人员对三个流行的 SCAs(SpotBugs、PMD 和 SonarQube)在 213 个大规模开源 Java 项目上进行实验评估。结果显示,不同 SCAs 在这些项目上的有效性存在差异。SonarQube 在 213 个项目中取得了最佳的平均 Fβ(β = 1)值,在某些项目上,如 “gooddata” 项目,它能检测出所有缺陷(即三个 SCAs 可操作警告的并集)。SonarQube 在 123 个项目上的 Fβ(β = 1)值最高,其次是 SpotBugs 和 PMD。这表明 SonarQube 在这些项目的缺陷检测中表现更为出色。

SCA 偏好挖掘


在这一阶段,研究人员重点关注两个问题。一是挖掘候选 SCAs 在测试项目上偏好的最具代表性特征。通过从项目中提取不同粒度的特征并进行选择,确定了与最优 SCAs 相关的关键项目特征。二是探究测试项目与相应最优 SCAs 之间的特征分布。研究发现,当项目具有更大的类级特征值时,SonarQube 往往能实现更高的 Fβ(β = 1)。这揭示了项目特征与 SCA 性能之间的内在联系。

SCA 推荐模型构建


研究人员将 SCA 推荐作为多标签分类任务,基于测试项目的最优 SCAs 和最具代表性的项目特征构建了 SCA 推荐模型。通过与四个典型基线(包括随机选择)进行比较,发现所构建的 SCA 推荐模型性能最优。在 Pmicro指标上,该模型比四个典型基线高出约 2 - 11 倍。这表明该模型能够更有效地为特定项目推荐合适的 SCA。

研究人员提出的基于偏好挖掘的 SCA 推荐方法,通过 SCA 有效性评估和偏好挖掘构建了基于机器学习(ML)的 SCA 推荐模型。实验结果表明,在 Pmicro、Rmicro、F1,micro等指标上,该方法的性能优于四个典型基线。这一研究成果为软件开发人员在选择合适的 SCA 时提供了有力的支持,有助于降低软件维护成本,提高软件质量。

不过该研究也存在一定的局限性。在 SCA 性能评估方面,确定最优 SCA 的方法可能不够完善;在 SCA 偏好挖掘方面,对项目特征与 SCA 性能关系的分析还有待深入。未来研究可以针对这些局限性展开,通过在更多项目和 SCAs 上进行实验,进一步优化 SCA 推荐模型,提高其性能和适用性,为软件质量保障领域做出更大的贡献。

相关新闻
生物通微信公众号
微信
新浪微博
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号