A good software tester gets the picture
A camera that lost all its snaps is just one example of how basic programming checks are missed
Software testers rarely enjoy much kudos in their company because their job is viewed as “easy”. After all, anybody can break a piece of software. Well, this may be so, but breaking it in all the ways users might do when they get their hands on it is not so easy. Moreover, doing it within the limits of tight budgets and impossible deadlines imposed by people with as much idea about software development as a dandelion requires great skill and a fair amount of training.
Good software testers are rarer than good designers, and, given that about half the budget of a successful software development project is expended on testing, at least as important.
You don’t walk into a room full of flies and just swat the nearest one, or you will have a sore arm long before you can make a real difference to their numbers. A good tester knows that he or she has only so many swats, and will therefore seek out the most lucrative targets, like the week-old slice of pizza on the table. Defects cluster in software, and where you find one, there is a probability that there will be more. When good testers find one defect, they renew their efforts.
One of the places that defects cluster is around edges. An edge separates two sets of input parameters with potentially very different properties. If you want to sound impressive at a programmers’ party, they are called equivalence classes. A very simple example would be if you know an array can contain between 1 and 255 elements, an experienced tester will focus on elements 0,1,2,254,255 and 256 on the grounds that programmers have a thing about edges.
So do these defects really occur as often as I am suggesting? Oh yes, indeed they do. I have just returned from a trip to the US taking in New Orleans and then the Rockies. Unsurprisingly, I took lots of snaps with my nifty Canon Ixus digital camera. Next to a tranquil pool at around 9,000 feet, I snapped a beautiful scene. After a moment’s thought, my camera said: “Memory full”. “Bugger,” I said, and switched to edit mode to remove an earlier snap or two, at which point my camera said: “No images”. I switched back to snapping mode. “Memory full”, said the camera; back to edit mode, and “No images”.
I tried everything, to no avail. In the end, I had to reformat the memory card, losing everything. Thanks, Canon. I don’t mind you screwing up exotic details but you do not release boundary errors in basic file handling, and I don’t care if you can make the camera sing like a demented hamster every time I take a snap.