Utilizing Code Change Information for Better Automated Debugging

The Hong Kong University of Science and Technology
Department of Computer Science and Engineering


PhD Thesis Defence


Title: "Utilizing Code Change Information for Better Automated Debugging"

By

Mr. Ming WEN


Abstract

Software debugging is always time-consuming and labor-intensive. It has 
been estimated that the debugging process costs nearly 50% of developers' 
time and efforts. The excessively high cost in debugging motivates the 
researches on automated software debugging. Over the years, various 
techniques have been proposed to help developers detect bugs, locate bugs, 
and fix them automatically. Although the effectiveness of these techniques 
have been demonstrated, their usefulness is still compromised in practice. 
For instance, fault localization techniques are still suffering from the 
limitation of achieving low precision and lacking of contextual 
information. Automated program repair techniques are suffering from the 
problem of search space explosion.

Morden software systems are commonly maintained by version control systems 
(VCS), and we make the following observations that the changes documented 
by VCS can facilitate the design of better automated debugging techniques. 
First, version histories contain rich information, including bug-inducing 
changes, those changes that introduced bugs, and bug-fixing changes, those 
changes that repaired bugs. We observe that developers frequently look for 
the information of bug-inducing changes during their debugging practice 
and such information is critical for them to understand and locate a bug's 
root cause. Second, we observe that bug-fixing changes contain rich 
knowledge about how developers repair real bugs in practice, from which 
substantial patterns can be learned to repair new bugs automatically.

Motivated by these observations, in this thesis, we propose first a 
technique, Locus, which leverages information-retrieval techniques to 
locate bug-inducing changes automatically based on bug reports. Second, we 
propose HSFL, which constructs historical spectra along the change 
histories starting from bug-inducing changes, to locate bugs at the 
statement level. We then propose CapGen, which is a context-aware patch 
generation system for automated program repair. Specifically, the mutation 
operators are designed and prioritized considering the context information 
guided by substantial real bug-fixing changes. Finally, we propose MutAPI, 
an automated approach to discover library API misuse patterns. 
Specifically, it actively makes code changes to introduce bugs related to 
API misuses, and then leverages mutation analysis to validate whether 
these changes indeed introduce bugs. Our evaluation results show that all 
our proposed techniques outperform existing state-of-the-art approaches.


Date:			Thursday, 7 March 2019

Time:			9:30am - 11:30am

Venue:			Room 2408
 			Lifts 17/18

Chairman:		Prof. Qingping Sun (MAE)

Committee Members:	Prof. Shing-Chi Cheung (Supervisor)
 			Prof. Tao Wang
 			Prof. Wei Wang
 			Prof. Ajay Joneja (IEDA)
 			Prof. Abhik ROYCHOUDHURY (National U of Singapore)


**** ALL are Welcome ****