Test Automation is defined as the ability to execute all the unit test cases and integration test
cases in an automated manner with the ability to simulate a multi-user environment with appropriate
regression to ensure quality.
Test Automation is a true reflection of the capability model of the development infrastructure. To
get to this stage is definitely not an automated process.
Automating test cases depends on the fact that all test cases have been effectively defined, and
have been programmed into the test codebase, either through driver programs written manually by the
developer, the QA Engineer, or through driver programs generated using an automated test case
validation framework like nUnit, jUnit and Rational Robot. Mercury LoadRunner, Borland
SilkPerformer, Rational Robot (IBM), are all prevalent Load Testing platforms, albeit a little
different in their own way.
Isolating the Automated test environment from the production environment is crucial to prevent
inadvertent modification to production data. This should happen in an isolated network where IP
Traffic should be filtered from entering the production network at the WAN/LAN layer to prevent
inadvertent damage due to incorrect configuration or artifacts that could point to production.
Most of today's automated test tools, Rational Robot and Silk Performer to mention a few, are
capable of working with web applications, windowed applications (note, this is not just a windows
world, Unix and Linux have applications too) and batch / service applications. These applications
are designed to profile applications as they execute and expose Objects and methods in real time to
the engineer so that they can inject data and invoke controls through code, simulating a real user's
activity. This automation can then be parallelized to simulate multiple users with adequate data
variance to achieve real world throughput.
When automated testing has been implemented, it can save a lot of time by eliminating a majority of
the QA work, thus increasing the ability to identify success or failure at the enterprise
integration level, with minimum scope for error. Most people undermine the importance of Test
Automation, primarily due to the cost involved in developing the automation solution and then,
having to maintain it everytime the code changes. However, this is by no means overkill.