(Series #2) Building a Test Automation Team
We talked about topics to cover in our test automation strategy document in the first article of this blog series. In this second article of the series, we will cover some ideas about building a test automation team within a software organization.
The other articles cover topics as below:
- Volume 1: Building a test automation strategy
- Volume 2: Building a test automation team
- Volume 3: Choosing the right testing framework
- Volume 4: Knowing when to automate tests
The Need for a Test Automation Team
Test automation is a piece of code that tests other pieces of code. For that reason, automating tests in software organizations require people with technical expertise and skills in coding.
Writing good unit tests and providing good code coverage is possible with commitment and discipline, but a large investment of time and effort is required to create more complex integration tests or acceptance tests. If your developers are too busy to create quality tests, then it’s much better to build a team whose sole job is dealing with tests.
Today, we can automate many of the simpler, common tests performed for applications. And it’s a good thing – the need for test automation has increased in software organizations that embrace DevOps and agile methodologies. Automated testing is a great way to deliver more resilient code more quickly, and leave technical resources for more complex issues to be manually tested.
A test automation team works like its own company within the overall company. It owns the responsibility for designing, creating, and maintaining test automation in the entire organization, and consistently checks and validates product quality, and gives continuous feedback to development teams.
Roles and Responsibilities in the Test Automation Team
The development of robust testing infrastructure for applications is challenging due to the facet of constant change. The source code of applications is a living asset because it constantly changes, evolves, and grows as product management creates new feature requests as a response to users’ feedback.
For a company to take software development seriously, they need to actively maintain the source code of applications. Responsible development teams will view the source code as a high-value repository that must be carefully managed and maintained.
The code for any kind of tests, whether they’re automation tests or manual tests, should be taken just as seriously as the application code, and should likewise be maintained as a living asset in conjunction with the application code.
Every development team works to write quality software, and development managers apply various methods to keep discipline high enough to deliver the utmost quality in their products. It is critical to cultivate and maintain the same mindset in the test automation team.
The manager naturally should look for developers who can write automated tests as they create their automation team. But then the need for specialized professionals arises, making the automation team critical to application success. Below are some roles and responsibilities that cover the general requirements of this unique team.
The team leader must not only develop a test plan but manage the workload of their team members. They also coordinate with other teams to complete testing tasks. The team leader must have authority over assigning and controlling workflows for members of their team.
Test developers are responsible for developing and executing test cases. They are the experts in the functionality of the application and are responsible for analyzing and reporting the automated test results. They also know how to develop tests in any format, be it data records or scripts within a framework.
Specialists on infrastructure generally focus on maintaining the health of the test automation framework, test management, remote execution of tests, and the development of the automation.
Experts must have administrative-level access in order to successfully execute automation tasks. These tasks include initial installation and configuration of the tool, as well as designing and configuring the test task for a given project. These experts are also imperative in upgrading the test automation and environment when necessary.
These guidelines are ideal for establishing a strong automation team. If these guidelines are followed, it is very likely for teams to achieve success in the long run.
- From the veterans to the junior members of a test automation team, every member should collaborate with each other and contribute to the test automation code. By doing so, everyone takes full ownership of the code being produced.
- The test automation team manager should act as a mentor to upskill every team member in their specialized areas.
- The test automation engineers should be able to work with production code when it is necessary.
- Developers or testers should only modify production code if they feel confident enough to automate tests.
Of note, having only one test automation engineer on the team is unsustainable. If possible, assign at least one person to be the designated maintainer of automation that has been built. This role can rotate on a daily basis.
An engineer should be present in the team to manage the automation framework, while another professional should be keeping the entire team up to date by looking at the versions of the tools being utilized and the languages being used.
Team managers should monitor automation health and its usage and should be able to point out areas where tests are running longer than expected, are flaky, or fail frequently. Tools like Foresight help testing teams resolve issues pretty swiftly.
How the Team Evolves
While considering new team members to join the team, take a close look at those who are motivated to learn and conform to the approach the team has already decided upon. Investigate and learn about their experience with other teams and where they contributed their best work on those teams.
After the interview process has been completed and you’re considering who to hire, remember to be cautious of those who say they knew better than their previous leaders about what was best for their team’s success. Ask about practices they picked up from previous team members and leaders that they have applied in the past.
It’s important to find people who are open-minded and not closed off to new ways of doing things. You should also look for employees who align their work and motivation with the team’s and organization’s direction, and who don’t take their own approach without direction.
There’s always room to evolve over time and improve, regardless of what your team set-up looks like. You should never forget that automating tests help the organization save time, money, and energy, which can then be funneled into application development.