I'm doing QA for a small dev team and we are interviewing some candidates for an open position. I've been asked to be part of the interview process. Anyone have ideas for the kinds of questions QA should be asking devs? Any examples?
If you want to focus on quality and not on development skills, maybe you can ask the developer what he does to enhance the overall product quality and software development processes.
Questions that come to mind are:
- What steps do you take to test your own work?
- Do you have experience with and practice TDD?
- How do you practice code-reviews and what where recent results?
- What are your communication contact points with clients and testers?
Look up behavioral questions. like:
- tell me about situation when customer wanted patch before QA considered it ready, and how you estimated/explained the risks
- tell me about situation when regression occurred (bug in existing functionality which QA should catch but did not), and what happened next. What you learned? How you changed/improved process?
- tell me about situation when too much bugs were in pipeline to be tested in time for planned release, and you needed either revert some, or postpone release
- tell me about situation when you cannot postpone release, and how you planned intake of bugs so all are tested in limited time available
... and many more. Just your own real-life situation. Ask about them.
If candidate was in QA, s/he been there done it, should have scars and learning experience.
These days, there's a lot emphasis on agile development, continuous delivery, continuous deployment etc... These areas are very important irrespective of dev / QE roles. I can think of the following as of now.
- Ask questions around the common areas like best practices for faster release to market.
- Importance of Unit tests, code coverage. What are the tools used by the candidate to measure the code coverage. (http://c2.com/cgi/wiki?CodeCoverageTools has a good list of tools). Advantages of having higher code coverage levels.
- Code refactoring techniques to make sure that the code has good performance, reusability.
- Test Automation (in some companies, dev team also writes automation scripts).
- Best practices in SCM. Branching and other technologies for major / hotfix releases.
A good place to start is to ask "Tell me a story about a time you worked together with QA"
I want to hear stories like:
QA needed this debug functionality to make testing more efficient / effective and we worked together and built it.
This sort of tale tells me they understand that cooperation is critical.
At the other extreme, I don't want to hear stories like:
I had this bug ticket that we kept opening and closing, it was hilarious!
This sort of tale tells me they don't have the sense to have a real conversation instead of playing ticket tag.
Those are contrived examples of course, but after hearing stories from a few people you'll know which ones you tend to like and dislike.
Recently we have helped recruit a developer to our team. For the interview we brought a report of the bug we found recently and asked a candidate what could have been a possible root cause of the problem.
The reason for asking that question was not much to verify whether the candidate has sufficient technical knowledge --- that had been checked by other team members, developers. We were rather interested whether the candidate was willing to cooperate with a tester to investigate a root cause and how did she cooperate. We wanted to understand also whether we liked that cooperation.