
Why do we drive on parkways and park in driveways?
Why do noses run and feet smell?
If Jimmy cracks corn and no one cares, why is there a song about him?
Why do we call them restrooms when no one goes there to rest?
Why do you have to click the "Start" button to stop Windows?
Most of my life, I have been told that there are no such things as stupid questions. This was usually said to encourage me, and others, to not be afraid to learn. However, I am beginning to think that there is such a thing as a stupid question. I don't mean questions like the above. Coming up with the questions above requires some thought and I suspect they all have reasonable answers. The above questions are more silly than stupid.
So what do I consider to be a stupid question? A stupid question is a question that has little basis in intelligent thought. A stupid question is a question without the context required to provide an answer. A stupid question is one that the questioner would have realized has no answer had they thought about it.
(adj) stupid: lacking or marked by lack of intellectual acuity
(noun) question: a sentence of inquiry that asks for a reply
Before I continue, I admit that I have asked my share of
stupid questions. I am, however, alarmed at the large number of
stupid questions that software testers are asking in
Internet discussion forums and newsgroups.
Here are some paraphrases of
stupid questions I've recently seen posted online:
- How can all tests be automated?
- What are the limitations of [commercial functional test tool]?
- What is functional testing? I don't want a definition, I want complete details.
- What is the industry standard response time for web applications?
- How much test case detail is required?
- What is the best automation tool?
- How do I test a [development platform] application?
- What is the [one and only] definition for [fuzzy testing term]?
- How do I do software testing?
- What is the standard tester to developer ratio?
- What's the best testing technique?
- What are the CMM procedures for a test team of more than n people?
- What is the role of the QA team?
- How do I create test data?
- How can I do exhaustive testing?
- What is the best way to find bugs?
- How many types of bug resolutions are there?
- Who decides if a bug is resolved?
- What's the difference between a requirement and a specification?
- What is the formula for [magic metric that measures testing value without context]?
Most of these questions are unanswerable because they lack context or are made with the assumption that there is one right context-free answer. These questions may lead to interesting discussions but are not answerable with one-size-fits-all solutions.
Don't get stuck on stupid, reporters. We're moving forward.
... You are stuck on stupid. I'm not going to answer that question.
- Gen. Russel Honore
Many of the "senior" testers in online discussion forums answer
stupid questions with the tact of General
Honore. They are not trying to be rude. Most are not arrogant. They are experienced. Many have learned through their own failure that there are no magic solutions for general questions. Most of the experienced testers I've interacted with online are very willing to help. They are very willing to answer intelligent questions -- even if they disagree with a premise of the question.
Testing software is a context-sensitive intellectual task. An important aspect of testing is working through ambiguity to find and test what really matters. Testing is not a purely technical domain for which single best ways of doing things can be defined and applied regardless of context. Testers need to think and ask intelligent questions.
I asked plenty of questions when I was new to testing. I was given boundaries in which to work and was given freedom to think and learn within those boundaries. I had some great mentors that taught me a great deal about testing. The mentors provided me with good documentation, answered questions, and exemplified good testing practices. Some of the wisdom of my early mentors did not become clear to me until after I failed on my own. Experience is a great teacher. Sometimes we can learn from other people's successes and failures. Sometimes we have to learn on our own.
If you are new to testing, please ask questions. If you don't understand a term or technical detail, please ask. If a requirement is not clear, please ask. If you don't understand the context, please ask. If you need help, please ask. There are plenty of people able and willing to assist other testers. It would be foolish to pretend to know what you are doing when you do not. Asking for help or clarification is not a sign of weakness, it is a sign of intelligence.
Being ignorant is not so much a shame, as being unwilling to learn.
- Benjamin Franklin
Before asking a broad question, think about it. Ask yourself if it is answerable. Do a little research. Provide some context. Show that you care about the question and the requested answer. Realize that the specificity of your question is directly related to the specificity of the answer. General questions are unlikely to have a single answer. When you get an answer, test it. Try to think of situations in which the answer does not apply. Consider what new problems are created by any solution to an existing problem.
By three methods we may learn wisdom:
First, by reflection, which is noblest;
Second, by imitation, which is easiest;
and third by experience, which is the bitterest.
- Confucius
Now, why do we drive on parkways?