Debugging activities are supposed to account for about 50 percent of overall development cost of software products. In a new publication, the WASP PhD student He Ye and her colleagues at KTH and Hong Kong have developed a new neural program repair model, based on self-supervised training, improving the present techniques of automatic software repair.
The process of debugging includes analyzing and understanding failed executions, identifying the causes of the failures, implementing fixes, and validating that the fixed program works correctly, without introducing any side effect. To localize and repair bugs using automated program repair (APR) facilitates work in software maintenance, however, present techniques fail to repair some bugs because of a lack of knowledge about the application domain of the program being repaired, as well as the fault type. In the new paper, He Ye et al solve both problems by changing the learning paradigm from supervised training to self-supervised training in an approach called SelfAPR.
SelfAPR introduces two major novelties: First, it uses self-supervision, generating training samples on disk by perturbing a previous version of the program being repaired, allowing the model to get project specific information. Secondly, by executing all training samples, it extracts and encodes test execution diagnostics into the input representation, steering the neural model to fix the kind of fault.
SelfAPR was evaluated on bugs from the GitHub framework Defects4J, where it correctly repairs 110 of 818 bugs, thereby outperforming all the previous supervised learning repair approaches. Notably, 10 of them were never repaired by the previous used supervised learning repair approaches, demonstrating the value and power of project-specific training and test diagnostics embedded.
Six-month research stint in Hong Kong
With a background in software engineering and computer science, He Ye started her WASP funded PhD within the group of Prof. Martin Monperrus at KTH in 2018. Her research focuses on software testing, analysis, and trustworthy software construction, particularly on automatic program repair and deep learning techniques for source code usage.
In April, He Ye returned to Sweden after a six-month research stint in Hong Kong, working in a collaboration project with professor Xiapu Luo at the Hong Kong Polytechnic University. Their work on automated program repair has currently been accepted in the 37th IEEE/ACM International Conference on Automated Software Engineering and the research paper will be presented on the 11th of October.
Publication: He Ye, Matias Martinez, Xiapu Luo, Tao Zhang, Martin Monperrus; SelfAPR: Self-supervised Program Repair with Test Execution Diagnostics; 37th IEEE/ACM Interna-tional Conference on Automated Software Engineering; 2022
SelfAPR: read the full article
Published: September 26th, 2022