When Automated Program Repair Meets Regression Testing -- An Extensive Study on 2 Million Patches

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Lou, Yiling, Yang, Jun, Benton, Samuel, Hao, Dan, Tan, Lin, Chen, Zhenpeng, Zhang, Lu, Zhang, Lingming
Formato: Preprint
Publicado: 2021
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866913412046389248
author Lou, Yiling
Yang, Jun
Benton, Samuel
Hao, Dan
Tan, Lin
Chen, Zhenpeng
Zhang, Lu
Zhang, Lingming
author_facet Lou, Yiling
Yang, Jun
Benton, Samuel
Hao, Dan
Tan, Lin
Chen, Zhenpeng
Zhang, Lu
Zhang, Lingming
contents In recent years, Automated Program Repair (APR) has been extensively studied in academia and even drawn wide attention from industry. However, APR techniques can be extremely time consuming since (1) a large number of patches can be generated for a given bug, and (2) each patch needs to be executed on the original tests to ensure its correctness. In the literature, various techniques (e.g., based on learning, mining, and constraint solving) have been proposed/studied to reduce the number of patches. Intuitively, every patch can be treated as a software revision during regression testing; thus, traditional Regression Test Selection (RTS) techniques can be leveraged to only execute the tests affected by each patch (as the other tests would keep the same outcomes) to further reduce patch execution time. However, few APR systems actually adopt RTS and there is still a lack of systematic studies demonstrating the benefits of RTS and the impact of different RTS strategies on APR. To this end, this paper presents the first extensive study of widely-used RTS techniques at different levels (i.e., class/method/statement levels) for 12 state-of-the-art APR systems on over 2M patches. Our study reveals various practical guidelines for bridging the gap between APR and regression testing.
format Preprint
id arxiv_https___arxiv_org_abs_2105_07311
institution arXiv
publishDate 2021
record_format arxiv
spellingShingle When Automated Program Repair Meets Regression Testing -- An Extensive Study on 2 Million Patches
Lou, Yiling
Yang, Jun
Benton, Samuel
Hao, Dan
Tan, Lin
Chen, Zhenpeng
Zhang, Lu
Zhang, Lingming
Software Engineering
In recent years, Automated Program Repair (APR) has been extensively studied in academia and even drawn wide attention from industry. However, APR techniques can be extremely time consuming since (1) a large number of patches can be generated for a given bug, and (2) each patch needs to be executed on the original tests to ensure its correctness. In the literature, various techniques (e.g., based on learning, mining, and constraint solving) have been proposed/studied to reduce the number of patches. Intuitively, every patch can be treated as a software revision during regression testing; thus, traditional Regression Test Selection (RTS) techniques can be leveraged to only execute the tests affected by each patch (as the other tests would keep the same outcomes) to further reduce patch execution time. However, few APR systems actually adopt RTS and there is still a lack of systematic studies demonstrating the benefits of RTS and the impact of different RTS strategies on APR. To this end, this paper presents the first extensive study of widely-used RTS techniques at different levels (i.e., class/method/statement levels) for 12 state-of-the-art APR systems on over 2M patches. Our study reveals various practical guidelines for bridging the gap between APR and regression testing.
title When Automated Program Repair Meets Regression Testing -- An Extensive Study on 2 Million Patches
topic Software Engineering
url https://arxiv.org/abs/2105.07311