GA— Genetic Algorithm-Based Co-Change Recommendation for Infrastructure-as-Code

Tool · Research Tool
Focus: Infrastructure-as-Code (IaC) file co-change recommendation Method: Mono-objective Genetic Algorithm with hybrid heuristics
GA IaC Tool
GA-IaCRec — Optimization-based recommendation of files likely to co-change with a given IaC file.

Synopsis

Infrastructure-as-Code (IaC) files evolve together with configuration scripts, templates, and dependent artifacts. As repositories grow in size and coupling, developers face difficulty identifying which files should be modified together.

GA-IaCRec is an automated recommendation tool that predicts files likely to co-change with a given IaC file. The tool formulates the recommendation problem as an optimization task and uses a mono-objective Genetic Algorithm (GA) to generate a ranked list of candidate files.

Methodology

1 — Hybrid Heuristic Modeling
The recommendation model combines two complementary heuristics:
  • File Similarity: Structural and contextual similarity between files.
  • Change History: Historical co-change frequency extracted from version control data.
These heuristics form the fitness basis for the optimization process.
2 — Genetic Algorithm Optimization
The tool encodes candidate file sets as chromosomes and evolves them using:
  • Selection
  • Crossover
  • Mutation
The GA searches for the optimal combination of files maximizing the recommendation fitness score. The output is a ranked list from most to least likely co-changing files.
3 — Empirical Evaluation
The approach was evaluated on 20 open-source Ansible and Puppet projects. Results show that the approach correctly recommended co-changing files in 86% of commits within the Top-10 recommendations. Instance Space Analysis (ISA) revealed stronger performance for IaC files relying heavily on external modules and maintained by dedicated developers.

Key Characteristics

  • Optimization-based recommendation model
  • Designed specifically for Infrastructure-as-Code ecosystems
  • Supports Puppet (.pp) and Ansible (YAML-based) projects
  • Balances structural similarity and evolutionary history
  • Produces ranked Top-N recommendations
  • Validated on large-scale real-world repositories

Research Reference

Bessghaier, N., Ouni, A., Sayagh, M., Chouchen, M., & Mkaouer, M. W. Towards understanding code review practices for infrastructure-as-code: An empirical study on OpenStack projects. Empirical Software Engineering, 2025.

DOI: https://doi.org/10.1007/s10664-025-10654-w

Download

Source code: https://github.com/stilab-ets/iacreview
Repository includes datasets, experimental scripts, and implementation details.