On the relationship of repair actions and patterns on bug localization approaches: a comparative study
Resumo
In the evolving field of automatic program repair, bug localization approaches play an important role, given their potential to significantly narrow down the search range for potential solutions. Given the diversity of bug locating approaches and their respective performance variations, this study aims to evaluate the bug localization accuracy, considering specific characteristics of the bugs, defined by actions and repair patterns observed in patches. Repair actions constitute changes made to the code to derive a suitable solution to a given problem. These actions can range from additions, deletions, and alterations in the source code lines. Repair patterns, on the other hand, are generalized representations of recurrent action structures in the fixed code. We evaluate the accuracy of each bug locator with respect to these actions and repair pattern to identify if there are any influence of specific actions and/or patterns in each type of locator.
Referências
Thomas Durieux, Fernanda Madeiral, Matias Martinez, and Rui Abreu. 2019. Empirical Review of Java Program Repair Tools: A Large-Scale Experiment on 2,141 Bugs and 23,551 Repair Attempts. In Proc. of ESEC/FSE’2019).
René Just, Darioush Jalali, and Michael D. Ernst. 2014. Defects4J: A Database of Existing Faults to Enable Controlled Testing Studies for Java Programs. In Proc. of ISSTA ’14. ACM, New York, NY, USA, 437–440.
Claire Le Goues, Neal Holtschulte, Edward K. Smith, Yuriy Brun, Premkumar Devanbu, Stephanie Forrest, and Westley Weimer. 2015. The Many-Bugs and IntroClass Benchmarks for Automated Repair of C Programs. IEEE Transactions on Software Engineering 41, 12 (Dec. 2015), 1236–1256.
Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, and Westley Weimer. 2012. GenProg: A Generic Method for Automatic Software Repair. IEEE Trans. on Software Engineering 38, 1 (2012), 54–72.
Kui Liu, Anil Koyuncu, Tegawendé F. Bissyandé, Dongsun Kim, Jacques Klein, and Yves Le Traon. 2019. You Cannot Fix What You Cannot Find! An Investigation of Fault Localization Bias in Benchmarking Automated Program Repair Systems. In Proc. of ICST’2019. 102–113.
Fernanda Madeiral, Simon Urli, Marcelo Maia, and Martin Monperrus. 2019. Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies. In Proc. of SANER ’2019.
Mike Papadakis and Yves Le Traon. 2015. Metallaxis-FL: Mutation-Based Fault Localization. Softw. Test. Verif. Reliab. 25, 5–7 (aug 2015), 605–628.
Spencer Pearson, José Campos, René Just, Gordon Fraser, Rui Abreu, Michael D. Ernst, Deric Pang, and Benjamin Keller. 2017. Evaluating and Improving Fault Localization. In Proc. of ICSE’2017). 609–620.
Victor Sobreira, Thomas Durieux, Fernanda Madeiral, Martin Monperrus, and Marcelo de Almeida Maia. 2018. Dissection of a bug dataset: Anatomy of 395 patches from Defects4J. In Proc. of SANER’2018. 130–140.
W. Eric Wong, Ruizhi Gao, Yihao Li, Rui Abreu, and Franz Wotawa. 2016. A Survey on Software Fault Localization. IEEE Transactions on Software Engineering 42, 8 (2016), 707–740.
Jifeng Xuan, Matias Martinez, Favio DeMarco, Maxime Clément, Sebastian Lamelas, Thomas Durieux, Daniel Le Berre, and Martin Monperrus. 2016. Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs. IEEE Tran. on Software Engineering 43, 1 (April 2016), 34–55.
Daming Zou, Jingjing Liang, Yingfei Xiong, Michael D. Ernst, and Lu Zhang. 2021. An Empirical Study of Fault Localization Families and Their Combinations. IEEE Trans. Softw. Eng. 47, 2 (feb 2021), 332–347.