Test automation is most successful when there is collaboration amongst different team members: the product owners, business analysts, developers, testers, and of course automation engineers.
As I mentioned in the previous chapter, it’s very important to communicate the goal of your test automation and make sure everyone understands what’s needed to accomplish that goal, and more importantly, the role that they play in realizing the success of this goal.
If the goal is to receive fast and pertinent feedback, then automating any and every test is not in line with this goal. Your business analysts and product owners can assist here. They help provide the business context to the features that are developed, and can also do the same for related tests. Their insight on which tests provide the most value and therefore should be automated and run at every check-in, is most helpful. Be sure to help them understand this role that they can play in making test automation more efficient and enabling the entire team to move faster.
When the product owner understands the goal and purpose of test automation, they will also be a key advocate in pushing for the health of the automated tests. If there are tests that are failing and your team finds itself in a position where no one has the time to update the tests, your product owner should realize that without this safety blanket, the developers are not able to move as fast as they could be if the automated tests were trustworthy. I’ve seen product owners who were so invested that they included these test automation maintenance tasks in the product backlog and prioritized them with feature work. This is the level of involvement that keeps test automation goals and impact at the front of everyone’s minds.
Developers, too, have an important role in test automation and arguably they receive the most benefit. If test automation is done right, developers are able to move a lot faster with their feature development. This is because they don’t need to be as fearful about the impact their code may cause to the existing code base, because they can quickly run the automated tests against their new changes and fix anything that they may have broken before actually integrating the code.
But it’s important to help your developers understand that in order to reach this point, they have to contribute to the initiative. Developers should contribute unit tests to the overall test automation project. These are small tests that test the logic of individual functions without the need for integration of other functionality, databases, or user interfaces.
Another critical area of focus is to ensure that the features that they are delivering can be easily automated against which we’ll talk more about in the next chapter on test automatability.
Developers can also assist in updating tests that fail due to new changes they have made. This is an activity best done by them because it forces them to answer the question of ‘is the change in expected behavior valid’. If the answer is no, they can adjust their code before any damage is done. This fast feedback is extremely valuable.
So, even without leading the test automation project, developers can contribute a lot to its success. However, these opportunities for collaboration are not always apparent to them. Be sure to spell it out and educate them on how their efforts help the overall goal.
Let me take this opportunity to inform you that yes, even with a successful test automation project, you still need your manual testers. Many have made the mistake of believing that test automation is a replacement for testing. It is not. Testers are still needed to explore and thoroughly interrogate your applications. They will be the ones who will discover your most costly bugs.
And in addition to their testing, they can also be a great help to the test automation initiative by providing insights on the tests that are best to automate, and areas of the application that may need the most coverage by test automation. For those interested in test automation, they can also contribute to the triaging and maintenance of test scripts.
It’s really important that your organization understands that test automation does not replace testing nor should it be treated as more valuable. Truly believing this and making sure your testers also understand this will foster a culture where testers embrace test automation and view it as an assistant to them versus a potential threat to their jobs.