3.5 Automation Team Members
The roles of the core automation team are important to define up front. The individuals filling those roles should have the necessary skills and experience to properly implement a maintainable, expandable automation solution. They should also be current on industry standards and have the ability to provide recommendations for changes based on the environment and user needs.
The following roles can be assigned to individuals or could be performed by one or more individuals, depending on the complexity of the software project.
The Automation Architect is the senior Subject Matter Expert (SME) in automation and is responsible for the overall design and implementation of a test automation solution. The automation architecture will be dependent on many factors, including: complexity of the system or software under test (SUT); number of interfaces to other systems or subsystems; richness of the Integrated Development Environment (IDE) controls; and technical level of automation team.
The Architect needs to have a broad vision of what current and forthcoming requirements for automation may be based on for overall system architectures. Selecting appropriate tools to meet a diverse set of needs and understanding how multiple tools may need to be integrated for complex testing and reporting requirements will need to be considered as part of the planning process.
The Test Automation Engineer is an intermediate-level technical individual who is responsible for developing and maintaining automation components and subsystems. This may include development of purpose-built functions, creation of function libraries, and documentation of the test automation components. As new requirements for automation are defined (e.g. a new "calendar" control being added) the automation engineer makes the appropriate updates/additions to the test automation solution, including documentation, to incorporate the new functionality.
There may be multiple roles for an automation engineer which may include:
The Test Automation User is the individual or individuals who are the "customer" of the test automation solution. They need not be concerned with the technical implementation of a test automation solution, but rather with the ability to use automation to execute tests and report findings. A properly designed test automation solution will allow a user to select a test, the corresponding data set, and run the test. At the conclusion of the test execution, the user should be presented with a report indicating the pass/fail status of the test and any information gathered as a result of a passed/failed test.
Often the user of test automation will be a manual tester, a business analyst, or another individual with a strong understanding of the software or system and the requirements that it needs to meet. These individuals may not have programming backgrounds and would not be productive or motivated to take on the role of an automation engineer.
By identifying and assigning roles based on skills we are able to keep each individual fully productive and motivated and allow automation to be used by the team, not just by select technical individuals.