By definition, test automation is the use of strategies, tools and artifacts that augment or reduce the need of manual or human involvement or interaction in unskilled, repetitive or redundant tasks. This entails that there should be a formalized “manual testing process” exist in the company.
In software validation, planning and developing test cases do performed manually. While writing test harnesses and automated scripts, which iterate through testing cases, requires planning and development time for the team. But most of the task involved in this case can be done automatically. Most of the types of testing that usually done by are the following:
o Functional – A test usually performed to check whether the operations perform as expected. Typically test the user interface or as maintenance of the script between a series of developments.
o Regression – It is almost similar to above validation. Regression test allows a consistent repeatable validation of each new release of an application or Web site. Regression Testing can be done manually but it best performed using test automation to reduce the time and resources required in testing.
o Performance – This is performed to determine the benchmark or scalability of software in actual environment. Performance testing usually executed using automatically to allow easy replication of a variety of normal, peak, and exceptional environments.
o Stress – Often this is performed using the same process as Performance Testing but employing a very high level of simulated load. It is done to determine the absolute capacities of the application and operational infrastructure.
Reliability, repeatability, programmability, speed and cost effectiveness are just few benefits one could get in the automating the software testing. Although there are some disadvantages of using this process such as difficulty in maintaining test data files and requires extreme proficiency in the test scripting, it is adapted extensively in software industry around the world.