Test Automation Strategy
Test Automation is a software testing technique that performs using special automated testing software tools to execute a test case suite. The automation testing software can also enter test data into the System Under Test, compare expected and actual results and generate detailed test reports.
Why Test Automation
- Error or Bug-free Software: Automation testing is more efficient for detecting bugs in comparison to manual testing. Run regression automation test when deployment help QA to make sure the new changes not impact other feature.
- No Human Intervention: Manual testing requires huge manpower in comparison to automation testing which requires no human intervention and the test cases can be executed unattended. QA be able do other task when automation test running.
- Increased test coverage: Automation testing ensures more test coverage in comparison to manual testing where it is not possible to achieve 100% test coverage. By tincreased test coverage of automation test, it will be help QA to faster in the test.
- Testing can be done frequently: Automation testing means that the testing can be done frequently thus improving the overall quality of the software under test. Automation test help QA to do regression test.
Minus Test Automation
1. Complexity : Automated tests can take longer to produce than manual tests, particularly if poorly planned, and they might also be more difficult to integrate into your development workflow. If there are new element on your application, they need to fix flaky to update new element.
2. High start-up expenses : One of the biggest disadvantages of automated testing is that it requires a lot of time and money to install. However, this investment can often be recouped quickly in terms of improved developer productivity and more reliable results. Other that, need to a lot of time to learn & implement it.
3. It must be redone for each new environment : Your automated tests must be updated whenever there is a change in one environment for the results to be reliable. Unfortunately, to ensure that your automated test scripts are functional in your local development environment, CI system, and production settings, you will need to rewrite them in several different places.
Which Test Can to Automate
- Monotonous test: Repeatable and monotonous tests can be automated for further use in the future.
- A test requiring multiple data sets: Extensive tests that require multiple data sets can be automated.
- Business critical tests: High-risk business critical test cases can be automated and can be scheduled to run regularly. In agile, usually mention it with priority zero test case.
- Determinant test: Determinant test cases where it is easy for the computer to decide whether the test is failed or not can be automated.
Which Test Can’t to Automate
1. Negative tests/Failover tests : We should not attempt on automating negative or failover tests.in the several case, we need to automate negative test. But should be better if we prioritize the positive test
2. Ad hoc tests : These tests may not really be relevant to a product at all times and this may even be something that the tester could think of at that stage of project initiation, and also the effort to automate an ad-hoc test has to be validated against the criticality of the feature that the tests touch upon.
3. Tests with massive pre-setup : There are tests that require some enormous pre-requisites. The 3rd party software could be anything and the setup may be complex in nature and if such scripts are automated then these will forever be dependent on the function/setup of that 3rd party software.
4. Pixel, text, color detail. We should not attempt on automating the things about design application. Because many of automation test cover for functional of feature application.
- Test tool selection : Research test tool that fit with project or application. Use test tool open source will be the best idea.
- Define scope automation : Scope automation in your project or application, be able define based on priority and positive test.
- Planning, design, and development : Planning and design should be include in process test tool selection and define scope automation. And than able be add process off schedule and timeline of create automation test. Development is start code to create automation test, add file code, commit file code, push file code, pull request code, review pull request, until merge code into repository.
- Test execution : Execute test automation every deployment, to ensure deployment not impact new bug in application.
- Maintenance : Maintenance test automation from flaky caused by change element of the page your application.
- Selenium : A browser automation framework & API test platform, provide programming language Ruby, Java, Javascript, Python.
- Cypress : Open source Web test platform, provide programming language Javascript.
- Robot Framework : Open source Web, API, robotic process automation (RPA) test platform, provide programming language Python.
- Playwright : framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API. TypeScript, JavaScript, Python, .NET, Java.
- Appium : Open source mobile test platform, cross-platform test automation tool for native, hybrid, mobile web and desktop apps.
References
https://www.guru99.com/automation-testing.html
https://www.javatpoint.com/advantages-and-disadvantages-of-automated-testing
https://www.geeksforgeeks.org/software-testing-automation-testing/
https://www.softwaretestinghelp.com/automation-testing-tutorial-1/