Testing is a major part of any application development life cycle. There are different types of testing based on the application stage – Unit testing, integration testing, system testing etc. Then there are different types of testing process – Manual testing and Automation Testing.
Manual Testing vs Automation Testing
As the name suggests, manual testing requires human effort in running test cases without the use of any tools. Whereas, automation testing is performed by using some tools and test scripts.
What is Automation Testing?
When testing tools like Selenium, QTP, Load Runner etc. are used to write and execute test cases, it’s called Automation Testing.
What is Functional Automation Testing?
Functional Automation Testing is the process of identifying various functionalities in the project which need to be repetitively tested and then developing and executing Automation Scripts (Programs) to validate the functionalities.
Advantages of Automation Testing
- Automation vastly increases the test coverage
- Automation optimize the testing speed
- Automation improves the testing quality
- Automation reduces the cost of testing
- Automation reduces the test execution time
- Automation does not require Human intervention. We can schedule tests to run overnight without human intervention.
- Automation scripts can run at any time and any number of times.
- Reusability of scripts on other applications.
- Easy to test Stress, Performance and Load
- Saves manual efforts.
Disadvantages of Automation Testing
- Debugging the test script is a major issue. It may lead to consequences if any error is present in the test script
- Proficiency is required to write automation test scripts
- Test maintenance is costly
- Maintenance of test data is difficult.
Which Test Cases can be Automated?
Test Cases should be automated if the following conditions are met.
- Tests that are used repeatedly
- High-Risk test cases
- Tests that tend to cause human error
- Test Cases that are impossible to perform manually
- Tests that take lot of time to do manual testing
- Time consuming test scenarios
- Regression test suites
- GUI items
- Database connections.
Which Test Cases should Not be Automated?
- Test Cases for which requires frequent changes
- Test Cases related to UI
- Exploratory tests
When to Automate?
- When projects are large and critical
- Once application becomes stable
- When enough time is available for testing
- When frequent regression testing needed
- When manual works are high.
When not to Automate?
- When application not even tested manually atleast once
- When requirements changing frequently
- When there is no much regression
- When there is no time and resource constraint.
Note: Automation Testing is additional support to speed up the testing activity but not for replacement of Manual Testing because everything cannot be automated.
How to decide what to Automate and what not to Automate
Automation Testing Tools
- Test Partner
- Silk Test
QTP, RFT, Silk test are Licensed tools and whereas Selenium is an open source tool.
Automation Testing Process
Following steps are followed in an Automation Process:
- Automation Test Planning
- Test Environment Setup
- Analyze test cases
- Developing test scripts
- Enhance test scripts
- Scripts debugging
- Scripts execution
- Analyze test results
- Defect reporting
Automation Testing Tool Selection Criteria
Selecting an automation tool largely depends on application technology. However, some other points to consider while selecting an automation tool are:
- Cost(License Price)
- Technology support
Planning, Design and Development
During this phase, Tester creates an automation test strategy and plan, with the following details:
- Automation tool selection
- Automation Framework design and its features
- In-Scope features to be tested of automation
- Out-of-Scope features to be tested of automation
- Automation testbed preparation
- Schedule and Timeline for scripts generation and execution
- Deliverables of Test Automation
In this phase, automation scripts are executed written by testers. To execute the scripts we need input test data before testers run the tests. Once scripts execution completes testers provide detailed test reports.
As new functionalities added each time to the System Under Test with successive cycles, Automation Scripts need to be added, reviewed and maintained for each test cycle release. Maintenance becomes necessary in order to improve the effectiveness of Automation Scripts.
Framework for Automation
A framework is a set of guidelines which helps us in
- Less Maintenance of code
- Maintaining consistency in overall testing
- Improves test structure
- Minimum code utilization
Types of frameworks used in automation testing:
- Keyword Driven Framework
- Data Driven Framework
- Modular Framework
- Hybrid Framework
Types of testing that can be automated
- Unit Testing
- Integration Testing
- Functional Testing
- Smoke Testing
- Regression Testing
If testing is one time needed then we should go for manual testing. If testing is frequently needed then we should go for automation testing. The right automation tool selection, testing process and right selection of the testing team are the key players for automation testing to be successful.