Near the end of the STARWest conference last week, I made a tongue-in-cheek tweet about the stress balls being distributed by Borland software at their booth in the conference expo. They’re not the first to have this form of swag, but as I held the ball in my hand I noticed it consisted of a rubbery outside filled a bunch of tiny little beads inside. As you squeezed the ball, the insides moved around.
It seemed to me like it would be quite the mess if the ball was somehow opened or cut the rubber cover. I tweeted:
My thought process, and the reason I included the #shittestersdo hashtag, was riffing on the theme of doing something with the product for which it wasn’t originally intended. I did get a couple reactions on Twitter that I wasn’t expecting. Here’s one:
I’d like to expand a bit here. I’m not sure I’d say there’s a rogue camp of testers who do nothing but use the product “wrong” but I will be quite honest in that testing for “wrong” uses is a regular part of my testing process.
One concrete example? Every time I’m exploring a new data entry form, the first thing I do in functional exploratory testing is to try to submit the form without entering any data. Why the heck would a user do that? After all, if they went to the data entry form, presumably they want to enter data, right? Yeah, probably. But the system shouldn’t blow chunks if they (either accidentally or on purpose) try to submit the form without completing it. The system ought to react in a reasonable way.
What if a user dropped SQL code into that field?
What if a user tried uploading a 2GB file as their avatar?
But a User Would Never Do That!
I’m envious of your ability to know what a user would and wouldn’t do. How do you know that?
Sure, it makes sense to allocate testing resources (time and people) for the most logical user stories and use cases. But as responsible test professionals, we also ought to be curious about the illogical scenarios, and help ensure that Bad Things don’t happen as a result.
And my guess about what would happen if the ball was split? It seems I was correct: