基于机器学习的软件调试技术研究

批准号:
61272102
项目类别:
面上项目
资助金额:
83.0 万元
负责人:
赵建军
依托单位:
学科分类:
F0203.软件理论、软件工程与服务
结题年份:
2016
批准年份:
2012
项目状态:
已结题
项目参与者:
陈雨亭、章程、常曦、孙强、程啸、谢峰、阿尼尔、王琦、胡翔
国基评审专家1V1指导 中标率高出同行96.8%
结合最新热点,提供专业选题建议
深度指导申报书撰写,确保创新可行
指导项目中标800+,快速提高中标率
微信扫码咨询
中文摘要
软件调试是提高程序正确性的重要手段,但其自动化程度仍有待提高。已有的基于程序分析的自动调试方法虽然取得了一定的成果,但存在其固有的局限性。同时,机器学习方法已广泛应用于软件工程领域,并在软件调试等细粒度的工程活动中展现出良好的应用前景。本课题通过将机器学习及统计分析的方法应用到软件调试过程中,提出一套新的自动化调试技术,用于支持整个软件系统的调试过程。该技术采用人工神经网络、关联规则学习、最近邻搜索等机器学习方法,基于程序代码的静态数据、程序运行时的动态数据以及程序员在调试过程中所使用的信息构建相应的模型,提供五个方面的自动化以及半自动化的调试功能:静态警告排序、大规模程序的缺陷定位、并发程序的错误重现、自动推荐断点和程序自动修复。该技术能大大提高软件调试的自动化程度,提高调试过程的效率,降低软件维护的成本。
英文摘要
Software debugging remains to be an important technique to improve the correctness of programs. As debugging is generally tedious and time-consuming, better automation of debugging is desirable. Existing automatic debugging techniques, which are mainly based on program analyses, have alleviated this problem to some extent. However, there exist some intrinsic limitations of this kind of techniques. Meanwhile, machine learning-based techniques have been used extensively in software engineering and showed promising results of their applications to fine-grained activities, such as software debugging. By applying machine learning and statistical analysis techniques to software debugging, our research proposes a suite of novel automatic debugging techniques to support the whole process of debugging. Specifically, our research builds corresponding models by applying techniques, including artificial neural network, association rule mining, nearest neighbor query, etc., to the data collected through static analyses, runtime dynamic monitoring, and programmers' behavior recording. Then the models are used to support software debugging in five aspects: static warning prioritization, fault localization of large-scale systems, concurrency bug reproduction, automatic breakpoint recommendation, and automatic program repair. Our research can significantly enhance the automation of software debugging, improve the efficiency of the debugging process and thus reduce the cost of software maintenance.
软件调试是提高程序正确性的重要手段,但其自动化程度仍有待提高。已有的基于程序分析的自动调试方法虽然取得了一定的成果,但存在其固有的局限性。同时,机器学习方法已广泛应用于软件工程领域,并在软件调试等细粒度的工程活动中展现出良好的应用前景。本课题通过将机器学习及统计分析的方法应用到软件调试过程中,提出一套新的自动化调试技术,用于支持整个软件系统的调试过程。该技术采用人工神经网络、关联规则学习、最近邻搜索等机器学习方法,基于程序代码的静态数据、程序运行时的动态数据以及程序员在调试过程中所使用的信息构建相应的模型,提供五个方面的自动化以及半自动化的调试功能:静态警告排序、大规模程序的缺陷定位、并发程序的错误重现、自动推荐断点和程序自动修复。该技术能大大提高软件调试的自动化程度,提高调试过程的效率,降低软件维护的成本。本课题共发表国际杂志论文5篇(包含2篇尚未正式出版的被接收论文,其中SCI索引5篇)、国际会议论文10篇(其中包括CCF A 类会议:PLDI 一篇、ASE 三篇和CCF B类会议:SONAR 两篇、ICPC 一篇),以及国内核心期刊论文1篇(计算机学报)。在 CCF B类会议23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016) 上发表的论文 “Efficient and Precise Dynamic Slicing for Client-Side JavaScript Programs” 获得大会的最佳论文提名奖(Best Paper Candidate Award)。
期刊论文列表
专著列表
科研奖励列表
会议论文列表
专利列表
DOI:--
发表时间:--
期刊:计算机学报
影响因子:--
作者:陈雨亭;杨威;赵建军
通讯作者:赵建军
Biped: Bidirectional Prediction of Order Violations
Biped:订单违规的双向预测
DOI:10.1587/transinf.2014edp7347
发表时间:2015-02
期刊:Ieice Transactions ON Information and Systems
影响因子:0.7
作者:Chang, Xi;Zhang, Zhuo;Lei, Yan;Zhao, Jianjun
通讯作者:Zhao, Jianjun
DOI:10.1007/s11704-013-3106-2
发表时间:2014-02
期刊:Frontiers of Computer Science
影响因子:4.2
作者:Qiang Sun;Yuting Chen;Jianjun Zhao
通讯作者:Qiang Sun;Yuting Chen;Jianjun Zhao
BIFER: a biphasic trace filter approach to scalable prediction of concurrency errors
BIFER:一种双相跟踪过滤器方法,用于可扩展地预测并发错误
DOI:10.1007/s11704-015-4334-4
发表时间:2015-10
期刊:Frontiers of Computer Science
影响因子:4.2
作者:Zhang, Zhuo;Zhang, Peng;Xue, Jianxin;Zhao, Jianjun
通讯作者:Zhao, Jianjun
面向方面软件的变化影响分析理论及其应用
- 批准号:60970009
- 项目类别:面上项目
- 资助金额:31.0万元
- 批准年份:2009
- 负责人:赵建军
- 依托单位:
面向方面软件的测试技术研究
- 批准号:60673120
- 项目类别:面上项目
- 资助金额:26.0万元
- 批准年份:2006
- 负责人:赵建军
- 依托单位:
国内基金
海外基金
