This afternoon was a half-day tutorial on exploratory testing. Elisabeth Hendrickson gave an engaging talk - complete with in-class exploratory testing - that presented four techniques for doing successful exploratory testing:
Throughout Elisabeth made sure we understood very well that exploratory testing is *not* just pounding on the keyboard but rather is a means of discovering new information (aka surprises - which are not necessary bugs, just something you didn't realize about your product) about the software under test by methodically exploring its capabilities and limitations.
Lectures are all well and good, and some people can actually learn that way, but I need to apply what I hear to actually internalize it. Elisabeth handed out a bunch of Pixter toys - a roughly PDA-sized electronic (black and white) coloring book. Once we figured out how to turn the speaker off these turned out to be surprisingly (ha!) capable little buggers that served as excellent foils for applying the techniques we were learning.
Perhaps the most important piece of information was that exploratory testing is best done in packs. Each group found that the other groups had identified variables they hadn't. The same holds true for your app: one person doing exploratory testing is good, two people doing exploratory testing is better, the whole Dev+Test+Everybody Else team doing exploratory testing is better yet, and the whole team doing exploratory testing in pairs is best. Case in point: one team found a diagnostic mode -- something no one else in the other twenty-some classes Elisabeth has used Pixter in had ever done!
*** Comments, questions, feedback? Want a fun job on a great team? I need a tester! Send two coding samples and an explanation of why you chose them, and of course your resume, to me at michhu at microsoft dot com. Great coding skills required.