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
Fast: Automated Tools run tests significantly faster than human users.
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.  

When to NOT Automate?
Ø      Functionality of the application changes frequently
Ø      Project doesn’t have enough time
Ø      Test with unknown results cannot be automated.

No comments:

Post a Comment