You’ve come a long way since you first started writing Ansible playbooks, but your workflow so far is missing something. You currently write a playbook, run it against a Vagrant machine, and then log in and inspect the results by hand. While this works, it’s not foolproof, and it definitely doesn’t scale once you start working with more than a handful of servers. Writing tests for playbooks is a good idea, as it means that you can prove that the playbook does what you expect it to do. In this chapter, we’re going to take a look at a tool named Test Kitchen, or Kitchen, for short. Using Kitchen, you specify a playbook to run and the expected state of a system after it runs, and then have Kitchen automatically test that your expectations are met. Once you have these tests in place, you can safely change your playbooks without worrying about introducing any regressions.