Here, we are discussing about functional test automation only and non-functional test automation are covered in Performance testing & Security testing sections separately.
Automation testing approach should be aligned to the project requirements. There is no all-time fit approach, and it will depend on technologies, tools, project scope, timeline, and budget. Here, we are explaining a standard automation testing approach. Nowadays, organizations are focusing on success of faster delivery and agility in developing a quality product in today’s consumer-oriented world. By adopting test automation that helps organizations to deliver rapidly at the highest quality. Test Automation is enabling organizations to
- Faster time to market
- Significant ROI by reducing execution cycles time
- Increase release velocity through iterations
- Reduce human errors through process automation
Below is the Functional Test Automation approach to conduct Regression test, SIT, Cross browsers testing etc.
However, below are the key steps and tips to help in define the automation testing strategy.
Step 1: Requirements gathering
Coordinate and brainstorm with stakeholders regarding automation priorities, define goals and KPIs, and write down your testing requirements. Understand and outline what different types of testing to be performed, based on this types of information will help to select the right tools.
Step 2: Define the goal and scope
Define clear and measurable goal based on initial requirement gathering. Identify the automation testing scope at this stage and understand what modules of the application can be tested by Automation and what will be tested through Manual testing. It helps to define the limitation of test automation based on application business functionalities and technologies restrictions.
Step 3: Identify associated risks
Identify and prioritize the areas with the key business impact and automating those first. A risk-based testing approach helps to right prioritization and allows to create a logical order for automation, but it also enables you to stop automating at the optimal time. For example, automating low-priority tests creates unnecessary maintenance overheads, they become outdated, and often offer little or no value.
Step 4: Analysis of manual test cases for automation
Outline specific flows and features that require automation. Focus on high-value business areas, but also consider how stable and complex the flows are. Avoid developing Automating test cases that are likely to be changed a lot in the current or next sprint is usually wasteful. If existing manual test cases are available, highlight parts to be automated based on defined goal, risks, and requirements.
Step 5: Identify test data & test environment
Test data & test environment management is an important but often overlooked step of a test automation plan. Considering the GDPR limitations on the data, the best approach is to use synthetic data. Test data should be stored in external files for easier maintenance and changes to this data should not affect the test code. Furthermore, the test environment should be stable, and if necessary, testing artifacts should be cleaned up after the testing run is complete.
Step 6: Select testing tools & frameworks
Choose a right tools and frameworks to perform automation testing based on application technologies and project budget constraint. Conduct Proof of Concept (PoC) to select open-source tools like Selenium, Cucumber, Java/Python based frameworks or any commercial tools UFT, Tosca, WorkSoft or any similar tools. In collaboration with customer and other stakeholders decide the right tools & framework.
Step 7: Test development and execution
Develop automation test scripts based on identified scope of test cases and execute them on scheduled timeline. Prepare overall progress report to track the complete and pending work. Below are two handy methods:
- Track automation status in preferred test management tool. Three statuses – planned, automated, and outdated – should be enough, but can be added more fields based on needs.
- Create backlog and track work progress in identified ticket management system. This makes allocating work easy.
Step 8: Reporting
Analyzing failed tests and reporting issues are important parts of the automation process. Despite that, it often takes more time than it should to fix underlying issues. Failed tests generally stem from one of four problem areas; a process should be in place to handle each:
- Test environment issue – create a ticket for DevOps
- Defect in application – create a bug ticket for developers
- Outdated automation script – create a ticket for the QA team
- Defect in automation script – create a bug ticket for the QA team
Step 9: Define maintenance process
Test automation is a process and once tests suites are designed, they need to be maintained and the results monitored. The best way to make sure the tests don’t end up outdated and forgotten is to formalize the testing process. Creating a ticket to update outdated scripts is the first step; also need to define priorities and timelines.
Remember: Every outdated test is a potential bug that might end up in the production environment.