Software development requires several stages of code iterations, each one requiring debugging, testing, localizing and fixing bugs. While several tools have been developed to automate one of those tasks individually, integrating and combining those results still requires a huge manual effort from software developers. Additionally, many approaches, e.g., in Automated Program Repair, are based on specifically curated fix templates that fail to generalize to most complex software projects. To address those challenges, I propose a new research agenda to learn the effects of software changes in order to localize and fix bugs without being limited to a specific project or a specific programming language. Additionally, my approach can be used to predict the effects of software changes. My preliminary results indicate the feasibility of successfully training a model on Python software changes and their effects, that is capable of producing 80% of correct patches and predicting the effect of a change with an accuracy of 81%. My results highlight the potential of learning the effects of software changes for better software development.
History
Primary Research Area
Threat Detection and Defenses
Name of Conference
International Symposium on Software Testing and Analysis (ISSTA)
Page Range
1886-1890
Publisher
Association for Computing Machinery (ACM)
Open Access Type
Green
BibTeX
@conference{Plein:2024,
title = "Learning the Effects of Software Changes",
author = "Plein, Laura",
year = 2024,
month = 9,
pages = "1886--1890",
publisher = "Association for Computing Machinery (ACM)",
doi = "10.1145/3650212.3685550"
}