EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

摘要

尽管静态代码分析(SCA)工具已集成到许多现代软件构建和测试管道中,但它们的实际影响仍然受到它们通常产生的过多误报警告的严重阻碍。为了解决这个问题,研究人员提出了几种后处理方法,旨在在 SCA 工具产生结果后过滤掉错误命中(或等效地识别“可操作”警告)。然而,我们发现这些方法中的大多数都是有针对性的(即仅处理少数 SCA 警告类型)并在综合基准或小规模手动收集的数据集(即典型样本量为数百)上进行评估。在本文中,我们提出了一个数据集,其中包含 224,484 个被开发人员修复(真阳性)或明确忽略(假阳性)的真实警告样本,我们使用数据挖掘方法从 GitHub 的 9,958 个不同的开源 Java 项目中收集了这些样本。此外,我们利用这个丰富的数据集来训练基于代码嵌入的机器学习模型,用于过滤由 160 种不同的 SonarQube 规则检查产生的误报警告,这是当今最广泛采用的 SCA 工具之一。这是我们在该领域所知道的最广泛的现实世界公共数据集和研究。我们的方法对 SonarQube 警告分类的准确率为 91%(最佳 F1 分数为 81.3%,AUC 为 95.3%)。

关键词:静态代码分析、过滤误报、真实数据集、代码嵌入、机器学习。

引言

静态代码分析 (SCA) 工具成为现代软件开发生命周期 (SDLC) 的一等公民。 SCA 工具相对快速、经济高效且易于与持续集成 (CI) 系统集成。他们分析软件的源代码,可以有效地检测各种类型的编程问题,如简单的编码错误、漏洞、性能问题或设计错误。

阅读全文 »

什么是云计算

如阿里云、腾讯云、华为云那些产品,我可以根据自己的需要租用服务器、存储空间、开发平台等。这些产品就是云计算平台,实现这些产品的所有技术统称云计算技术。

云计算是一种商业模式、一种计算范式、一种具体实现方式。计算、存储、网络和安全是云计算的四个关键技术。在很多应用场景下,云计算解决了其他方式无法解决的实际的应用需求。

云计算是关于实现“云”这个产品的一切!“云”则是一个融合多种计算机技术实现的、通过互联网以按需获取和按量计费的方式为用户提供计算/存储/网络等资源的分布式集中的计算机集群。

阅读全文 »

摘要

Findbugs 等自动静态分析工具 (ASAT) 的误报率很高。产生的大量误报构成了采用的障碍。研究人员建议使用机器学习来消除误报,并仅向开发人员提供可操作的警告。最先进的研究已经根据对文件、代码和警告的特征和历史计算的指标确定了一组“黄金特征”。最近的研究表明,使用这些特征的机器学习非常有效,并且它们达到了几乎完美的性能。

我们进行了详细分析,以更好地了解“黄金特征”的强劲表现。我们发现,一些研究使用了导致数据泄漏和数据重复的实验程序,这些都是具有重大影响的微妙问题。首先,ground-truth 标签已经泄露到特征中,这些特征衡量了给定上下文中可操作警告的比例。其次,测试数据集中的许多警告出现在训练数据集中。接下来,我们展示了确定真实标签的警告预言的局限性,这是一种将给定修订版中的警告与未来参考修订版进行比较的启发式方法。我们展示了参考修订的选择会影响警告分布。此外,启发式产生的标签与人类预言不符。因此,如果在实践中采用,以前看到的这些技术的强大性能对其真实性能过于乐观。我们的结果传达了几个教训,并为评估误报检测器提供了指导。

关键词:静态分析、误报、数据泄露、数据重复

引言

阅读全文 »

摘要

我们提出了 BayeSmith,一个用于自动学习静态分析警报概率模型的通用框架。最近提出了几种概率推理技术,它们结合了对语义事实的外部反馈,从而减少了用户的警报检查负担。然而,这些方法基本上仅限于具有预定义结构的模型,因此无法学习或将有关分析的知识从一个程序转移到另一个程序。此外,这些概率模型通常会积极地从外部反馈中泛化并错误地抑制真正的错误。为了解决这些问题,我们提出了学习概率模型的结构和权重的 BayeSmith。BayeSmith 从一个初始模型和一组带有错误标签的训练程序开始,改进了模型,以根据反馈有效地优先考虑真正的错误。我们通过对一组 C 程序的两个静态分析来评估该方法。我们证明了学习模型显着提高了三个最先进的概率推理系统的性能。

