Test Automation

“The use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting function.” (Wikipedia) In agile development, test automation is frequently used to automate unit tests, integration tests, and functional tests. Since the definition of done for most agile projects requires that code be thoroughly tested by the end of the iteration, test automation is critical if not necessary to obtain acceptable velocity. In addition, for most practical purposes, test automation is necessary to effectively apply continuous integration and remain true to the commitment to not “break the build.”