Usually, the testing phase of application development begins after the piece of software is “finished.” However, a new approach known as acceptance-test-driven development (ATDD) is flipping that model upside down. In ATDD, tests are devised before the actual code development begins and automated testing occurs throughout the development process.
Proponents say that ATDD speeds up development by making it easier to find and fix bugs earlier. The approach can be used along with agile methodologies, and several vendors offer tools that promote ATDD.