前言

我现在需要做的事情有:
1)现在都有什么工具(有什么好的idea);
2)最新的文献,所有2017、18的最新相关文献,都应该好好看一遍。

本文内容

本文旨在讲述现有的自动修复工具,以便对当今修复工具有一个更加全面的了解,重点关注其ieda的来源和内在技术。

emmm, 由于工具太多,不可能写在一篇文章里面,所以本文现将SemFix。

一、SemFix [2013 ICSE, San Francisco, CA, USA]

1.1 文章名

SemFix: Program Repair via Semantic Analysis

作者:Hoang Duong Thien Nguyen; Dawei Qi; Abhik Roychoudhury; Satish Chandra

1.2 一句话概括工作

讲的比较清楚,光读摘要就大概懂了:

Debugging consumes significant time and effort in any major software development project. Moreover, even after the root cause of a bug is identified, fixing the bug is non-trivial.

In this paper, we present an automated repair method based on symbolic execution 符号执行, constraint solving 约束求解 and program synthesis 程序合成.

In our approach, the requirement on the repair code to pass a given set of tests is formulated as a constraint. Such a constraint is then solved by iterating over a layered space of repair expressions 是针对expression的修复?, layered by the complexity of the repair code.这句话没读太懂

1.3 和谁(哪个工具)作比较

We compare our method with recently proposed genetic programming based repair on SIR programs with seeded bugs, as well as fragements of GNU Coreutils with real bugs.
感觉这个fragements of GNU Coreutils值得关注一下。

On these subjects, our approach reports a higher success-rate than genetic programming based repair, and produce a repair faster.

1.4 idea来源

这个就得看related work了,还有Introduction也要看看。

1) Not surprisingly, researchers have recently started looking into automated program repair tools.
[1] Y. Wei, Y. Pei, C. A. Furia, L. S. Silva, S. Buchholz, B. Meyer, and A. Zeller, “Automated fixing of programs with contracts,” in ISSTA, 2010.
[2] W. Weimer, T. Nguyen, C. Le Goues, and S. Forrest, “Automatically finding patches using genetic programming,” in ICSE, 2009.
[3] D. Gopinath, M. Malik, and S. Khurshid, “Specification-based program repair using SAT,” in TACAS, 2011.

2) One of the most successful techniques in recent work that works on general programs is based on syntactic search.
这里解释genprog的原理解释的挺好的。

3) our idea is a combination of three existing techniques:
- fault localization [9]
a statistic fault isolation tool
- statement level specification inference [10]
angelic debugging
- program synthesis [11]
use component-based synthesis idea

[9] B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan, “Bug isolation via remote program sampling,” in PLDI, 2003.
[10] S. Chandra, E. Torlak, S. Barman, and R. Bodik, “Angelic debugging,” in ICSE, 2011.
[11] S. Jha, S. Gulwani, S. Seshia, and A. Tiwari, “Oracle-guided component-based program synthesis,” in ICSE, 2010.

  • the state-of-the-art SMT solvers and program synthesis engines

  • KLEE [14] is employed for generating repair constraints. KLEE is a static symbolic execution engine which is mainly used for generating high coverage test suites and finding bugs.

1.5 缺陷定位,语句选择策略

Our core program repair then scans through the statement list from the most suspicious one to the least suspicious one until a successful repair is generated.

We first employ Tarantula fault localization [13] for the buggy program using the given test suite.

自动修复工具介绍——SemFix [ICSE 2013]相关推荐

  1. 当前的程序自动修复(automated program repair)工具介绍

    文章目录 前言 基本概念 参考文献 2008 co-evolutionary approach 2009 Genprog 2010 MutRepair(基于变异操作的修复) 2011 JAFF 201 ...

  2. 软件工程顶级会议中的自动修复工具——JFIX [ISSTA 2017]

    前言 本文旨在讲述软工顶会论文中的自动修复工具JFix. 一.SemFix [ISSTA 2017] 1.1 文章名 JFIX: Semantics-Based Repair of Java Prog ...

  3. Java新手看招 常用开发工具介绍

    Java新手看招 常用开发工具介绍 Java的应用越来越广泛,学习Java的人也越来越多.学过程序设计的人知道,使用Basic进行程序设计,可以使用QBasic.Visual Basic等开发工具:使 ...

  4. fiddler和wireshark工具介绍及对比 - [测试技术知识]

    2013-11-19 fiddler和wireshark工具介绍及对比 - [测试技术知识] 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.co ...

  5. swift/dart代码规范检查工具介绍

    swift/dart代码规范检查工具介绍 简介: 本篇主要介绍swift和dart代码规范检查工具,以及他们的工作原理,操作过程,代码规范规则. 1 swift代码检查工具-swiftlint 1.1 ...

  6. Openstack各种部署工具介绍

    原文地址: http://www.aboutyun.com/forum.php?ctid=3&mod=viewthread&tid=7476 Openstack各种部署工具介绍 问题导 ...

  7. 软件包管理 之 软件在线升级更新yum 图形工具介绍

    作者:北南南北 来自:LinuxSir.Org 提要:yum 是Fedora/Redhat 软件包管理工具,包括文本命令行模式和图形模式:图形模式的yum也是基于文本模式的:目前yum图形前端程序主要 ...

  8. IDEA IntelliJ 开发工具介绍

    IntelliJ IDEA 开发Java的IDE 官网:https://www.jetbrains.com/ 下面是该工具介绍,有兴趣的可以看下,基本一堆废话: 集成开发环境(IDE,Integrat ...

  9. postman 接口测试工具介绍

    postman 接口测试工具介绍 https://www.cnblogs.com/fly_dragon/p/9186745.html

最新文章

  1. ATS中的命令行工具解读
  2. ES6新增特性——Promise
  3. CDN监控系统(三 业务架构)
  4. Linux内核补丁升级
  5. __VA_ARGS__宏
  6. 0 RabbitMQ概念
  7. Node — 第六天(前后端分离)及(身份验证)
  8. 检测ID卡的输入或者是其它卡的输入。
  9. Matlab画图技巧之保存超大体积图
  10. Hadoop 源码目录树
  11. php fpm 平滑重启,nginx、php-fpm平滑重启和重载配置
  12. ————————————————素数的快速判断方法————————————————————...
  13. 【丐中丐】废旧光驱改装激光雕刻机
  14. java.security.NoSuchAlgorithmException: SHA256WithRSAandMGF1 Signature not available
  15. 关于 用git clone 命令时报错RPC failed; curl 56 Recv failure....’ 的解决办法
  16. 麻将胡牌算法(C++版)
  17. iPhone/iPad解锁屏幕密码
  18. Linux操作系统~什么是虚拟地址?深度剖析进程地址空间
  19. Linux: 目录和文件
  20. 九、Appium测试入门

热门文章

  1. 为什么学编程?如何学习编程?
  2. STM32入门指南(1)—新建第一个工程
  3. 《奇点临近》的一些优秀读后感
  4. 探索java的 protect/private变量
  5. socket协议基础知识
  6. 人民币转换为中文大写
  7. CODOSYS之结构化文本(ST)—— 初级篇(三)基础-数据类型
  8. 常见的js加密/js解密方法
  9. 神奇的开关 — 可控硅
  10. 有趣的Python:Python控制键盘鼠标