We started this chapter with an overview of different types of testing. Hopefully, this background knowledge will help you to better relate to the various people that have a stake in the software development process. Different motivations result in different types of testing. A functional expert cares whether the system produces the correct result, but may care little about the details of the implementation on a code level. It's not his job.
Our job as developers, however, is closely tied to the lowest level of testing, namely unit testing. With the help of the PHPUnit framework, we learned how to quickly construct simple tests, organize them, and execute them. We even covered advanced topics such as test-driven development and code coverage analysis.
Paired with a little discipline, PHPUnit is sure to make it easier to catch bugs early in the development process when it is still comparatively cheap to fix them. I challenge you to write the first line of code on your next project for...