Any addition to the Agile process must add value to the team as a whole and the inclusion of automated testing is no exception.
Automation testing starts with the Business Analyst defining acceptance test criteria in the Stories, further clarifying functional requirements for the developers and testers, both manual and automated.
The manual and automation testers collaborate to define what is both suitable and practical to automate. The developers and automation testers collaborate to understand database structures to design in random test data generation. The developers and automation testers collaborate so that their respective coding are timed appropriately so that testing of each functional component is executed before the developers move to their next task, significantly improving the Agile process.
Automation coding is based on an Object Oriented Design following established design principles ensuring the ease of future maintenance. Automation coding is completed quickly and is unit tested ensuring timely completion, synchronised with application code check-ins.
By definition, an Agile iteration only delivers working software, therefore existing test scripts (now Regression scripts) must all execute for the iteration to be complete. Adding staff to maintain scripts increases the size, effectiveness and cost of an Agile team, so it is critical that script maintenance is integrated into your Agile processes. The automation tester understands from the Stories what has changed and can find the regression scripts that will be affected; the Object Oriented Design makes changes to multiple scripts for the same functional change easy; continuous execution of all test scripts (eg hourly) ensure that the application code that caused a test to fail is identified while the developer has fresh in his mind what has changed.
Test Automation is a highly integrated into your Agile process, adding sophistication, elegance and productivity.