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
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
机灵安白完成签到 ,获得积分10
1秒前
2秒前
7秒前
9秒前
小熊完成签到,获得积分10
10秒前
赴简发布了新的文献求助10
11秒前
救我完成签到,获得积分10
11秒前
怕黑冰烟完成签到 ,获得积分10
11秒前
13秒前
Ellie完成签到 ,获得积分10
14秒前
jt完成签到,获得积分10
14秒前
Alan完成签到,获得积分10
15秒前
科研通AI2S应助斯文的傲珊采纳,获得10
16秒前
yuyuyu完成签到,获得积分10
17秒前
Andy完成签到,获得积分10
18秒前
wlp鹏完成签到,获得积分10
18秒前
19秒前
银角大王完成签到,获得积分0
20秒前
北风完成签到,获得积分10
21秒前
传奇3应助学术小白w采纳,获得10
21秒前
黎黎完成签到,获得积分10
24秒前
黄天完成签到 ,获得积分20
26秒前
满意白卉完成签到 ,获得积分10
27秒前
n3pu030036应助黎黎采纳,获得20
27秒前
tt666完成签到,获得积分10
27秒前
英俊的胜完成签到,获得积分10
27秒前
28秒前
吕布完成签到,获得积分10
30秒前
林洁佳完成签到,获得积分10
30秒前
小丸子完成签到 ,获得积分10
32秒前
杰2580完成签到,获得积分10
32秒前
chenren发布了新的文献求助10
33秒前
35秒前
不是省油的灯完成签到,获得积分10
37秒前
Junanne完成签到,获得积分10
37秒前
英姑应助科研通管家采纳,获得10
38秒前
共享精神应助科研通管家采纳,获得30
38秒前
斯文败类应助科研通管家采纳,获得10
39秒前
iNk应助科研通管家采纳,获得10
39秒前
斯文败类应助科研通管家采纳,获得10
39秒前
高分求助中
Applied Survey Data Analysis (第三版, 2025) 800
Narcissistic Personality Disorder 700
Assessing and Diagnosing Young Children with Neurodevelopmental Disorders (2nd Edition) 700
The Elgar Companion to Consumer Behaviour and the Sustainable Development Goals 540
The Martian climate revisited: atmosphere and environment of a desert planet 500
Images that translate 500
Transnational East Asian Studies 400
热门求助领域 (近24小时)
化学 材料科学 医学 生物 工程类 有机化学 物理 生物化学 纳米技术 计算机科学 化学工程 内科学 复合材料 物理化学 电极 遗传学 量子力学 基因 冶金 催化作用
热门帖子
关注 科研通微信公众号,转发送积分 3843337
求助须知:如何正确求助?哪些是违规求助? 3385634
关于积分的说明 10541332
捐赠科研通 3106253
什么是DOI,文献DOI怎么找? 1710911
邀请新用户注册赠送积分活动 823851
科研通“疑难数据库(出版商)”最低求助积分说明 774313