Because machines still need humans
Category Archives: Testing
April 18, 2011Posted by on
Schrödinger’s Cat is a well-known illustration, created to demonstrate the entanglement theory of quantum mechanics. In the imaginary experiment, a cat is placed in a sealed box along with some toxic gas held in a container. The poison may or may not be released while the box is closed with the unfortunate kitty trapped inside. Since you can’t see what’s going on, you have no idea if the cat is currently alive or dead. However, the moment you open the box the cat’s state is immediately and concretely determined.
Software engineers deal with a lot of similar uncertainty. While they’re coding furiously their code is like the cat in the box: it might be perfectly bug-free or it might be a complete mess. Until they build it and run a full suite of tests against it, they will have absolutely no idea which state it’s in.
If an engineer is disciplined enough to write their tests first, they will see the box open the moment that their tests pass, and their code will no longer be in that unknown state. They can be confident in its quality and move ahead onto other tasks. They know that to “open the box” to find only healthy, functional code is the ultimate goal.
Unfortunately there are plenty of programmers who ship completely sealed boxes, never knowing if their code is healthy or dead. The box eventually gets opened when an issue is found in production, confirming that their code really was buggy all along.
Worse still, some of them are probably cat owners.