Approach for Automation Testing
In the beginning of my career as an automation engineer, I used to follow the below checklist before picking any test cases for automation:
- Is the scenario feasible for replicating in an automated manner?
- Is the application we are going to test stable enough for starting with automation?
- Is the scenario to be automated helps in smoke/regression testing?
- Is the scenario to be automated needs to be verified across multiple set of data across different environments/platforms/browsers?
I was focusing more on automating test case by test case in a black box way (UI/API – end to end layer). With time and experience, I realized that I was missing the main purpose of automation. I was able to achieve short term goals, but the approach followed was not scalable from a long term prospective. Despite using tools to generate automated tests and test data, the automation backlog was never ending.
Today I would like to share a revised check list which can be used before starting automation in a project based on my experience so far:
- Focus should be more on certifying the requirements in an automated way not just the test cases.
- Have a strategy ready to support automation activities if application is not stable, backend is not available or under development or 3rd party is not available scenarios.
- Testing pyramid helps to get a balanced outcome of automation by carefully selecting tests to be automated across different layers like unit, integration, and end to end.
- Quality models can help to identify good automation candidates from different types of testing not just the functional checks like performance, security, accessibility etc.
- Selection of tools/frameworks should be as per product tech stack. This can help both developers and tests to collaborate in effectively. We are in the era of micros services and micro frontends. Selecting a single tool or framework for the entire project may not be scalable in most of the cases.
- Running all the automated tests in CI should be the goal from day one.
- What to be automated and in which layer should be part of definition of done of each user story.
- We need good collaboration between business and entire agile team to achieve automation goals.
- Get buy in from business stakeholders and measure periodically the progress.