Interviews for software testers vary with the company, job needs, and interviewer. Here are some of the types of questions I’ve seen at Microsoft and other companies, and my advice to interview candidates for each.
Behavioral questions / “tell me about a time when …”
These questions try to find out how you’ve approached challenges in the past, since that can be a good predictor of your future. For example, “Tell me about a time when you had a conflict with someone you worked with” or “tell me about a time when your work was late and a deadline was approaching” These questions can probe time management, taking on new challenges, and thinking creatively. Areas like the Microsoft Company Values would often be covered with these sorts of questions.
Behavioral question advice
Try to relax, be yourself, and answer honestly. Tell a good story that shows you succeeding or learning from failure. Think quickly about the beginning, middle, and end of the story and key points you want to make. Don’t portray yourself too negatively. An answer like “well I punched him and was arrested” wouldn’t be the best answer for a question on resolving a work conflict.
Testing questions / “how would you test…”
Experienced testers develop skills that help them test. Unfortunately, testing skills are not taught in most computer science curriculum, so an interview for a new college hire often focuses more on assessing testing aptitude. For someone without testing work experience, the interviewer is looking for passion and creativity, and the ability to think about what bugs could be in the code. Example of these include “Test the font dialog in Word”, “How would you test a door”, “Test a shopping website”, etc.
Testing question advice
Ask questions to resolve ambiguity and expand scope, if needed. Expanding scope shows you can think about the bigger picture. Ask about the customer requirements. Ask how customers will use it. Ask about the developer / development process / previous bugs. Generate LOTS of test ideas! Break the problem (or software application) into smaller units, and focus on each. Equivalence classes / boundaries: group ranges of values that might be equivalent internally (e.g. month has classes 1-12, <1, >12, negative, non-integer, non-numeric, out-of-range). Within each range, pick exceptional / borderline values (e.g. month values 0, 1, 12, 13, -1, 1.1, “AA”, MAX_INT+1). Non-functional test areas: think about tests for accessibility, performance, stress, concurrency, globalization / localization, security, usability, compatibility, and more.
Coding questions / “write a program to …”
These questions attempt to assess the learned skill of programming. Although I’ve worked with great testers who’d rather not code, it is considered an important skill at Microsoft, since testers need to express their test ideas in automation and tools.
Coding question advice
Ask questions to resolve ambiguity and ask to reduce scope, if possible, by asking if preconditions can be assumed. Reducing scope makes it easier to solve the problem in a limited amount of time. If possible, pick the programming language with which you’re most comfortable. Write the function prototype first (identifying inputs + outputs). Ask about preconditions for inputs. Think out loud. Think about the algorithm! Before writing the code, describe some tests and consider special cases. Use standard API’s, STL, class libraries if you know them.
Code reviewing questions / “spot the defect …”
These questions attempt to assess the ability to spot defects in code.
Coding reviewing advice
Think out loud. Ask about any language features that you’re not sure about but might matter. Skim the code quickly then look in more detail.
Puzzle questions / “there are twelve coins and you have a scale …”
Microsoft generally doesn’t ask these sorts of questions anymore, since many at Microsoft think they aren’t good predictors of work behaviors. These were common years ago at Microsoft.
Puzzle question advice
If you do get asked such a question, ask more about the problem and think out loud. Don’t stress if you don’t get the answer.
Domain questions / “From your pet grooming experience, how would you trim ..”
Do you have experience with statistics, accounting, car manufacturing, security, performance, grocery store design, or some other domain relevant to the position? Expect questions to test the depth of your knowledge.
Domain question advice
Don’t claim to be an expert if you’re not. If the interviewer knows more about a narrow area than you, it reflects badly on your claims of expertise. Be honest about what your limitations are and highlight real experience in the area.