Adopting the role-based approach is useful for a testing organization in order to control the whole procedure with delimited responsibilities and skill-sets. Different roles that support a testing organization are the test manager or test lead, test designer, system matter expert, and test automation engineer. There are many additional roles in larger testing organizations, like test methodologist, test architect, environment support etc.
An automation engineer typically design, develop, test and deploy a test automation solution for a product or software. The ultimate goal is to reduce the manual testing effort and introduce automated testing as much as possible. To do so, the test automation engineer applies appropriated technologies with a minimum set of scripts or codes. These are able to achieve both short and long-term targets of the testing organization. Automated testing focuses more attest effort than test coverage. The manual test cases, which require a large number of resources and involve longer preparation time, should be automated for the convenience of the testers.
Test automation engineers are responsible for the deliverables, which generally depends upon the test automation framework and the test phase. The test phase involves unit testing, acceptance testing, as well as system and function testing.
A repetitive unit testing is conducted before incorporating the codes in the current build of the software. Unit testing is performed by the application developers and test automation engineers. The process involves many Agile development paradigms, which includes the concept of unit testing in the standard development cycle.
Automated testing is helpful to expedite system and function testing. Appropriate tools and technology can enhance the test preparation efficiency and create automated test cases. Test automation also facilitates acceptance testing, where the automation solution is treated as the part of the system being deployed. For a particular test phase, the automation engineer hands over the power to test designers, who need to find out the simplest solution for fulfilling the requirement.
Test automation frameworks are necessary for successful implementation of automated processes. Testing organizations have implemented several automation frameworks in order to become commercially successful. The skills required for developing within a particular framework illustrate the skill-set required by the test automation engineer. Amongst different test automation frameworks, record and playback framework was the first successful solution for automated testing. In this framework, the test automation engineer keeps the records of necessary actions and steps against the playback tools and applications.
In cases where simple records and playback paradigms were not effective and the test automation procedure was not available for the non-technical users, something more needed to be done. In order to make the test automation solution more transparent and robust, many commercial vendors extend the playback frameworks and records. The extensions involve component-based, keyword-driven and data-driven solutions. The automation test engineer has to develop codes for the extended framework and deploy the solution suitably.
In opposition to the extensions of playback paradigms and records, current technology has invented keyword-driven frameworks for commercial purpose. This allows even the non-technical users to access the automation facility, without necessarily being a developer. The automation engineers focus more on automation procedure than constructing automation tools. Performance testing and testing frameworks offer a useful mechanism for enhancing transactions for the applications under test and for understanding the behavior of the application when the load is increased. The automation engineer plays the role of determining how the load will be applied, how to record behavioral response and control the application.
The test automation engineer should have a clear-cut idea about the test mandates and how to apply automation procedure to fulfill these mandates. The challenge lies in the determination of what to automate and in which sequence. An experienced automation engineer generally comes up with the optimum skill-set in order to get maximum benefit out of automation investment.
Summary: A test automation engineer plays a significant role in automated software testing during different test phases and automation frameworks. He is the one to take necessary responsibilities for the successful implementation of test automation processes and decide on what to automate and how to do it.