The single most important rule of testing is to do it.
—Brian Kernighan and Rob Pike
The Practice of Programming
This chapter is about how a good test environment can make testing your product much easier. A test environment is made up of the tools that you use to run your tests and report the results, together with the processes and policies for how to use the tools. Test environments are also referred to synonymously as “test infrastructures,” “test harnesses,” and “test scaffolds.”
This chapter describes what to look for in a good test environment and summarizes a few different test environments. Automation of all the different kinds of tests is emphasized, along with integrating the tests with your SCM and build tools and communicating the test results to the rest of the project. Finally, some of the practical aspects of testing that always seem hard to get right are examined.
This book takes a somewhat simplified view of testing because the focus is on the tools used to write and run tests, not on how to write good tests, or testing methodologies. For more information about testing in general, there are many books and web sites. Some that I have found particularly useful are listed in Appendix B.
This book also uses the term tester generally to mean anyone who runs a test, including developers, Quality Assurance (QA) engineers, and toolsmiths. This is because everyone in a project is involved in testing the product, in one way or another. Of ...