Nowack V, Bowes D, Counsell S, Hall T, Haraldsson S, Winter E & Woodward J (2022) Expanding Fix Patterns to Enable Automatic Program Repair. In: Jin Z, Li X, Xiang J, Mariani L, Liu T, Yu X & Ivaki N (eds.) 32nd IEEE International Symposium on Software Reliability Engineering, ISSRE 2021. 2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE), Wuhan, China, 25.10.2021-28.10.2021. Piscataway, NJ, USA: IEEE Computer Society, pp. 12-23. https://doi.org/10.1109/ISSRE52982.2021.00015
Abstract Automatic Program Repair (APR) has been proposed to help developers and reduce the time spent repairing programs. Recent APR tools have applied learned templates (fix patterns) to fix code using knowledge from fixes successfully applied in the past. However, there is still no general agreement on the representation of fix patterns, making their application and comparison with a baseline difficult. As a consequence, it is also difficult to expand fix patterns and further enable APR. We automatically generate fix patterns from similar fixes and compare the generated fix patterns against a state-of-the-art taxonomy. Our automated approach splits fixes into smaller, method-level chunks and calculates their similarity. A threshold-based clustering algorithm groups similar chunks and finds matches with state-of-the-art fix patterns. In our evaluation, we present 33 clusters whose fix patterns were generated from the fixes of 835 Defects4J bugs. Of those 33 clusters, 22 matched a state-of-the-art taxonomy with good agreement. The remaining 11 clusters were thematically analysed and generated new fix patterns that expanded the taxonomy. Our new fix patterns should enable APR researchers and practitioners to expand their tools to fix a greater range of bugs in the future.
Keywords automatic program repair; similarity metric; clustering; fix pattern