Infrastructure as Code  (IaC) is a novel approach for deployment of middleware and applications. IaC typically builds on automation scripts to put the system into a specific state. The series of steps in an automation should be  idempotent  to guarantee repeatability and convergence. These are key factors if automations are run periodically to override out-of-band changes and prevent drifts from the desired state. Rigorous testing must ensure that the system reliably converges from arbitrary initial/intermediate states to a desired state.   We tackle this issue and demonstrate our tool for automated testing of automation scripts. Our tool is tailored to Opscode's  Chef , one of the most popular IaC frameworks to date. Various testing parameters can be configured, and the Web-based user interface allows to inspect the system state changes during execution. Detailed test reports are created at the end of a test suite, which facilitate tracking down the root cause of failures and issues of non-idempotence.
['Waldemar Hummer', 'Florian Rosenberg', 'Fábio Oliveira', 'Tamar Eilam']
Automated testing of chef automation scripts