Menu

Career Tech Overview: Test Automation Engineer

February 2nd, 2021
A tech career is your dream. And you’re on your way to become a developer. But of which kind? You don’t know yet. Or perhaps you're already a developer but you would like to follow a different path within tech. In this article, you’ll get to know what a career in Test Automation is about through the professional experience of Ricardo Moura and Sérgio Martins - two of KWAN's field experts.

If you're reading this article, it probably means you're considering a career in Test Automation - so you want to be one of us, great choice! 💪 But before entering into the details of the profession, let us clarify one or two things. 

There are two types of Quality Assurance (also known as QA) - Automation Testers and Manual Testers. Automation Testers run tests with the assistance of software and scripts, while Manual Testers do it more traditionally, without using any tools.

We are the ones working in automation, the Automation Testers. That said, we answer by other names.

Quality Assurance Engineer is our official job title, but we prefer Test Automation Engineer. This one is the most commonly used on job vacancies, and also the expression we use to describe our job on LinkedIn. So that's the one we're going to use through this article.

Is it clear now? So let’s focus on what a Test Automation Engineer does and how you can become a great one!

Day-to-day of a Test Automation Engineer

Although there’s no typical day-to-day that fits every Test Automation Engineer, there are a set of tasks that are common between all of us.

Keep a close watch on the latest testing reports

This is the bread and butter of your job. This will allow you to measure both the quality of what your team is delivering and the reliability of your tests.

Troubleshoot testing failures to assess if a test needs updating or a bug needs raising

If a test is failing it’s often one of the following reasons:

1. Business rules have changed. In the ideal world, the changes to the application code will be simultaneously committed with the changes to the code that validates them, but if that’s not the case, for whatever reason, you’ll need to be updating the tests as soon as possible to unblock the pipeline.

2. A bug was introduced. Here you will have to understand the reason why it failed in order to raise a clear defect that points out to the exact problem. This allows business teams to better prioritize the defect and also allows developers to get to a solution more effectively.

3. False negatives. This happens when you have a test failure but the feature is actually behaving correctly. This can happen due to multiple reasons, but the most common ones are network issues, asynchronous loading of page components, and bugs in the testing framework itself.

There’s another case that doesn’t result in a test failure but is equally important, if not more than the others mentioned above. The false positives. In other words, when a test passes but the feature is actually bugged.

Never trust a test that never fails”.

suspicious

Liaise with the business team to prioritize features that need to be covered by the automated tests

It is important that you keep a close channel of communication with the business team, so that your efforts are focused towards what drives the most value to the business.

Implement and maintain the test automation framework(s)

In the interest of autonomy, you should be the one building the testing framework(s) from scratch. Of course, the whole team can support you but you don’t want to have to depend on them in order to implement any new test cases or even do any improvements to the framework itself. Therefore, it’s paramount that you should be the one doing it.

Touch base with the development team

Keep the communication high at all times regarding the status of ongoing development features with the development team. This will help you shorten even more the feedback loop. Moreover, it gives you the chance to better understand what is being implemented, and most importantly, how they are implementing it so that you can raise any potential issues as early as possible.

Evangelize quality during the whole development lifecycle

Being a tester gives you the opportunity to raise awareness on how important it is to factor in quality from day one. This will be vital for the project because it sets the mindset of everyone to deliver with the highest quality as possible as efficiently as possible. It helps mitigate not only bugs but also tech debt.

Responsibilities of a Test Automation Engineer

As a Test Automation Engineer, you will leverage automation in a way that allows you to continuously test your application, therefore, increasing the confidence level of what your team is developing while keeping the feedback loop as short as possible. Considering that, there are a few skills you must have (or learn and develop!).

Knowledge about the application ecosystem (web, mobile, etc)

It is crucial that you understand the circumstances in which the users will use your product, therefore, you should have a solid understanding of your application ecosystem. For example, if it’s a mobile application you should be familiar with how mobile applications work, both in terms of user experience, and the lower level technicalities, such as running it in an emulator or simulator. Finally, be aware of the multiple different ways each OS version may impact your application.

Deep understanding of the application under test (business rules)

Considering that you’ll be the one validating the expected output of any given scenario within your application, it’s expected that you have a deep understanding of its business rules. This will be a good starting point that will allow you to not only find issues but also give you the opportunity to provide feedback about any potential improvements that you can do to the current state of the application.

Knowledge of what drives the business

In order to better prioritize what should and shouldn’t be automated, you should have a clear vision of the most important features of your application. An exercise that you can do that can help you assess the importance of any given feature is “What happens if this feature suddenly stops working? How much money would the business potentially lose?”.

Good communication skills

