5.5. Test Automation

The time for test plans defined solely as Microsoft Word documents has passed. It may still sound like a good idea (to some) to hire a pack of recent college grads and set them to work manually testing your application. It might sound "cost-effective." It isn't. While creating an automated test suite takes additional work up front, it quickly pays off.

There are two main purposes for having a test suite, whether automated or manual. The first is to validate your code and your application to make sure that you are meeting your customer's requirements. The second is to provide an early warning system in case defects are introduced during development. The sooner you find out about defects, the easier and cheaper they are to fix, so finding out about problems as quickly as possible will save you money. If you are testing manually, the time it takes to get feedback is much greater. If you can automate as much of your testing as possible, you can shorten the feedback cycle enormously.

Shortening that feedback cycle also helps your developers work together in teams. From the perspective of Continuous Integration, a short feedback cycle is critical to enable developers to work together. By forcing constant building and testing of your application, Continuous Integration promotes the early warning system to a first-class part of your development process. When someone introduces changes that will cause problems for other developers, the Continuous Integration build ...

Get Code Leader: Using People, Tools, and Processes to Build Successful Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.