If you are not already familiar with the Schrödinger’s Cat thought experiment, let me give you a brief summary.
Schrödinger’s Cat: A cat, along with a flask containing a poison and a radioactive source, is placed in a sealed box shielded against environmentally induced quantum decoherence. If an internal Geiger counter detects radiation, the flask is shattered, releasing the poison that kills the cat. The Copenhagen interpretation of quantum mechanics implies that after a while, the cat is simultaneously alive and dead. Yet, when we look in the box, we see the cat either alive or dead, not both alive and dead.
I find this incredibly fascinating. How can something be both alive and dead at the same time? That’s impossible, right? The more I think about this, the more my mind starts to wander, and I couldn’t help myself linking this to Software Testing.
Imagine this scenario. A developer has fixed several defects in a piece of Software and has handed it to you for Testing. Before you start testing the application, are those defects fixed? We can assume that the defects are both fixed and not fixed and that the only way to prove one way or another is to Test it, or to peer into the box.
Testing, to me, is looking inside the box to get rid of any doubt and to prove the outcome one way or another. But isn’t Testing so much more than just looking inside the box? Is the box just the beginning? Do you even need to see inside the box to determine whether the Cat is dead or alive?
Like I say, this really fascinates me and I would have loved to have been hired as a Tester on this project.
Here’s how I would go about it.
To determine whether the Cat inside the box is either dead or alive.
Firstly, I feel the following questions need answering.
- Define “Dead” and “Alive”
- What if the Poison was contaminated with the radiation?
- What if you opened the box just as the hammer hits the poison?
- What if the Cat knocked the poison over accidentally? Was it securely fastened?
- What if the Cat is allergic to the box / confined spaces?
- Was this a fast acting poison? I.e. after the hammer hit the flash, is there a period where the Cat is dying?
- Where any radioactivity tests performed beforehand to see if the Cat was slightly radioactive before entering the box?
- Was the Cat suffering from any diseases before being put in the box?
- Where any structural tests performed on the box itself to prove that external radiation could not enter it?
- What material is the box made out of? Was the box lead lined? What if the Cat licked its paws and suffered lead poisoning?
- Was this test carried out multiple times? If not, could we run it multiple times.
- Was the cat given anything to eat or drink before hand? Was the food tested for radioactivity?
- Was the equipment calibrated? I.e. would the hammer definitely break the glass?
I could go on, but I would really like to take a look at the equipment used and the condition of the Cat beforehand before performing any tests. There are a lot of factors that could interfere with the results and addressing some of these questions may remove some of the bias in the equipment. For example, if the Cat was fed a certain type of Cat food beforehand that contains slight amounts of radiation, then this could affect the results.
The Cat is in the box, time for Testing:
Schrödinger says the only way to know the fate of the Cat for sure is to lift up the lid and take a peek inside. As Testers, we know that there is more than one way to “look inside” the box.
For example, we could install sensors, meters or microphones and display these results on the outside of the box so that we can clearly see what’s happening inside. Ask for testability and install a window in the side of the box or sound an alarm when the poison has been released. If the alarm is not ringing, the Cat is presumed alive. Have any prior tests been run? Do we have anything to compare against?
I can imagine that this thought experiment would have turned out very differently if Schrödinger had have hired a Software Tester when coming up with this experiment. Can you think of anything else that you could try or anything that you would do differently if faced with this situation?
I’d like to point out that Schrödinger’s never actually carried out this experiment and therefore no animals were harmed in the making of this Blog post.