首页> 外文学位 >From uncertainty to bugs: Inferring defects in software systems with static analysis, statistical methods, and probabilistic graphical models.
【24h】

From uncertainty to bugs: Inferring defects in software systems with static analysis, statistical methods, and probabilistic graphical models.

机译:从不确定性到错误:使用静态分析,统计方法和概率图形模型推断软件系统中的缺陷。

获取原文
获取原文并翻译 | 示例

摘要

This thesis shows how probabilistic graphical models may be applied in conjunction with static program analysis to automatically uncover software errors in large, complex, real-world systems. In particular, we show how probabilistic graphical models can be employed to tackle two critical problems in software bug-finding: (1) suppressing false error reports (false positives) emitted by bug-finding tools that arise due to analysis imprecision and (2) the automatic extraction of program-specific specifications directly from programs.;For the first problem, we present two algorithms based on the use of statistical reasoning and Bayesian networks that are highly effective at suppressing false positives. Both algorithms are applicable to tools that check a variety of program properties, and we observe that they very often improve the effective precision of a bug-finding tool to the point where false positives have little or no practical impact on the tool's user.;For the second problem, we present a generic framework for specification inference built on the use of factor graphs and static program analysis. A key feature of the framework is that it cleanly fuses together seemingly disparate sources of information that are each indicative or suggestive of a program's specification. This includes information gleamed both from program semantics (obtained via program analysis) and program syntax. To our knowledge, this is the only specification inference technique that is able to combine arbitrary sources of information in this way, thus potentially gleaming far more information from a program than otherwise possible. We illustrate the technique's power by inferring resource management specifications in several large open-source projects; the specifications inferred are highly accurate, and led to the discovery of many serious bugs that are highly system-specific.
机译:本文说明如何将概率图形模型与静态程序分析结合使用,以自动发现大型,复杂的真实系统中的软件错误。特别是,我们展示了如何使用概率图形模型来解决软件错误查找中的两个关键问题:(1)抑制由于分析不精确而导致的错误查找工具发出的错误报告(错误肯定),以及(2)对于第一个问题,我们提出了两种基于统计推理和贝叶斯网络的算法,它们在抑制误报方面非常有效。两种算法都适用于检查各种程序属性的工具,并且我们观察到它们经常将错误发现工具的有效精度提高到误报对工具用户几乎没有或没有实际影响的地步。第二个问题,我们提出了一个基于规格图推断的通用框架,该框架建立在使用因子图和静态程序分析的基础上。该框架的一个关键特征是它干净地融合了看似完全不同的信息源,这些信息源分别表示或暗示了程序的规范。这包括从程序语义(通过程序分析获得)和程序语法中闪闪发光的信息。据我们所知,这是唯一能够以这种方式组合任意信息源的规范推断技术,因此有可能使程序中的信息泛滥得多。我们通过推断几个大型开源项目中的资源管理规范来说明该技术的强大功能。推断出的规范非常准确,并导致发现许多与系统高度相关的严重错误。

著录项

  • 作者

    Kremenek, Theodore.;

  • 作者单位

    Stanford University.;

  • 授予单位 Stanford University.;
  • 学科 Artificial Intelligence.;Computer Science.
  • 学位 Ph.D.
  • 年度 2009
  • 页码 219 p.
  • 总页数 219
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 人工智能理论;自动化技术、计算机技术;
  • 关键词

  • 入库时间 2022-08-17 11:37:51

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号