This morning, a colleague sent me an email linking to a TED video of a talk by Dr. Kary Mullis about Celebrating the Scientific Experiment. I found it interesting for several reasons and want to share some of my thoughts as it relates to software testing. The global warming comes in later. Keep reading.
Here’s the published intro to Dr. Mullis and his talk:
“Biochemist Kary Mullis talks about the basis of modern science: the experiment. Sharing tales from the 17th century and from his own backyard-rocketry days, Mullis celebrates the curiosity, inspiration and rigor of good science in all its forms.
Kary Mullis won the Nobel Prize in Chemistry for developing a way to copy a strand of DNA. (His technique, called PCR, jump-started the 1990s’ biorevolution.)”
What I find surprising about this talk is his statements that Global Warming is not supported by scientific studies and data. He attributes the climate change crisis to people that got into science not for the pursuit of truth through experiments and observable facts, rather they got into science for the money and power. Mullis talks about how certain scientists get into a prestigious political group such as the International Panel for Climate Change that is trying to prove Global Warming exists.
The existence of the panel is predicated on the politics of science, and Kary contends that not all of those scientists are being honest. The money only flows from the government to these types of groups and big labs are funded by a bunch of scared people, so the scientists are compelled to prove the premise of Global Warming.
Hmmm. I would expect such a statement from Rush Limbaugh. But here is a scientist that obviously is not part of the conservative right-wing Republican establishment because he makes it clear in the video how he feels about Christianity and traditional authority that is anti-science. Mullis got his doctorate at Cal Berkley, and I don’t think they allow Republicans to graduate from there.
This scientist in his pursuit for truth takes a stand against the Global Circulation Model and against the scientific community he believes is disingenuous to promote political agendas. Mullis just wants honesty in science. He likes how science was disconnected from religion and philosophy in the 17th century, to produce the “cool and purer” science we have today that is built on experimentation and scientific method.
Coincidentally, this morning I was reading from the book The Art of Software Testing by Glenford Myers. Myers and Mullis have something in common. They both understand how the human mind, consciously or unconsciously, will lead a scientist toward a preconceived objective.
Myers states, “…the most important considerations in software testing are issues of economics and human psychology.” I’ll leave the economics for another blog post, but let’s deal with the psychology side. He focuses on the definition of testing and calls it a “vital consideration, one that seems almost trivial in nature.”
He goes on to say that the primary cause for poor software testing is “…that most people use a totally incorrect definition of” testing.
Here are example incorrect definitions he lists:
- Testing is the process of demonstrating that errors are not present
- The purpose of testing is to show that a program performs its intended functions correctly
- Testing is the process of establishing confidence that a program does what it is supposed to do
Myers believes these definitions are “the opposite of what testing should be viewed as.” The bottom line is that a software tester should try to find as many errors as possible. You can’t be effective if you begin with the goal of proving the software works.
Continuing, Myers says, “At this point, the discussion may sound like just a subtle game of semantics, but it has been observed to have a profound effect on testing success. Since human beings tend to be highly goal-oriented, establishing the proper goal has an important psychological effect. If our goal is to demonstrate that a program has no errors, then…we shall tend to select test data that have a low probability of causing the program to fail.”
It seems obvious to me that our minds work to find answers that solve problems for us – whether through concentration on the issues or through subconscious processing that we don’t fully understand. Time and again, studies have shown how powerful the mind is to affect outcomes. Examples include placebo effects, psychosomatic illnesses, the power of positive thinking, and super-human strength in crisis situations.
Therefore, I submit to the software development community that there is a link between Global Warming and software testing.
First, they are both topics that require high intelligence to address properly. There are no easy paths to proof in either domain. The approach to the issue makes a tremendous significance.
More importantly, the goals of the participants are paramount. Highly intelligent scientists will exert phenomenal force of will and energy to prove themselves right. It is in their nature to push through barriers and obstacles to reach a conclusion. It is the scientific method: hypothesis, experiment, conclusion. Do not underestimate the power of physicists, biologists, system engineers, or QA experts to get where they want to be.
Proving that our climate is changing due to CO2 emissions and proving that software works according to specifications requires that each case has the properly defined objective. Scientists will drive toward the objective whether it is to ultimately get more funding for the lab, or whether it is to clear the application build for release.
I can’t speak for the physicists, but I can speak as a developer and tester. It is imperative that we set our goal as proving the software has errors. We must be trying to break the system in some way. We must be destructive in our methods.
In stress testing, we must push the web app beyond its performance parameters, or “cripple” some component to observe the failures that result. In functional testing, we must not simply follow the feature list and check off all the ones that work. We must think outside the box and try the unexpected. Software testing is not constructive – it is destructive.
And that is another link between global warming and software testing.