Unleashing the Giants: Enabling Advanced Testing for Infrastructure as Code - Sokolowski, Daniel; Spielmann, David; Salvaneschi, Guido (Proceedings (IEEE/ACM International Conference on Software Engineering Companion. Online), 2024)
Infrastructure as Code (IaC) programs are written in imperative programming languages like Python or TypeScript while declar-atively defining the target state of software deployments, which the IaC solution then sets up, e.g., Pulumi and AWS CDK. Through a repository mining study and analysis, we noticed that testing IaC programs poses a dilemma: current techniques are either slow and expensive or require prohibitively high development effort. To solve this issue, we introduce Automated Configuration Testing (ACT), enabling efficient testing with low development effort. ACT automates the tedious aspects of unit testing IaC programs and is extensible through a plugin system for test generators and ora-cles. ACT is already effective with simple type-based plugins, and leveraging existing giants, i.e., advanced test generation and oracle techniques, in new plugins will further boost its effectiveness.