3.4. Designate an automation specialist

An Automation Specialist would be a person that sets the standards by which the tests will be maintained.
Any time a process like this needs to be maintained in an ongoing fashion, there is a large amount of individual discretion that goes into the day to day operations of the system. While this is healthy and allows the system to evolve as needed, there needs to be one individual that is considered an expert, and can act as arbitrator when there is disagreement as to the exact details of implementation.
This individual should be the person that questions should be directed to. While it is important that everyone learn to write tests, having a single individual considered the expert forces them to accumulate knowledge as people as them questions. They become a single repository for all knowledge, while some people have some of the picture, having many of the questions filtered through one person makes that person the big picture of the problems. This further allows them to make better judgement calls in the case of disagreement.
This role is similar to and has overlapping responsibilities with the Code Auditor role, in that Automated Tests are a form of code, and should conform with the overall quality practices of the organization. However, it is also distinct from the Code Auditor role as it is more focussed on how to implement code as applicable to a testing framework. If possible, these responsibilities should be shifted to the Quality Auditor role, as maintaining the automated tests are more concerned with the descriptiveness of the tests with an eye to conformance.
This role has a pre-requisite of having a working knowledge of programming, this allows the individual to engage in becoming an expert in this specialized style of programming.

Key Points

  • The person that fills this role should have development experience, and should be familiar with Devlopment guildelines.
  • The Quality Auditor could also fill this role as this is strongly related to the QA position. Likely this role should go to QA to shift workload away from CA, though this will not work if the QA has low development experience, or not available.
  • the specialist is only to act as the expert that can answer questions, not write other people’s tests
  • This role’s word is law in their domain: on process disagreement, code quality, style guidelines. This domain overlaps with the Code Cop’s domain.

Risks


The primary risk associated with this is that it will define a Testing role again. Testing is the responsibility of all individuals on the team, and creating a “specialist” creates a role that is equal with “the person that does that stuff”. In order to maintain the role of “specialist” it is important to reinforce that the role is the person that maintains the quality of the tests. The individual in the role must refuse to write tests for other people (they should continue to write their own), rather offering advice and education to people with questions. The first time they offer to do it on behalf of another, they have sacrificed their role to being “the person that writes the tests”.