In the software business there seems to be a lot of confusion about the word testing. In many situations the word “testing” is used for what I would call “checking”. The origin of this confusion goes back to the first computer programs.
The first programs that were ever written did a purely computational job. Scientists did all the preparations to feed data to the computer, the program did the computations and then printed the
results. Analysis of the results were done by the scientists. Testing such a program consisted mostly of what you can call confirmatory testing. Nowadays this is referred to as “checking”, at least in the context-driven testing world. It is nothing else but verifying whether the results of the computations match with the expectations.
Since then software development has evolved and programs have taken over most of the actions that were previously performed by humans. Storing, retrieving, revising and transmitting became more and more important and now software is not just for purely mathematical computations. Everyone now uses software and for nearly everything. Given this evolution of the development process, the perception about testing did not evolve similarly. Testing is still regarded as checking.
However, outside of the software business, testing is regarded as what it truly is. If you want to buy a new car, you first gather a lot of information. You assess your needs. You select some candidates for a test drive. You go to a few dealerships and talk to the sales people. You look for extra information. Then you actually take the car for a spin, but you don’t just check whether it can drive on a straight empty road, you try different types of roads, different types of traffic. You get a feel for how sensitive the breaks are. You change the position of the seat and assess the comfort. You have some kind of appreciation for the design and color of the car, the legroom in the back and so on.
A tester also does all those things when he looks at software. He gathers information, tries to assess what the expected behavior is, he puts the software in different situations and tries to empathize with the user. He gets a feel for the usability and the look and feel. He puts the software in all kinds of situations. This requires creativity, he needs to think out of the box. You can compare this with how teenage kids will do anything to test the patience of their parents and teachers. If you have any experience with teenagers, you can confirm that they are very inventive in finding new angles to test the boundaries of your tolerance and patience.
So outside of the software business, people seem to understand that testing is much more than verifying the end result. They recognize that there is a need for exploration, discovery and learning and that there is some kind of personal taste or emotion involved.
So people who think testing is a boring thing, they actually think about checking. If they truly understand what testing is, they know that it is not boring. It is a fun process, it fulfills your curiosity, and it stimulates your creativity.
Inspired by blog posts and tweets from Michael Bolton and James Bach.