Automated testing is a useful practice in the toolkit of every developer, whether they are doing XP or more "traditional" forms of software development. The main drawing card is the ability to rerun tests whenever you want reassurance that things are working as required. However, for tests to provide a developer with this valuable feedback, they have to run relatively quickly. On a series of Java projects building business systems, we have found that running large numbers of JUnit tests against a relational database is normally too slow to provide the kind of rapid feedback developers need. As a result we have developed a collection of techniques, practices, and technologies that together enable us to obtain the rapid feedback developers need even when a relational database underlies the system under construction. |