Designing test automation framework is team activity
Test automation framework is defining how your product testing will be automated. It plays a vital role in success of test automation. If planned well, structured well and designed well, it will reward back with high return of investment. If we analyse the failures of test automation, the basic reason will be no other than unsuitable automation framework in place.
While designing framework, it is required to look at it from different perspectives. Developers, product people, designers, testers, if applicable stakeholders, we need to understand what each discipline in team expects from test automation. Few questions that can give brief on this:
- Which language the test automation must be written in? Generally its best practise to have it in product development language, so it minimises extra skill requirements and also avoid few hurdles with integration tests.
- How should the test automation run? Should it be part of build deployment? Should it block build deployment on failures? These questions have different answers for every team.
- Which tests should be automated? Not every test must be automated, some tests are better to test with manual intelligence and some require high investments to automate.
- When and who adds new tests in automation? Does it be part of development tasks or testing tasks?
- What elements in report does product team or stakeholders expect out of automation run?
- Do designers have specific guidelines for UI automation?
This information will help us to decide on framework approach to go for. There are few standard approaches which are followed in IT industry. To list few:
- Page Object Model
- Data driven framework
- Keyword driven framework
- Linear scripting framework
- Hybrid framework
- Scriptless / Codeless automation
We will look into details of each one in our later blogs. But there are few guidelines in general that will help every framework to ease out adding new tests and maintenance of existing tests.
- Follow coding standards. Whenever we write code, first and foremost rule that applies is following coding standards. There are some plugins and libraries that can be used in IDE’s to make everyone in team to follow same coding rules.
- Make it modular. Try to break down the framework in possible different modules. This will help in maintenance and avoid side impacts of changes. It will avoid duplicate code and provide the ability to reuse the methods internally.
- Reusability. Try to reuse existing free, open source or even paid libraries. Stop reinventing the wheel and focus on your purpose. There are lot of libraries and tools which can help you in test automation. We will look on some vital ones in our next blogs.
- Extensibility. Making it modular should help to extend framework with new features in future. Framework should have open ends which can be scalable. Like list of actions your framework supports or type of data it can process.
- Reporting. For team exterior to framework, reports are only their interested element in framework. So generating well detailed reports and providing them to run automatically, will increase team love more love for test automation.
Increasing team involvement in designing test automation framework will only lead to most suitable and successful test automation. And importantly, it will be team’s framework.
Our next blogs will focus on different approaches in developing framework and their nitty-gritty.
22, January - 2021