Testing a software using some tool is test automation. The automation tool controls the flow of execution of tests, and also compares the actual results with the expected outcome. Test automation can simplify the task of running repetitive test cases in a very formalised manner and reduces the burden of manual testing to a certain extent.
Manual testing is sometimes prone to errors, because the testing is performed by humans. So essentially the idea/motive behind automation testing is to lessen the burden of manual hunting for errors. Automation tool can thus execute all the test cases required to test an application.
Choosing an automation tool :
It is important to choose a tool that best serves the purpose we intend to solve. Therefore one needs to list the priorities according to which we may make a choice of an automation tool. Following are the list of criteria's one may consider while making automation tool selection.
- Environment Support
- Ease of use
- Database Testing
- Object Identification
- Image Testing
- Error Recovery Testing
- Object Mapping
- Scripting Language Used
- Support for various types of testing - mobile, web, functional, test management etc.
- Support for multiple test frameworks
- Debugging automation software scripts is easy
- The automation tool should be able to recognize objects in any environment
- Generate detailed test reports and results
- Minimum training cost for the selected tool
Various approaches to automation testing exists, among those the following are generally used :
- Graphical User Interface Testing :This involve use of graphics such as keystrokes and mouse-clicks and verify how the application is responding to such commands. It is important to ensure that the tools are working as per the intended functionalities.
- API Driven Testing :In this testing methodology, testing framework uses a programming interface to test the application. It is also used to test classes, modules or libraries with various input arguments.
- Unit Testing :There are various automation tools for testing like Junit and Nunit for executing unit tests in order to determine if the sections of the source code are working as expected. Test automation for unit tests is a part of agile software development. As coding progresses, unit tests are structured accordingly.
A tester must be proficient in a programming language in order to write test cases for a various test scenarios. Test automation can be prove to be a great advantage in case of performing regression testing.
What to Test :
Test automation tools do cater to tasks such as test data creation, GUI interaction, problem detection, defect logging, product installation etc. Apart from all such requirements, testers must consider the following aspects while testing :
- Operating system and platform independence.
- Customizable Reports like preparing crystal reports, database access etc.
- Easy debugging and logging of bugs.
- Email notification support.
- Support for distributed execution environment.
Benefits of Automation Testing :
- Much faster than manual testing.
- Automation tool definitely provides a wider coverage of the features of application under test.
- Results fetched are reliable than manual testing results.
- Consistency is maintained.
- Consumes less time and effort.
- Provides accuracy in every sense and also enhances efficiency.
- Re-usable test scripts
Test automation makes testing simpler in many ways. A test framework defines the format in which the expected results are to be expressed, executing the tests and generate report. A wise selection of a test automation tool can have an impact on the analysis of a product's performance.