Writing good, easily maintainable code should always include writing good tests. Tests, especially those written using TDD, perform a number of functions in shaping good programs. They challenge software engineers to think about outcomes and program uses before they start writing application code. …