ROSE: An IDE-Based Interactive Repair Framework for Debugging

调试器 调试 计算机科学 算法程序调试 测试套件 一套 程序切片 点(几何) 集合(抽象数据类型) 测试用例 程序设计语言 嵌入式系统 机器学习 历史 几何学 回归分析 考古 数学
作者
Steven P. Reiss,Xuan Wei,J P Yuan,Qi Xin
出处
期刊:ACM Transactions on Software Engineering and Methodology [Association for Computing Machinery]
标识
DOI:10.1145/3705306
摘要

Debugging is costly. Automated program repair (APR) holds the promise of reducing its cost by automatically fixing errors. However, current techniques are not easily applicable in a realistic debugging scenario because they assume a high-quality test suite and frequent program re-execution, have low repair efficiency, and only handle a limited set of errors. To improve the practicality of APR for debugging, we propose ROSE, an interactive repair framework that is able to suggest quick and effective repairs of semantic errors while debugging in an Integrated Development Environment (IDE). ROSE allows an easy integration of existing APR patch generators and can do program repair without assuming the existence of a test suite and without requiring program re-execution. It works in conjunction with an IDE debugger and assumes a debugger stopping point where a problem symptom is observed. ROSE asks the developer to quickly describe the symptom. Then it uses the stopping point, the identified symptom, and the current environment to identify potentially faulty lines, uses a variety of APR techniques to suggest repairs at those lines, and validates those repairs without re-executing the program. Finally, it presents the results so the developer can examine, select, and make the appropriate repair. ROSE uses novel approaches to achieve effective fault localization and patch validation without a test suite or program re-execution. For fault localization, ROSE builds on a fast abstract-interpretation-based flow analysis to compute a static backward slice approximating the real dynamic slice while taking into account the symptom and the current execution. For patch validation without re-running the program, ROSE generates simulated traces based on a live-programming system for both the original and repaired executions and compares the traces with respect to the problem symptoms to infer patch correctness. We implemented a prototype of ROSE that works in an Eclipse-based IDE and evaluated its potency and utility with an effectiveness study and a user study. We found that ROSE's fault localization and validation are highly effective and a ROSE-based tool using existing APR patch generators generated correct repair suggestions for many errors in only seconds. Moreover, the user study demonstrated that ROSE was helpful for debugging and developers liked to use it.

科研通智能强力驱动
Strongly Powered by AbleSci AI
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
2秒前
乔舟完成签到 ,获得积分10
2秒前
2秒前
2秒前
2秒前
2秒前
2秒前
2秒前
3秒前
3秒前
racill完成签到 ,获得积分10
3秒前
他二舅flying完成签到,获得积分10
4秒前
量子星尘发布了新的文献求助10
6秒前
霸气南珍完成签到,获得积分10
7秒前
shilly完成签到 ,获得积分10
11秒前
liufan完成签到 ,获得积分10
13秒前
安嫔完成签到 ,获得积分10
15秒前
青黛完成签到 ,获得积分10
16秒前
DZS完成签到 ,获得积分10
18秒前
梅特卡夫完成签到,获得积分10
19秒前
YMM完成签到,获得积分10
21秒前
24秒前
Brenda完成签到,获得积分10
24秒前
涛涛完成签到,获得积分10
29秒前
量子星尘发布了新的文献求助10
30秒前
保持理智完成签到,获得积分10
35秒前
安子完成签到 ,获得积分10
35秒前
粗犷的迎松完成签到,获得积分10
42秒前
Luna666完成签到,获得积分10
43秒前
67号完成签到 ,获得积分10
44秒前
47秒前
量子星尘发布了新的文献求助10
49秒前
狂野元枫完成签到 ,获得积分10
49秒前
依依发布了新的文献求助10
50秒前
桐桐应助zhaolin采纳,获得10
50秒前
舒适涵山完成签到,获得积分10
51秒前
Xiaoyisheng完成签到,获得积分10
52秒前
zhang完成签到 ,获得积分10
52秒前
54秒前
1分钟前
高分求助中
(应助此贴封号)【重要!!请各用户(尤其是新用户)详细阅读】【科研通的精品贴汇总】 10000
Encyclopedia of Quaternary Science Reference Third edition 6000
Encyclopedia of Forensic and Legal Medicine Third Edition 5000
Introduction to strong mixing conditions volume 1-3 5000
Aerospace Engineering Education During the First Century of Flight 3000
Electron Energy Loss Spectroscopy 1500
sQUIZ your knowledge: Multiple progressive erythematous plaques and nodules in an elderly man 1000
热门求助领域 (近24小时)
化学 材料科学 生物 医学 工程类 计算机科学 有机化学 物理 生物化学 纳米技术 复合材料 内科学 化学工程 人工智能 催化作用 遗传学 数学 基因 量子力学 物理化学
热门帖子
关注 科研通微信公众号,转发送积分 5796234
求助须知:如何正确求助?哪些是违规求助? 5774346
关于积分的说明 15491518
捐赠科研通 4923263
什么是DOI,文献DOI怎么找? 2650269
邀请新用户注册赠送积分活动 1597506
关于科研通互助平台的介绍 1552100