Who automates your tests ?

Whom do you assign to work on automating your tests ?

Ideally, a person who is chosen to automate tests should have sound development and testing skills. Often times, people are chosen who might have expertise in either of these areas. This can be worked upon. If your test automation engineer is predominantly from a testing background and lacks development skills, you need to check if this person can pick up the required development skills and demonstrate the necessary rigor and discipline.

Generally, test engineers who desire to be programmers, jump at the opportunity to automate tests. This provides them an opportunity to develop their programming skills. While doing this, one must make sure that these engineers are well grounded on the automation requirements and focus on delivering them rather than getting carried away with the programming task. Sometimes, you may not need to automate all your tests given the available time and resourcing. Here, the ability to focus on those areas that can provide maximum return on investment is important.

A reason for requiring development skills is the need for focus on aspects such as maintainability, re-usability, reliability and importantly, the ability of the test automation suite to easily adapt to changes to the system under test. Test automation needs to be approached with the same rigor and commitment as a regular software development project.

Sometimes, developers get assigned to do test automation. In this case, an evaluation needs to be done to ascertain if this person can gain understanding of the testing discipline and develop a healthy respect for the function. When in-house engineers aren't available, it may be the case that contractors are employed to perform test automation. The advantage here is that you are likely to get engineers with matching skill-sets. However, one must be aware of & take appropriate steps to mitigate any maintenance challenges once the contractors have departed. Having a sound automation framework in place and reviewing conformance to stated standards and guidelines can be useful.

In some groups, the new college graduates, interns or junior programmers are assigned to work on automating tests. The argument may be that these folks have spent a lot of time learning about programming in college and would be able to apply their “fresh” learnings to automating tests which is a type of programming activity. Also, these new comers often are glad to have the chance to demonstrate their competence and creativity and show interest. In some cases, it may be that the management wants to keep these junior folks engaged on some relatively lower risk activity and hence assigns automation to these engineers. If what they develop, works – good and if it doesn't it can be shelved with low cost incurred. The new comers often are not well trained on the testing function and often end up using their programming skills to creating complex test automation suites that can be hard to maintain without meeting testing requirements.

Worser still, is the attempt to assign automation to the “lower-performers” from development or testing. These folks have poor skills, commitment and motivation in either area. The chances of success in this case is very low. Test automation requires skilled, committed and motivated folks who can work effectively with both development and testing teams.