报告题目:Contract-base Program Repair without the Contracts
报告人:裴玉 助理教授
主持人:蒲戈光
报告时间:6月26日 周一 10:00-11:00
报告地点:中北校区数学馆 201
报告人简介:
Dr Pei received his bachelor's degree in Computer Science in 1999 and his first PhD in Computer Science in 2004, both from Nanjing University, China. From 2004 to 2009, he was an Assistant Professor of the Faculty of Information Technology in Macau University of Science and Technology. In 2015, he obtained his second PhD in Computer Science from ETH Zurich, Switzerland.
Dr Pei's primary research goals aim at facilitating the production of high quality software systems in the real world. He has published over a dozen of peer reviewed papers in journals like IEEE TSE, and top tier conferences including ICSE, ASE, ISSTA, and VMCAI. His future research plans are directed towards advancing the techniques to automatically test and repair software systems developed in mainstream programming languages and providing tool support for their practical application.
报告摘要:
As part of the effort towards improving software correctness and reducing maintenance costs, research on automated program repair (APR) has attracted a lot of attention in the past few years. Among the first APR techniques, generate-and-validate APR proposes fixes by first generating a large amount of fix candidates and then validating them via regression testing. AutoFix is a generate-and-validate APR developed for the Eiffel programming language, and it reported high success rates in fixing faults from real-world programs. Since AutoFix exploits program contracts (i.e., method pre-/postconditions and class invariants) in fix generation and validation, its success has been mostly attributed to the extra information provided by contracts.
In this talk, I will first present the AutoFix APR technique, then show that the rationale behind AutoFix could be naturally adapted and effectively applied to fix faults in Java programs, which typically do not have contracts. We developed a prototype implementation of the adapted technique, called JAID. In experiments with real-world faults from the DEFECTS4J benchmark, JAID produced genuinely correct repairs, equivalent to those written by programmers, for 18 bugs---improving over the state of the art of comparable Java APR techniques in the number and kinds of correct fixes.