In the software industry there is now a general understanding and agreement that writing and maintaining a suite of automated tests alongside production code enables a team to develop the application/system in a safer environment. By safer I mean one where the tests provide fast feedback to those committing code, such that the risk of inadvertently breaking or changing existing functionality is greatly reduced.
The question I often hear though is “Who should write and maintain the tests?”.
There are many different viewpoints on this, and many project constraints that can influence the best implementation. However I believe there still exist basic guidelines which help, not only on how staff can work within a team but what companies should look for when recruiting a development team and what to expect from each individual and the collective.
The following are guidelines for team members to consider before becoming involved in test automation.
1) Only work on test automation if you have the skills to work on production code if required.
2) Only work on production code if you have the skills to work on test automation if required.
3) In case of 1) or 2) not being true, pair with someone who meets the requirements of 1) and 2) until it is.
4) The team must own and contribute to test code, not certain individuals or disciplines within it.