Oh, Those Lovely Interviews

I have been browsing through the recent job postings for different QA roles lately, and I realized that there is only one thing in which these postings differ from each other – and this is the stack listed. And maybe the company description which tells us how great that company is, like they have bean bag chairs, table tennis, video games, etc.

I understand that it is not easy to write a job ad that stands out, from which I could predict that ‘yes, these people really know what they are looking for in a candidate.’

Nevertheless, one applies. What can go wrong? One might ask.

Well, a lot!

It’s quite common at automation tester roles to send a homework out to the candidate before the on-site interview. These are HackerRank tasks in most of the cases. Even if you were applying for a job where you had to implement test cases for UI testing, you would be given a task like this as a homework test:

2

or like this:

We consider a string consisting of one or more lowercase English alphabetic letters ([a-z]), digits ([0-9]), colons (:), forward slashes (/), and backward slashes (\) to be adorable if the following conditions are satisfied:

  • The first letter of the string is a lowercase English letter.
  • Next, it contains a sequence of zero or more of the following characters: lowercase English letters, digits, and colons.
  • Next, it contains a forward slash.
  • Next, it contains a sequence of one or more of the following characters: lowercase English letters and digits.
  • Next, it contains a backward slash.
  • Next, it contains a sequence of one or more lowercase English letters.

Given some string, s, we define the following:

  • s[i..j] is a substring consisting of all the characters in the inclusive range between index i and index j (i.e., s[i], s[i + 1], s[i + 2], …, s[j]).
  • Two substrings, s[i1..j1] and s[i2..j2], are said to be distinct if either i1 ≠ i2 or j1 ≠ j2.

Complete the adorableCount function in the editor below. It has one parameter: an array of n strings, words. The function must return an array of n positive integers where the value at each index i denotes the total number of distinct, adorable substrings in wordsi.

Input Format
Locked stub code in the editor reads the following input from stdin and passes it to the function:
The first line contains an integer, n, denoting the number of elements in words.
Each line i of the n subsequent lines (where 0 ≤ i < n) contains a string describing wordsi.

Constraints

  • 1 ≤ n ≤ 50
  • Each wordsi consists of one or more of the following characters: lowercase English alphabetic letters ([a-z]), digits ([0-9]), colons (:), forward slashes (/), and backward slashes (\) only.
  • The length of each wordsi is no more than 5 × 10^5.

Output Format
The function must return an array of n positive integers where the integer at each index i denotes the total number of distinct, adorable substrings in wordsi. This is printed to stdout by locked stub code in the editor.

Eventually one finishes the homework assignment, and then an on-site interview is scheduled. What can go wrong? One might ask. Again.

Well, a lot!

For example,
it can happen that your work experience is not being asked. They have your CV but then they are not asking you to tell them about your work experience.
And/Or
It can happen that you are given a piece of blank paper and pen, and you are being asked to write then an algorithm for a certain problem.
And/Or
It can happen that you are being asked to elaborate concepts that you learned in courses/school before.
(All of these are real-world examples.)

When I find myself in a situation like this I ask myself, how do they ensure that the candidate has a quality mindset?

They care about quality, they say.
Quality is built in the product, they say.
Quality is the most important for the company, they say.

Then how do they ensure that the candiate actually know what quality is, if their questions are not related to quality aspects?

So the question comes up in my mind:

When you hire someone for a QA what exactly would be your checklist to make sure that the candidate has the right mindset?

When I’m the one who is conducting an interview I would like to know that if the candidate learns and improves herself/himself constantly, if s/he can represent strong quality mindset in the team in which s/he will work, and I would like to know more about her/his communication style and problem-solving skills.

What is in your checklist? 

Back to the job ads…

I don’t care if the company where I’m applying to is having video games. I prefer to choose the company that actually knows what quality is. If someone applies to a company because ‘woooow, they even have fruit day’, you don’t want to hire him/her, believe me.

One more question to the end.

How do you improve yourself as an interviewer?

3 thoughts on “Oh, Those Lovely Interviews”

  1. I have to agree that more and more test interviews are really just software engineering interviews that sometimes have a person ask a couple testing questions.

    That said, I learned a lot from one of my favorite interviews. First, the homework assignment was to implement a function for a bowling game. Given a list of integers to represent pins knocked down in each round, calculate the final score for a player and return an integer. The solution with unit tests should be submitted to GitHub, and the readme should describe my overall testing approach. The instructions also included some rules of the game for reference.

    I decided that I would write a whole bowling game that randomly generated the number of pins knocked down, and I implemented a test harness to insert/intercept command line input/output. I wrote some unit tests, integration tests, and finally acceptance tests. I checked my solution into GitHub, and linked my repository to Travis CI.

    The on site interview included a discussion regarding a case or two that I left out, and why I chose that approach. I later learned that the same interviewer added comments about how the bowling came would be a command line game, and you should implement as many types of tests as you can think of. They also added comments to push candidates to integrate a CI environment.

    I suppose this is a second hand account, but I felt the process lead to a much more productive interview where myself and the interviewer were talking more about how we could work together rather than focusing on what CI is or how to write code. I have used this approach a couple times in my own interviews, and even came up with my own version with different card games.

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s