Automation Testing Basics
Automation testing is nothing but using an automation tool to execute our test cases.
Automation software is used to enter the test data into the system under the test, which compares the expected and actual results and generates detailed test reports. Automation testing demands a considerable amount of investments and resources.
By using the automation testing tool, we can execute the same test case repeatedly, and it is also possible to record these test cases and re-paly when it is required.
Once the test case is automated, no human intervention is required, and hence, the ROI(Return on Investment) of test automation will be improved. The advantage of using test automation is to reduce the number of test cases to be run manually.
Automation testing is import because of the following reasons:
- Manual testing of all the workflows and fields are time and money consuming
- Difficult to test for multilingual sites manually
- Automation testing does not require human intervention, as you can run the test cases in the absence of employees
- Automation increases the speed of the test execution
- Automation helps in increasing the test coverage
To increase the automation ROI of the test cases, we can select the test cases based on the following criteria:
- High-risk business-critical test cases
- Test cases which are repeatedly executed
- Test cases which are tedious or difficult to perform manually
- Test cases which are time-consuming
The following test cases are not suitable for automation testing :
- The test cases which are newly designed and not tested manually
- The test cases for which the requirements are changing frequently
- The test cases which are executed on an ad-hoc basis
The Automation Testing process includes the following steps:
- Test Tool Selection
- Define Scope of Automation
- Planning Design and Development
- Test Execution
The Test tool selection largely depends on the application under test is built on, for example, the QTP does not support for Informatica and hence the QTP cannot be used for testing the Informatica applications. It's a good idea to conduct a proof of tool on Automation.
Define Scope of Automation:
The Scope of automation is nothing, but an area of the application under test will be automated.
The following points help to determine the scope:
- The features that are important for the business
- scenarios which have a large amount of data
- Common functionalities across application
- Technical feasibility
- The extent to which business components are reused
- The complexity of test cases
- Ability to use the same test cases for cross-browser testing
Planning Design and Development:
In this phase, we are going to create an automation strategy and plan which contains the following details:
- Automation tool selected
- framework design and its features
- In scope and out of scope items of automation
- Automation testbed preparation
- Schedule and timeline of scripting and execution
- Deliverables of automation testing
Test Case Execution:
In this phase, we are going to execute the automation scripts, these test scripts need input test data before they are set to run. Once they execute, the automation scripts provide the detailed test reports.
The execution can be performed either by using the automation tool directly or by using the test management tool which will invoke the automation tool.
In this phase, we are going to add the new functionalities to the system under Test with successive cycles. The automation scripts to be added, reviewed and maintained for each release cycle.
Maintenance becomes necessary to improve the effectiveness of the automation scripts.
Framework: A framework is a set of automation guidelines which helps in
- Maintaining consistency of testing
- Improves test structuring
- Minimum usage of code
- Less maintenance of code
- Improves re-usability
- Non-technical testers can be involved in code
- The training period of using the tool can be reduced
- Involves Data whenever appropriate
There are four types of frameworks are used in automation testing
- Data-Driven automation framework
Example: Single and Multiple data sources like xls, XML,CSV and databases
- Keyword-driven automation framework:
Example: Robot Framework
- Modular Automation framework
Example: Test scripts
- Hybrid automation framework
Example: Test sheets that contain both the keywords and data
The following are the best practices to do to get the maximum ROI of an automation tool
- The scope of the automation needs to be determined in detail before starting the project, this process will set an expectation right from the automation tool
- Select the best automation tool, which will best match the automation requirements, instead of selecting on the popularity.
- Standards should be followed while writing the scripts for automation, they are:
Creating uniform scripts, comments, and indentation of the code
Adequate exception handling which means, how the error is handled on the system failure and unexpected behavior of the application.
User-defined messages should be coded or standardized for error logging for testers to understand.
- Choose an appropriate framework.
- Measuring the metrics- The success of sn automation cannot be determined by comparing it with manual efforts and automation efforts, but we can do it by observing the following metrics:
The percentage of defects found
Based on the time required for automation testing for each and every release cycle
Based on minimum time is taken for release
Customer satisfaction of index
Based on the productivity improvement
Automation testing is seventy percent(70%) faster than manual testing
- Wider test coverage of application features
- Reliable in results
- Ensures the consistency
- Saves Time and cost
- improves the accuracy
- Human intervention is not required while execution
- Increases Efficiency
- Better speed in executing test cases
- Re-usable test scripts
- Test frequently and thoroughly
- Number of cycles of execution will be increased through the automation
The following are the different types of software tests that can be automated are:
- Unit testing
- Integration testing
- Functional testing
- Keyword testing
- Regression testing
- Data-driven testing
- Black Box testing
Tool selection is one of the biggest challenges to be tackled before going for automation. First, identify the requirements explore various tools and their capabilities, set the expectation from the tool and go for a proof of concept.
Selecting the right tool for our requirement is quite tricky, but by using the following criteria may help you to find the best tool for your requirements:
- Environment Support
- Ease of use
- Testing of Database
- Object Identification
- Image testing
- Error recovery testing
- Object Mapping
- Scripting Language used
- Supports for various types of tests, including functional test, test management, mobile..etc
- Supports multiple testing frameworks
- Easy to debug the automation software scripts
- Ability to recognize the objects in any environment
- Expensive test reports and results
- Minimize the training cost of the selected tools
There are several functional and regression testing tools available in the market, the below-mentioned tools are the best-certified tools from the experts:
- Ranorex studio
- QTP(MicroFocus UFT)
- Rational Functional Tester
Going forward we are going to learn the Robot framework which is a keyword-driven automation framework in detail.