According to the Wikipedia Test automation is a process of writing a computer program to do testing that would otherwise need to be done manually.
Test automation has come a long way in the past 20 years. The first test tools provided with a simple capture/playback capabilities: recording and playing keystrokes, then capturing and comparing screens. While simple to create, these tests proved almost impossible to maintain, and capture/playback tools were eventually replaced by more powerful and flexible test scripting tools. But those the first automated tools required extensive development skills and efforts to fulfill which in turn made Test automation process quite expensive while not necessarily improving maintainability. Moreover individualized scripting approaches, accompanied with lack of documentation resulted in obsolescence or rewrites script libraries comprising tens of thousands or more lines of code.
All those facts produced a doubtful reputation of Test Automation as a tool for visionaries, and automation tools were perceived as under-utilized, (20-40% usage model). Moreover Software Testing in the era of mainframe systems was merely executing a series of steps manually and punching key strokes as an attempt to break the application.
That era was followed by the event-driven client-server environment in which applications were deployed in various hardware platforms in conjunctions with other applications. As a result the scope of testing has increased as failures and unexpected behaviors have become more prominent.
Recent development of new web-applications with multi-layered structure and complex business logic further increased potential fields for failure. New emerging technologies such as SOA, web services and SaaS along with tendency of Web applications to move toward integrity of business operations to a large audience of users are significantly change the trends in application testing.
An underestimation of the significance of engagement software testing into Analysis and Design phases has lead to business requirements and functional designs which do not meet key criteria for testable systems. The need to develop quality applications in less time and cost will require more structured and automated analysis and design techniques, with Static Testing becoming “automated” and built as part of the analysis and design requirements capture tools.
Automation and “robot” driven testing techniques will be more important and add more value as we move into technologies that support the businesses in their goals to deliver products and services to the market as rapidly as possible, with minimal risks.
Test automation will become more essential to maintaining a technological edge and controlling costs by reducing capital expenses from equipment sharing, improved ability to trace problems, and reduced complexity. It enable companies to get products to market faster at a time when head count may be shrinking.