More about HKUST
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 ****