期刊文献+

示例演化驱动的学生程序自动修复 被引量:3

Example-evolution-driven Automatic Repair of Student Programs
下载PDF
导出
摘要 已有的程序自动化调试研究大多面向工业软件,而学生程序调试具有缺陷数多、类型复杂等特有难点问题,因此,针对学生程序设计应用背景,研究程序自动修复方法,利用模板示例程序指导补丁的演化.改进了遗传编程算法,包括适应度的计算、变异体的生成方式和变异位置及操作的选择方式,使其更加适合修复学生程序.提出了基于示例的静态错误定位方法,能够识别缺陷程序和参考程序差异和可能的变异操作,有效地缩小补丁的搜索空间以提高修复的准确性.提出了基于执行值序列的变量映射方法,以降低变异体的编译错误,提高修复的准确性.在此基础上,设计并实现了示例演化驱动的Java学生程序自动修复系统.实验结果表明,该方法可以修复含有多缺陷学生程序,对于所用的测试集,当学生程序只有1个~2个错误时,修复率将近100%;当含有3个缺陷时,修复率约为70%;当含有4个及以上缺陷时,修复率约为50%. Most existing program repair researches are oriented to industrial software. Student program debugging has many unique problems, such as multiple bugs and complex bug types. Therefore, according to the application background of student programming, the automatic repair method is studied, and template programs are used to guide the evolution of patches. Genetic programming algorithm has been improved, such as fitness calculation, mutants generation, and mutation position and operator selection, to make it more suitable for repairing student programs. A static fault location method based on sample programs is proposed, which identifies the difference between the defect program and the sample program and recognizes the possible mutation operators. It can effectively reduce the search space of the patch and improves the accuracy of the program repair. A variable mapping method based on execution value sequence is proposed to reduce compilation errors of mutants and improve the accuracy of program repair. On this basis, an example-evolution-driven system for repairing students’ Java programs was designed and implemented. The experimental results show that the method can repair student programs with multiple bugs. For the test set, the repair rate is nearly 100% when the student programs have only 1~2 bugs. When there are 3 bugs, the repair rate is about 70%. When there are 4 or more bugs in the student programs, the repair rate is about 50%.
作者 王甜甜 许家欢 王克朝 苏小红 WANG Tian-Tian;XU Jia-Huan;WANG Ke-Chao;SU Xiao-Hong(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China;School of Information Engineering, Harbin University, Harbin 150086, China)
出处 《软件学报》 EI CSCD 北大核心 2019年第5期1256-1268,共13页 Journal of Software
基金 国家自然科学基金(61672191) 国家重点研发计划(2018YFB1004800) 黑龙江省自然科学基金(JJ2019LH0048H) 哈尔滨科技创新人才研究专项资金(2016RAQXJ013)~~
关键词 自动修复 示例演化 遗传编程 错误定位 变量映射 automatic repair example evolution generic programming fault localization variable mapping
  • 相关文献

参考文献2

二级参考文献103

  • 1徐宝文,聂长海,史亮,陈火旺.一种基于组合测试的软件故障调试方法[J].计算机学报,2006,29(1):132-138. 被引量:38
  • 2Zeller A. Why Programs Fail: A Guide to Systematic Debugging. 2nd Edition. Amsterdam, Holland: Elsevier, 2009. 被引量:1
  • 3Jones J A, Harrold M J, Stasko J. Visualization of test information to assist fault localization//Proceedings of the 24th International Conference on Software Engineering. Florida, USA, 2002:467-477. 被引量:1
  • 4Renieres M, Reiss S P. Fault localization with nearest neighbor queries//Proceedings of 18th IEEE International Conference on the Automated Software Engineering. Montreal, Canada, 2003, 30-39. 被引量:1
  • 5Lihlit B, Aiken A, Zheng A X, et al. Bug isolation via remote program sampling//Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implemen- tation. San Diego, USA, 2003:141-154. 被引量:1
  • 6Jones J A. Fault localization using visualization of test information//Proceedings of the 26th IEEE International Conference on Software Engineering. Scotland, UK, 2004, 54-56. 被引量:1
  • 7Liu C, Yan X, Fei L, et al. SOBER: Statistical model-based bug localization//Proceedings of the 10th European Software Engineering Conference Held Jointly with ]3th ACM SIGSOFT International Symposium on Foundations of Software Engineering. Lisbon, Portugal, 2005: 286-295. 被引量:1
  • 8Libllt B, Naik M, Zheng A X, et al. Scalable statistical bug isolation//Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation. Chicago, USA, 2005:15-26. 被引量:1
  • 9Jones J A, Harrold M J. Empirical evaluation of the tarantula automatic fault-localization technique//Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering. Long Beach, USA, 2005:273-282. 被引量:1
  • 10Liu C, Fei L, Yan X, et al. Statistical debugging, A hypothesis testing-based approach. IEEE Transactions on Software Engineering, 2006, 32(10): 831-848. 被引量:1

共引文献25

同被引文献42

引证文献3

二级引证文献2

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部