Better Software - January 2009 - (Page 17) Test Connection and scientist, to be sure, but many of his insights were triggered by serendipity and luck. Good testing is like that. Even when someone tests incompetently or aimlessly, he obtains some product coverage—and may trip over some bugs by accident. A more capable or betterprepared tester typically tests more deliberately, consciously, and intentionally, but still may obtain some coverage incidentally, unconsciously, or accidentally. We never know what we might find— and sometimes we don’t even know immediately that we’re finding it. If we’re executing functional tests on a pocket calculator, for instance, and the answer appears quickly, we’ve achieved some kind of performance coverage whether we notice it or not. Conversely, I was investigating connectivity features on a mobile phone recently. Even though the phone connected properly, I experienced a noticeable and annoying delay in the user interface. I had found a performance problem, even though I hadn’t set out to find that kind of problem. That’s why test evaluation shouldn’t stop with a passing or failing test; in excellent testing, we continuously look around and ask, “Is there a problem here?” When we’re engaged in testing, we’re constantly exploring, observing, and evaluating—or anticipating those activities, as Darwin was in the first month of the voyage. At any point, an observation, a pause, or a distraction might bring a new discovery or an expanded notion of test coverage. When I stumble on something, I ask myself, “Is there another quality criterion that I could consider that might matter to some client? Have I seen something like this before? Are there more things like this that I could compare? Are there more places like this to look? Are there more places where I can apply this way of looking?” Traditional writing about testing provides plenty of focusing heuristics in the form of specific techniques to perform and conditions to watch out for. But it’s also important to consider the dynamic between focusing and defocusing—paying attention to details, then zooming out to the big picture and back again. When you’re observing an ant, defocus occasionally to see the colony and its dynamics. When you’re looking at the anthill, pause every now and again to check the behavior of individual ants. When you’ve done both for a while, take a break and come back to maximize the opportunity to see new things with the same old eyes. A postscript: As I was finishing this article, I needed to refer to some material on Darwin, and I also needed a title. I opened up my browser history and noticed that one of the articles that I had been reading before starting to write— an article that had nothing to do with Darwin or testing—was titled “Better To Be Lucky Than Smart.” As testers—like Darwin—we need to be both. {end} What can testers learn from other scientists and other disciplines? Follow the link on the StickyMinds.com homepage to join the conversation. www.StickyMinds.com JANUARY/FEBRUARY 2009 BETTER SOFTWARE 17 http://www.stickyminds.com/testconnection11-1 http://www.netobjectives.com/ http://www.netobjectives.com/ http://www.StickyMinds.com
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.