An interview

How to prepare for your next test automation interview

A job interview can be a nerve-racking experience even for the most experienced, skilled, and highly sought candidates. You need to be as prepared as possible for every scenario that could come your way, but how can you prepare adequately? 

Here are four strategies test automation pros can use to prepare for an interview and increase their chances of success. 


World Quality Report 2017-18: The state of QA and testing

Mindset matters: Think like a developer

Companies nowadays say they are looking for automation engineers, but what they’re really looking for are software developers who test. So the secret to acing your next test automation interview is to go in with the mindset of a developer.


In other words, think of yourself as a developer, as opposed to an automation engineer who does testing. This frees you from the trap of thinking only about how you can test and automate applications, and puts you in the sphere of how developers think, read, and write code.

This reframing of mindset will equip you to respond well to questions and scenarios presented during the interview. Organizations want to know how good of a developer you are when it comes to writing automation test cases and building automation frameworks. The reason: The more solid your development skills are, the more solid your automation testing skills will be.


Know how language versions differ

You may consider yourself proficient in a programming language, but true proficiency means knowing the differences between versions. Can you explain the differences between Python 2 and Python 3 or between Java 7 and Java 8? Interviewers are going to want to know that you do.

Understand the basics of programming

Automation engineers in testing must go into interviews with some understanding of data structures and algorithms. Familiarize yourself with the basics.


Algorithms

Algorithms are sequences of steps or instructions that can be followed to provide a solution to a problem.
 Interviewers have developed challenges to test candidates’ ability to develop algorithms. Some examples:

FizzBuzz challenge: You are asked to write a program that prints out numbers from 1 to 100 under the following conditions: Multiples of three, (3, 6, 9, 12, etc.) must be replaced by the word Fizz in the printout, multiples of five, (5, 10, 15, 25, etc.) must be replaced by Buzz, and multiples of both three and five (15, 30, 45, etc.) must be replaced by FizzBuzz. A good step-by-step approach to solving the FizzBuzz challenge can be found here.

Palindrome challenge: Write an algorithm that checks if a word is a palindrome—a word or phrase that is spelled the same forward and backward, such as madam or dad—by reversing all the letters in the word and then checking to see if it remains the same.


Anagram challenge: Similarly, this algorithm will find a word’s anagrams. For example, the algorithm will tell you that the word car can be rearranged as arc and the word iceman as cinema.


To learn more about algorithms, including sequential search algorithms and recursive algorithms, check out HackerRank.


Data structures

Interviewers will probably want to verify that you have a basic grasp of data structures. One way data structures can be used in test automation is by implementing user interface (UI) maps using dictionaries.

UI mapping is a test automation design pattern that is used to keep web elements in one central location. The advantage is that updating web elements will be easier because they are all in one place. Without UI mapping, test automation engineers would have to change every place in their test cases where web elements exist, which can be a nightmare to maintain.

Below are some other data structures you should be familiar with when preparing for any test automation interview or test automation role. 

A data structure can be thought of as a container where data (objects) are stored and organized.
 Types of data structure include:

  • Lists: A list can be seen as a container that stores data in a specific order. But lists are mutable: Items can be added or removed from the container that stores the data.

  • Tuples: Tuples also store data in a specific order, but they are immutable: Once a tuple has been created, it cannot be modified. You cannot remove, add, or change the data objects within the container once it has been set up.

  • Dictionaries: Dictionaries link keys to values: Each data object is linked (or mapped) with its key/value pair. To access data in a dictionary, you look up its key in order to obtain its value. In addition, dictionaries are mutable (you can add new key/value pairs to them). However, unlike with tuples and lists, data is not stored in a specific order.

  • Stacks: Stacks are like lists in the sense that you can add and remove data from the container. However, with stacks, you can remove only the last item. Removing items (objects) from a stack is called “popping.” Adding them is called “pushing.” Stacks are last-in-first-out (LIFO) data structures. 
  • Queues: A queue is a first-in-first-out (FIFO) data structure, where the first item added is the first item that can be taken out of the queue.

Eliminate uncertainty

When presented with a challenge during an interview, don’t hesitate to clarify the requirements. You will not only eliminate ambiguity and defects in your solution, but you will also demonstrate that you understand the importance of requirements gathering in minimizing defects.

 And the interviewer will get insight into how you go about solving problems.


Prepare to succeed

As the saying goes, failing to prepare is simply preparing to fail. But doing preparation will make you more confident—as you should be, since the hiring manager and hiring team wouldn’t go to the trouble of screening you and bringing you in if they didn’t want you to win.

World Quality Report 2017-18: The state of QA and testing
Topics: Quality