This document discusses testing driven development of Puppet modules. It covers using puppet-lint to check style, puppet-syntax to validate code, and rspec-puppet to test catalogs and verify relationships. Packer is used to build consistent virtual machine images, Vagrant manages virtual environments for testing, and Beaker runs acceptance tests across multiple platforms. The goal is to create a virtuous cycle of testing, validation, and development feedback to continuously improve module quality.