引言

为了应对准确性和警报相关性的挑战,已经为静态程序分析器提出了各种概率程序推理机制。此类系统最初使用基础分析报告目标程序中的一组警报,并根据概率模型计算每个警报的概率。然后,他们通过结合来自各种来源(如用户 [23、39、50]、程序的旧版本 [15] 或动态分析结果 [5])对语义事实的外部反馈,对静态分析警报进行优先级排序。收到响应后,他们会根据反馈进行概括,并根据剩余警报与用户检查的警报的相关性确定其优先级。通过迅速将注意力集中在目标程序中的真正错误上,这些系统实现了静态分析器可用性的显着改进。

尽管他们在实验上取得了成功,但之前的大部分研究都集中在推理问题上,而不是学习上。现有的基于概率推理的方法(例如警报排名 [5,15,39])仅使用标准方法(例如期望最大化算法 [20])学习有限形式的可转移知识(例如将权重分配给基础概率模型)。然而,在我们的观察中,学习能力从根本上受限于概率模型的底层结构

阅读全文 »

摘要

背景:关于使用静态分析工具(例如 FindBugs)的最重要挑战是存在大量开发人员未采取行动的警告。已经提出了许多功能来构建分类模型,以自动识别可操作的警告。通过分析这些功能和相关研究,我们观察到一些限制,使用户缺乏应用这些功能的实用指南。

目的:这项工作旨在对所有公共可用特征进行系统的实验评估,并探索是否存在用于可操作警告识别的黄金特征集。

方法:我们首先进行系统的文献回顾,收集所有公共可用的特征用于警告识别。我们采用 12 个项目,共 60 次修订作为我们的主题项目。然后,我们实施一个工具来提取每个项目修订的所有特征的值,以准备实验数据。

结果:对收集到的 116 个特征的实验评估表明,有一组共同的特征(23 个特征)在大多数项目修订的警告识别中起作用。这些特征可以在警告识别的时间成本低得多的情况下实现令人满意的性能。

阅读全文 »

相关新闻

  • 微信上可以转发支付宝首付款链接:国内产品壁垒在缓慢持续地打开
  • 字节跳动新图标 —— “抖音跳动”
    • 新 CEO 梁汝波 —— “去肥增瘦”
    • 大中台小前台 —— 抖音、大力教育、飞书、火山引擎、朝夕光年和 TikTok 六大业务部门,“APP 工厂”模式终结?
  • 小米“科技”床垫 —— 电加热,治百病,数万元
    • 小米生态链上市公司趣睡科技,“均采用代工生产”
    • 小米生态公司的去小米化
    • 主要靠喜临门代工(股东),授权专利两项,2% 研发投入,收入主要依赖小米和京东
    • 要辩证看待公司优势与问题

为什么要先评估?

  • 从商业模式画布的角度重新阐释战略 —— 战略:产品的设计与运营
  • 对现有商业模式建设性地发问,从战略角度审视你自身商业模式运作的环境
  • 面向你的 企业小组创意 能够演进的方向设计新的商业模式
  • 基于所处的位置(优&劣)与未来的方向(危&机)

变化环境下商业模式的演进

阅读全文 »

Is There A “Golden” Feature Set for Static Warning Identification?

背景:关于使用静态分析工具(例如 FindBugs)的最重要挑战是存在大量开发人员未采取行动的警告。已经提出了许多功能来构建分类模型,以自动识别可操作的警告。通过分析这些功能和相关研究,我们观察到一些限制,使用户缺乏应用这些功能的实用指南。

目的:这项工作旨在对所有公共可用特征进行系统的实验评估,并探索是否存在用于可操作警告识别的黄金特征集。方法:我们首先进行系统的文献回顾,收集所有公共可用的特征用于警告识别。我们采用 12 个项目,共 60 次修订作为我们的主题项目。然后,我们实施一个工具来提取每个项目修订的所有特征的值,以准备实验数据。

结果:对收集到的 116 个特征的实验评估表明,有一组共同的特征(23 个特征)在大多数项目修订的警告识别中起作用。这些特征可以在警告识别的时间成本低得多的情况下实现令人满意的性能。

结论:这些常用的特征可以被视为识别可操作警告的黄金特征集。这一发现可以作为促进现实世界警告识别的实用指南。

阅读全文 »