February 22, 2009

Ask Great Questions!

One of our Product Managers recently responded to an email thread that was going around with this:

"As usual, Joe asks great questions!"

I was flattered.  It really pleases me when I hear that about anyone on my team, as I consider that a very high compliment for a tester.  One of the principal causes of software bugs is miscommunication, and asking great questions is one way (perhaps the best way) to prevent bugs before they make their way into code.

Ask All of the Stakeholders
  • Is this what we need?
  • What is the relative priority of this work versus all other work I may have?
Ask the Customers
  • What problems are you seeing?
  • What is most important to you?
Ask the Requirements or Product Manager
  • What does X mean?
  • What is missing here?
  • What should happen if I do Y?
  • Which of these features are "musts", and which are "nice to have"?
  • What is the expected volume of this system?
  • What are the performance needs?
  • In what environments (OS, Browser, database, etc) must this system execute?
  • Into which locales/languages will this system be released?
  • Are there any standards (corporate, UI, legal, etc) that are relevant?
  • What are the security requirements?
Ask the Schedule
  • What are the milestones?
  • When must this system ship?
  • Is there any room for slippage?
  • How accurate must my schedule estimates be?
  • When do I expect to receive each feature?
  • How quickly must I determine if a build is testable?
Ask the Documentation/User Manual/Getting Started Manual
  • What is claimed in writing about this system?
  • What examples are written?
  • What is suggested for users to try first?
Ask the Developers copyrightjoestrazzere
  • How extensive will your unit testing be?
  • Are you using any new technology?
  • What worries you about this system under test?
  • Are there any other tests you would like to see performed?
  • Are you getting what you need from me?
Ask Yourself
  • How detailed should my Test Plan be for this system?
  • How much of my testing should be written into Test Case?
  • How can I best take advantage of Test Automation here?
  • Where are the boundaries in this system?
  • How do I make this error message appear?
  • Is this a bug, or is my test invalid?
  • What's the simplest, most straightforward way to reproduce this bug?
  • Is this bug report clear enough for the intended audience?
  • What happens if I try this again, in a slightly different way?
  • What would a new user do here?  Whould an experienced user do anything differently?
  • In what order should I execute my tests, so as to give the most important feedback first?
  • What else should I test now?
  • What tests haven't I tried yet on this system?
  • What can I do today that would have the most significant positive impact on quality?
  • What do I need to learn, in order to be effective in testing this system?
  • What do I need in my test lab to be successful?
  • Do I have enough help?
  • Am I proceeding on a path that will complete on time? 
Ask Other Testers
  • Do you have any advice or tips on testing this system?
  • When you tested a prior version of this system (or one like it), how did it go?
Ask the Product Team
  • Who does what?
  • How often will we meet?
  • What do we need to do to communicate effectively during the project?
Ask Your Boss
  • How am I doing?
  • Am I spending my time wisely?