THESIS
2019
xii, 131 pages : illustrations ; 30 cm
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...[
Read more ]
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.
Post a Comment