Gareth Rushgrove
Puppet Labs
The state of the art for testing puppet modules has been getting much better recently, with Beaker on the horizon, new features being added regularly to rspec-puppet and other new tools emerging. But lots of people working with Puppet are new to software development, and often new to writing tests for their code.

Infrastructure as code to me has always meant applying well known software development practices to infrastructure. This talk aims to be a crash course in software testing as it applies to Puppet modules.

* Enough ruby to get started with testing
* Why testing isn't the same thing as TDD
* What continuous integration is and why it's useful
* How and when to write tests before writing (Puppet) code
* Unit testing with rspec-puppet
* Code quality and test metrics
* Integration testing with beaker
* Testing types and providers
* Refactoring a Puppet module
* What is missing from the tool chain