One of the most important skills you need to have. The majority of your working days will be spent mostly communicating with technical and non-technical individuals, therefore, it’s of the utmost importance that you can convey your message clearly and concisely both to the business team and to the developers. Failure to do so will most likely result in errors of judgement from the business team, which can lead to bad triage of any issues or suggestions you may raise and in the case of the developers, it may result in wasted effort in trying to understand in the first place what the problem you’re trying to report is.

Knowledge of what the end-user needs and how it uses our application

Although this is mostly a business responsibility, it certainly helps you to have a modicum of knowledge on how the end-user behaves and what he is expecting from your application. By having this, you are better yet prepared to design, prioritize, and execute your test strategy.

The recipe to become a Test Automation Engineer

giev-it-to-me

Although a computer science degree can be a solid jumpstart, you don’t necessarily need one to be a successful Test Automation Engineer. Actually, many of us are self-taught. What you’ll most definitely need is a passion for quality and continuous improvement since we are the representatives of the end-user, therefore, it’s our responsibility towards the business to ensure that quality standards are implemented throughout the development process.

So, what skills do I need?”.

The basics of testing

“What vs. How”. We’re often focused on how to do things but instead, testing requires you to focus on the what. For example, the “How” would be focused on what tools you would use to automate any test case for any given scenario. Whereas the “What” would focus on understanding what test cases are you going to execute.

You are proficient in, at least, one programming language

Let it be Java, JavaScript, Python, C#, or any other high-level programming language. Moreover, your testing framework is in itself an application that’s testing another application so it’s of the utmost importance that you know the basic concepts of programming such as OOP (Object-Oriented Programming), BDD (Behavior-Driven Development), and DDT (Data-Driven Testing).

Basic knowledge of CI/CD

It’s important to understand what Continuous Integration/Continuous Delivery (CI/CD) is and how the automated tests fit in the Software Development Life Cycle (SDLC). Automated tests are just another cog in the huge machine that is a CI/CD pipeline. Since troubleshooting any testing failures will be part of your responsibilities as a Test Automation Engineer, it’s vital that you fully understand the circumstances in which they are being executed, such as how and when they are being executed, and against what environments are they being executed.

You are someone that can easily spot flaws - or improvements that could be made - in any system

Generally speaking, you’ll have a set of requirements that you’ll have to verify but it’s also crucial that you’re able to think beyond those. The business teams are also composed of human beings; thus those requirements are also subjected to be flawed, and as the quality gatekeeper you can certainly keep an eye out for such things and call out for further improvements.

You are fact-oriented

One of the roles of a Test Automation Engineer is to serve as the bridge between developers and the business team, therefore, in order to keep the communication clear and concise, you’ll need to deal in facts rather than opinions.

How to improve as a Test Automation Engineer?

There are many different ways to learn new things and improve as a Test Automation Engineer. You can do all sorts of things, like getting a certification, doing an online course, following other Test Automation Engineers on social media, etc.

This isn’t to say that an ISTQB certification is not helpful, as it certainly helps you have a foundational understanding of the basics of Quality Assurance but perhaps the fastest (and arguably the best, in our opinion) way to improve would be to practice/be active/be hands-on as much as possible, meaning that you’re someone that’s thrilled by technical challenges and you’re constantly looking for ways to improve your craft.

ISTQB

An ISTQB certification, at the foundation level, gives you a basic understanding of the foundations of Quality Assurance, applied to software development. There is the argument that ~75% of Test Managers would prefer for their staff to be ISTQB certified at the foundation level. Although the certification is definitely not unhelpful, empirically speaking (in the Portuguese market), we’ve been seeing a decline in the number of people that are actually certified and interested in doing so. There are certainly other ways to fill in the gaps that this type of certification would give you.

Test Automation University

You’re probably familiar with Udemy, and Test Automation University is a great alternative. Here you’ll find courses from a variety of topics, from functional to non-functional testing, different types of automation tools, such as Selenium, Cypress, and Applitools, and also development processes and working methodologies. Courses are often made by engineers that want to share knowledge across the testing community, therefore they are free 💸 and single-topic focused. We personally recommend it, for all levels of seniority.

Ministry of Testing

From tweets, blog posts, podcasts, courses (through their dojo 🥋) to a slack workspace, Ministry of Testing is a community focused on software testing and knowledge sharing. You may find them on Twitter and LinkedIn. A cool place to draw ideas from and share your own knowledge and expertise with your fellow testers on a variety of topics.

Software Testing Weekly

Software Testing Weekly is a free newsletter focused on providing the latest news and articles about software testing. Highly recommended to stay in the loop with the latest news!

The most important skill? Passion for the profession.

developer

...and a strong willingness to get started! And since you read through here, we’re guessing you already have it! 😁

Questions? We’re happy to answer them! Just use the comment section below. 👇

Leave a comment