Infrastructure as Code Programs: How to Test, Finally by Daniel Sokolowski and Guido Salvaneschi

Learn how to test Infrastructure as Code programs to ensure reliable configuration and prevent outages. Discover Prote, a pluggable testing framework that generates realistic test inputs and validates outputs, all without writing additional code.

Key takeaways
  • Infrastructure as Code (IaC) programs are prone to configuration errors, leading to outages.
  • IaC testing is necessary to ensure reliable infrastructure configuration.
  • The key is to create a test generation mechanism that can generate realistic input configurations.
  • A PLuggable Testing Framework (Prote) is proposed to automate IaC testing.
  • Prote uses machine-readable definition files to enable testing of IaC programs.
  • The framework consists of two main components: test generators and test oracles.
  • Test generators create input configurations for the program under test, while test oracles validate the output configurations.
  • The framework currently includes a simple type-based test generator and oracle.
  • Prote also includes a configuration file that defines the input configuration for the program under test.
  • The framework is designed to be extensible, allowing developers to create their own test generators and oracles.
  • The goal is to enable testing of IaC programs without writing additional code.
  • Prote is a Jest plugin, allowing developers to easily integrate it into their testing workflow.
  • The framework is designed to be easy to use, even for developers without extensive testing experience.
  • The talk concludes with a demonstration of Prote and its capabilities.