Software testing is the process of evaluating the actual software product meets expected requirements and ensuring that the software product is defect-free.
Test automation is using tools to do repetitive testing tasks to reduce human intervention and achieve higher effectiveness.
Speedup test execution
For example, to test a single API call by a human might take few minutes but with automation, it can be done in seconds likewise it is faster.
Avoids human errors
Machines are less error-prone. So we can reach high accuracy with these repetitive tasks.
Large test cases can be run even at night without humans
Test what manually impossible
For example, testing a function with 1000 inputs manually is quite impossible. But with automation, we can do it easily.
Automation tools are cheaper than humans.
In the software testing process unit testing covers a large portion. So it lies on the bottom of the pyramid. Then automated component tests, automated integration tests, automated API tests, automated e2e tests lie on the pyramid.
Manual exploratory tests cannot be automated. Those tests are done by testers with experience in the system.
Test Automation framework is a supporting structure with rules, guidelines tools to automate the testing process.
- Linear Automation Framework
- Modular Based Testing Framework
- Library Architecture Testing Framework
- Data-Driven Framework
- Keyword-Driven Framework
- Hybrid Testing Framework
- Increase reusability
- Increase maintainability
- Reduce complexity
- Improved reporting
- Improves error handling
- Improved productivity
To gain the maximum benefits of using a test automation framework, we should define the scope of automation and we should select the right automation tool and framework. For this, we should have a better understanding of the testing pyramid. And we should follow standard scripting standards and also we should consider the team's preference based on their experience.