Automation testing is a Software testing technique to test and compare the actual outcome with the expected outcome.
This can be achieved by writing test scripts or using any automation testing tool.
Test automation is used to automate repetitive tasks and other testing tasks which are difficult to perform manually.
Automation testing uses automation tools to write and execute test cases, no manual involvement is required while executing an automated test suite. Usually, testers write test scripts and test cases using the automation tool and then group into test suites. The main goal of Automation testing is to increase the test efficiency and develop software value.
Automation Testing Approach
There are many approaches to test automation, however below are the general approaches used widely:
Graphical user interface testing - A testing framework that generates user interface events such as keystrokes and mouse clicks, and observes the changes that result in the user interface, to validate that the observable behavior of the program is correct.
API driven testing - A testing framework that uses a programming interface to the application to validate the behaviour under test. Typically API driven testing bypasses application user interface altogether. It can also be testing public (usually) interfaces to classes, modules or libraries are tested with a variety of input arguments to validate that the results that are returned are correct.
Checklist for Automation Testing
- The scope of Automation needs to be determined in detail before the start of the project.
- Select the right automation tool: A tool must not be selected based on its popularity, but it's fit to the automation requirements.
- Choose an appropriate framework
Scripting Standards - Standards have to be followed while writing the scripts for Automation. Some of them are:
- Create uniform scripts, comments, and indentation of the code.
- Adequate Exception handling - How error is handled on system failure or unexpected behavior of the application.
- User-defined messages should be coded or standardized for Error Logging for testers to understand.
Measure metrics - Success of automation cannot be determined by comparing the manual effort with the automation effort but by also capturing the following metrics:
- Percent of defects found.
- The time required for automation testing for each and every release cycle.
- Minimal Time is taken for release.
- Customer Satisfaction Index.
- Productivity improvement.
Automation Testing Tools
- HP Quicktest Professional
- Visual Studio Test Professional
- Testing Anywhere
Pro’s and Con’s
- Automated checks are usually written in the same language as the application under test.
- Automating regression tests frees us the time of testers, so they can focus more on exploratory testing of new features.
- Automation testing is generally fast and can go through various steps much quicker than a human.
- Automation testing gives you a quick feedback we get when the application is updated. Ideally the development team should fix any failures as soon as they arise, before moving on to other tasks.
- All automated checks in a test suite can happily pass, but there could be major flaws undetected.
- To properly test an application, a human intelligence is always required.
- Automated checks can take a long time to script depending on the complexity of the test.
- Majority of the bugs seem to be found by accident or when performing exploratory testing.