I recently stumbled across this list of interview questions from back when I was hiring Software Engineers In Test for a team I was leading.
"Technical QA" means a lot of different things to a lot of different people. I found that no matter how I wrote my job postings, I always wound up interviewing candidates with an astoundingly wide range of skills and experience ranging somewhere along the gamut from senior engineer to human-computer interaction researcher.
This is a list of ideas. I’d never ask all of these questions in an interview. I’m also the kind of person who likes to skip around and I wrote this list with that in mind.
However the questions are ordered roughly according to level of technical knowledge required to answer, starting with the least technical.
*Here are 41 interview questions to ask when hiring QA Automation Engineers.”
- when did you first start using a computer?
- what was the first code you ever wrote?
- when did you become interested in QA? (“Everyone has a different answer.” —Stephen Donner)
- why are you interested in QA now?
- what blogs do you read to keep up with the QA industry?
- describe the role of QA in the software life cycle: what does QA do and when does it happen?
- why does software have so many bugs?
- would it be a good idea to automate all the tests and dispense entirely with QA?
- how does a file system work? what is a file? how does a directory “contain” files?
- what happens when you empty the trash?
- imagine you are testing the validation of a new user sign up form for a web site. what kinds of names should the validation reject? what about email addresses?
- how do Web sites protect credit cards? from being intercepted in transit? from being stolen off the server?
- what is daylight saving time?
- how do blind people use the Web?
- how good are you at figuring out how to do things using google?
- what’s an example of a sophisticated thing you’ve taught yourself to do using only resources you found on the internet? eg play ukulele, knit a sock, provision an ec2 instance
- how good are you at communicating with other people? with engineers?
- how good at command line are you?
- how would you find a file on a Mac? using only the shell?
- how good of a programmer are you?
- what programming languages are you comfortable with?
- what is html? what is valid html? what is a table-based layout?
- what is css? the cascade? the box model?
- describe what happens after I type a URL in my browser and hit return. Explain how the browser and server get from that point to a fully loaded web page
- have you used Charles and/or the Net tab in Firebug/Chrome Inspector?
- what are “boundary conditions” aka “edge cases”?
- why do people use “boundary” and “edge” to describe these types of problems? edge of what?
- what is a regular expression? what is a search pattern? a wildcard?
- how would you make the same change to two different files? to 2000 files?
- have you used an SCM (git, svn, cvs, vss, clearcase, mercurial, perforce)
- imagine you found two copies of the same file on your machine. how do you tell if the copies really are the same, or if one has some changes that didn’t make it into the other copy?
- how do engineers typically use source control branches?
- what does it mean to patch a web application?
- how does google search work?
- how do password reset emails work?
- what are some ways that passwords get stolen? how would you advise me to keep my users’ passwords safe?
- what is a botnet? what is malware?
- how does malware get onto computers?