The purpose of this paper is to take a practical approach to automated software testing and explain requirements for its success.
To be successful, one needs to remember that there are four interrelated components that have to work together and support one another:
1) An automated software testing system based on one point maintenance and reusable modules,
2) Testing infrastructure consisting of the events, tasks and processes that immediately support automated, as well as manual, software testing,
3) Software testing life cycle that defines a set of phases outlining what testing activities to do and when to do them, and
4) Corporate support for repeatable processes.
These components are discussed from the point of view of the author's many years of experience as a senior software test automation engineer and QA Architect working in a variety of software development environments.