Abstract
Infrastructure-as-Code (IaC) is increasingly adopted in modern software projects to automate the setup of infrastructure components like servers and networking through code-based files. However, as configurations grow in size, complexity, and coupling with other artifacts (e.g., test files), it becomes challenging for development teams to identify the right files to change. Therefore, we propose an automated approach to recommend files likely to co-change with a given IaC file. Our approach uses a mono-objective genetic algorithm (GA) with a combination of two heuristics: file similarity and change history. Then, GA searches for the optimal solution and generates a ranked list of files from the most to the least likely files to co-change with the given IaC file. We evaluated our approach on 20 open-source Ansible and Puppet projects. Results show that our approach correctly recommended files in 86 % of commits within the top 10 recommendations. Using Instance Space Analysis (ISA), we found that our approach performs better for IaC files relying heavily on external modules and maintained by dedicated developers. However, GA struggles with highly customized Ansible files. In Puppet projects, high path similarity did not consistently predict co-changing files, while higher content similarity improved the similarity heuristic.
| Original language | English |
|---|---|
| Article number | 112746 |
| Journal | Journal of Systems and Software |
| Volume | 234 |
| DOIs | |
| Publication status | Published - Apr 2026 |
| Externally published | Yes |
!!!Keywords
- File recommendation
- Genetic algorithm
- Infrastructure-as-code
- Search-based software engineering (SBSE)
Fingerprint
Dive into the research topics of 'A search-based file recommendation approach for infrastructure-as-code evolution'. These topics are generated from the title and abstract of the publication. Together, they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver