Realities of an Automated Tester
There are many misconceptions today involving software automation, how you learn to become an automation engineer, where you can find automation engineers, which tools you should select for your automation, what can be automated and how you go about creating an automated testing framework. In this blog I am going to discuss two of the questions I am asked most often, how you can learn to become an automation engineer and where you can find automation engineers.
The first thing we need to discuss when talking about learning automation is understanding that there are two distinct roles, that of a test automation engineer and that of an automation architect. When we talk about a test automation engineer we are discussing a role where the tester writes automated test cases as part of an agile team or automation team. It should be understood that a test automation engineer generally does not work on creating the automated testing framework or maintaining it.
So what qualifications does a test automation engineer position require? A test automation engineer must have a solid understanding of a programming language. Having a solid understanding of a programming language does not mean someone who has tested a Java or .Net application, it means you have cracked open the code and fully understand classes, methods, packages, inheritance and other programming basics. The test automation engineer needs to also fully understand Unit testing and automation test case best practices. The test automation engineer should also be comfortable working with an IDE and at a minimum, conceptually understand Continuous Integration tools.
The second role involved in automation is that of an automation architect. The requirements for an automation architect far exceed those of a test automation engineer. An automation architect must not only have high level programming skills, but fully understand advanced programming concepts such as using Unit test annotations and dependency injection. The automation architect must also feel comfortable working with Continuous Integration tools and creating/maintaining automated test environments.
On a daily basis I am bombarded by emails and phone calls from recruiters and companies asking if I know any available automation folks or where they can find them. My simple answer to this question is your looking in the wrong place! Almost every recruiter and company looking for automation engineers are pouring over the same pool of QA professionals and not understanding that these folks do not possess the required skill sets needed to be automation engineers. So where can you find the individuals with the needed skill set to work on test automation? The answer is simple, look for developers with an interest in testing. You will occasionally hear the term “Test Infected Developer” in the industry today, these are the individuals you should be looking for to fill your automation roles. One note of caution, for a number of years many companies moved their worst performing developers to automation as a way to eventually get rid of these poor performers. This has led to a stigma on the automation role with developers, companies and recruiters need to work on overcoming this stigma and emphasizing the importance of the automation role.
The last point of discussion becomes what to do with the existing pool of QA professionals. In order for the traditional QA professionals to start filling the automation test roles it becomes incumbent on not only companies, but individuals to understand that they need to learn new skill sets. While the traditional QA individuals are learning new skill sets, they can still play an important role. Many of these individuals have a deep knowledge of the application and testing basics, they can be paired with developers and automation engineers to provide application and testing knowledge. Traditional QA professionals can also be trained in methodologies such as Behavior Driven Development in order to write test cases that can be automated.