What is quality? What makes some people notice bugs and other people not notice them? Are defects always bad? Software test engineer Bernie Berger has spent time considering the nature and essence of testing. This article takes an introspective approach by posing a list of philosophical questions for testers to consider.
I'm not a philosopher. I am, however, an experienced software tester who likes to think about what he's doing and why he's doing it. Which, on second thought, might make me a philosopher.
At a recent conference, James Bach, a well-respected software testing consultant, described software testing as "organized skepticism" toward software. Along those lines, if we are skeptical about the specific behavior of software, we could also have a more general skepticism about our personal functions and relationships within the software quality organization.
For those of you who have ever taken time to ponder the meaning of life or "QA," I present this list of philosophical questions about software quality. Some of these questions have obvious answers, some have multiple answers, and some are rhetorical. I don't think there is a single correct answer to any particular question; there might be many or there might be none. But perhaps you'll gain new insight as you ponder.
This list is not a completed work. It is intended to be a first step in gaining a deeper appreciation for what we claim to do as software quality professionals. You will probably get the most out of it by reading through the entire list, then returning to the top to think about your answers as you re-read each question.
- The Nature of Quality
- What is quality?
- What is perfection?
- Is perfection binary? (Something is either perfect, or it is not perfect?)
- Is quality binary, or are there levels of quality?
- Are humans perfect?
- Are humans capable of producing perfection?
- Are humans capable of producing perfect software?
- Are humans capable of producing quality?
- Are humans capable of producing quality software?
- What is "High Quality" or "Low Quality"?
- Why are there bugs?
- Why doesn't everything work right the first time…all the time?
- What was the first defect ever created in the history of the world?
- What was the first defect you personally created?
- What was the first defect you ever found?
- What can we learn from defects?
- Are defects always bad?
- Bad occurrences sometimes have good outcomes, like when things are "a blessing in disguise." Could there ever be a positive outcome from not finding a bug?
- If so, under what condition would not finding a bug be a good thing?
- Could we say that all missed bugs are blessings in disguise?
- If so, then should the goal of testing be to miss as many bugs as possible, to get the most blessing? (obviously not)
- What are accidents?
- What causes them?
- How can they be avoided?
- Should they be avoided?
- Free Will / Predetermination
- Do people have free will to make choices in life?
- If so, can a tester choose to find a bug?
- Can a tester choose not to find bugs?
- Can developers choose to create or not to create bugs?
- Is software testing an active or passive activity?
- Do people's moods or emotions play a role in software quality? If so, how?
- Can a tester control his actions so that he is more prone to finding bugs?
- Is life predetermined, and if so, is software quality predetermined? By whom?
- Is software quality predetermined by Process?
- Is software quality predetermined by Management?
- If everything, including software quality, is predetermined, what's the use of testing?
- If well-meaning developers have total free will over their actions, then why do they make mistakes?
- Are testing results predetermined?
- If there are x number of bugs in an application, some were discovered, and some were not discovered yet. Were we meant to discover the bugs that we did find, and were we meant not to