Thursday, July 28, 2011

Introduction To Automation Testing

What is Automation Testing

Test automation is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. Commonly, test automation involves automating a manual process already in place that uses a formalized testing process.

Test automation involves automating a manual process already in place that uses a formalized testing process.

Benefits of Automation

Reliable: Tests perform precisely the same operations each time they are run, thereby eliminating human error.

Repeatable: You can test how the software reacts under repeated execution of the same operations.

Programmable: You can program sophisticated tests that bring out hidden information from the application.

Comprehensive: You can build a suite of tests that covers every feature in your application.

Reusable: You can reuse tests on different versions of an application, even if the user interfaces changes.

Better Quality Software: Because you can run more tests in less time with fewer resources

Cost Reduction: As the number of resources for regression test are reduced.

Other: Test without any human interaction

Load and Stress testing

Why Automation is required?

ØReducing test time and resources

ØConsistent Test Procedures

ØEnsures process repeatability and resource independence

ØEliminates errors of manual testing

ØImproves efficiency of testing

ØReducing Testing costs

ØGives consistent and accurate results

When to automate?

ØRegression testing

ØData-driven testing

ØThe Application under manual test is stable

ØApplication which has long runs

Regression Testing: Regression test suite is the best candidate for automation. If testing only needs for short period projects, it should be done manually. If the test suite needs to be run for a long time, regularly for every iteration, build and after bug fixing, then it should be automated. Always automate Smoke testcases then Sanity testcases and then regression.Data-driven testing: Single test to verify multiple data like want to test application with various users.The Application under manual test is stable: We cannot automate application which is unstable i.e when the functionality of application keeps on changing.Long Run Projects: Long run projects are good to go with automation. Automating short duration project does not make sense. I personally go for automation for those projects whose duration is more than 6 months.