Automatic patch generation with context-based change application

  • Jindae KIM

Student thesis: Doctoral thesis

Abstract

Automatic patch generation is often described as a search problem of patch candidate space, and it has two major issues: one is search space size, and the other is navigation. An effective patch generation technique should have a large search space with a high probability that patches for bugs are included, and it also needs to locate such patches effectively. In this thesis, we introduce ConFix, an automatic patch generation technique using Context-based Change Application (CCA). ConFix collects abstract AST changes from human-written patches with their AST contexts, by applying LAS, a Location Aware Source code differencing algorithm for change mining to provide abundant resources for patch generation. These collected changes are only applied to possible fix locations with the same contexts for patch generation. By considering changes with a matching context only, ConFix selects a necessary change for a possible fix location more effectively than considering all the collected changes. Also, ConFix filters out fix locations with no collected changes in the same context, which means that such locations have not been modified in human-written patches, hence they are not desirable for modifications. We evaluated ConFix with a benchmark of real bugs from Defects4j dataset. ConFix showed promising patch generation performance compared to state-of-the-art techniques, including generating patches for bugs which have never been fixed by other existing techniques. With context-based strategy, ConFix checked fewer fix locations than a strategy using only a spectrum-based fault localization technique until patches were generated. Also, it identified changes required for patches within in a few attempts for more than 80% of the patches.
Date of Award2019
Original languageEnglish
Awarding Institution
  • The Hong Kong University of Science and Technology

Cite this

'