Improving the Quality of Software Code Changes: Expert Knowledge Recovery and Tool Support

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


PhD Thesis Defence


Title: "Improving the Quality of Software Code Changes: Expert Knowledge 
Recovery and Tool Support"

By

Miss Yida TAO


Abstract

Code changes are essential for software evolution. To safeguard their 
quality, newly submitted changes typically go through a series of quality 
assurance steps before being integrated into the code base. However, 
despite the wide adoption of code review and testing, low-quality 
code-changes are still prevailing. Consequently, developers suffer from 
interrupted workflow and increased workload to handle those low-quality 
code-changes.

In this dissertation, we first investigate software practitioners' 
perspective of codechange quality. We conduct a large-scale exploratory 
study with Microsoft engineers to investigate industrial practice on 
understanding code changes. In addition, by inspecting Eclipse and Mozilla 
patches and surveying their developers, we investigate why patches are 
rejected in code review and the severity of different patch-quality 
issues.

Based on our empirical findings, we propose an automatic approach to 
improve the quality of software code changes in terms of their semantic 
atomicity. Specifically, we combine program slicing and pattern matching 
techniques to partition code changes that address multiple issues. Our 
approach renders promising results in both quantitative and qualitative 
evaluation.

In addition to human-written code changes, we also investigate the quality 
of automatically generated patches produced by program repair techniques. 
We conduct a large-scale human study, in which 95 software practitioners 
use automatically generated patches as debugging aids. Our regression 
analysis on 337 data points reveals a major impact of patch quality on 
debugging performance. Our qualitative analysis on participants' feedback 
provides further insights on how to improve program repair techniques.

The primary contributions of this dissertation include 1) in-depth 
empirical investigations on the expert knowledge of code-change quality; 
2) an automatic approach to improve the semantic atomicity of code 
changes; and 3) a human study to explore the quality impact of 
automatically generated patches in the debugging context.


Date:			Thursday, 17 September 2015

Time:			3:00pm - 5:00pm

Venue:			Room 3584
 			Lifts 27/28

Chairman:		Prof. Guochang Zhang (ACCT)

Committee Members:	Prof. Sunghun Kim (Supervisor)
 			Prof. Shing-Chi Cheung
 			Prof. Charles Zhang
 			Prof. Yongsuk Kim (ISOM)
 			Prof. Michael Godfrey (Comp. Sci., U. of Waterloo)


**** ALL are Welcome ****