Testing is a big part of almost every project we undertake at Sparkbox. The benefits of having a comprehensive test suite are many and varied. As a feedback mechanism, tests help prevent errors from finding their way into productive environments. Tests can also serve as an alternative to type systems in some languages by ensuring that components both provide and adhere to consistent interfaces within the system. One benefit of tests I see talked about less often is the function they serve as a communication tool. By writing tests, developers document their understanding of the specification in simple true and false statements.