This is a guest post by Raj Subrameyer
Most organizations realize the value of having automated testing. It helps teams speed up their testing process and make it more efficient. This being said, one of the most overlooked aspects of test automation is the initial step of designing a good automation test strategy.
Organizations must figure out what they want to automate, when they want to start, how to implement automated testing, and whether it can be used in parallel with their existing testing process, tools, and frameworks. These are crucial aspects that must be considered in order to succeed.
Irrespective of whatever domain or organization is implementing test automation, or the complexity of their products, the following three steps will assist in the process of creating and designing a strong automation test strategy.
Before starting automation, it is a good idea to have the whole team talk through answers to the below questions in a brainstorming session:
- What problems are we trying to solve using automation?
- Are there sufficient skilled resources available to work on automation?
- What is the cost vs. value of the proposed automation effort?
- How testable is the application?
- What are our goals for automation?
- How do we make automation more visible to the entire team?
- What types of tools are needed for automation?
- What are the pros and cons of going with open source vs. vendor tools?
- What process should be followed for automation tasks?
- Is there sufficient support from stakeholders to implement automation successfully?
These questions clarify the goals of automation, determine when and where automation is necessary for the project, and make clear what tools and support will be needed. By going through the questions, the whole team gets to be involved in the automation effort, regardless of their technical or non-technical backgrounds.
Make expectations visible
Once the goals, vision and use cases for implementing automated testing have been identified from step 1, a clear set of expectations should be set regarding the various deliverables and timelines the team can expect to see throughout the sprints. This is a necessary step so the stakeholders are able to see incremental progress in the automation efforts, and so they can understand whether the initiatives are working as expected or if there is a need to pivot and modify some of the approaches.
There are many ways to do this:
- Create a wiki page or a central repository that can be accessed by the entire team, where all the details of the automation efforts are documented. This information may include the modules being automated each sprint, the people working on each, and other relevant details about the individual tasks.
- Use visual aids such as whiteboards, stories or any other dashboards that are accessible to the entire team to highlight the different processes to follow to meet automation deadlines. Checklists for everyone to follow may also be useful to the team.
- Consistently update the team about the automation progress in daily standups, team meetings, retrospective meetings, planning meetings, and any other meetings where the complete team discusses different aspects of the project.
Plan the framework
Once the team decides to proceed further and start building the test automation framework, there are four major things to consider so the team is set up to build robust automation frameworks and write better tests.
1. Authoring and execution
The framework should be built in such a way that it is easy to author and execute tests without the need for in-depth knowledge of the framework. This is especially true when new people join the team or non-technical folks want to get involved in test automation efforts. Automation should be a whole-team approach.
The tests written need to be stable and passing consistently for the right reasons. Once you start noticing flaky or inconsistent tests, they should be isolated from the stable test suite and fixed immediately.
As new features are built, the automation suite will expand considerably. Therefore, you need to ensure there are reusable components that can be used for common actions performed throughout the application. This is key in keeping the framework simple, with low cohesion and coupling.
The truth about automation is that the exact tools, plugins, and structure that are needed are not known when the automation effort is started. The framework starts evolving as new features are added and tests are written. There always needs to be a provision to build your own wrappers around the existing framework to extend its functionalities. The flexibility to modify the goals of automation throughout the life of the framework is essential.
Following these three steps will help any organization create and design a good automation test strategy that works. Having such a strategy first will set up the organization for success in their implementation efforts.
Raj Subrameyer is an international keynote speaker, writer and tech career coach with a rich technical background. In his blog, rajsubra.com/blog/, he posts inspirational news, resources, and updates to help his readers lead a better life.