Okay, I think I finally get it. I’ve been looking at exploratory testing all wrong.
I was trying to break down exploratory testing into a set of learnable techniques that can be followed by anyone to get them to be better testers. But exploratory testing isn’t like that. I was getting really frustrated because there were significant elements to it which were hard to define. But that’s because exploratory testing isn’t a series of set definable techniques.
It’s like learning the guitar. You can learn the chords if you want, but that’s not how you become a good guitarist. At some point you have to start figuring out how to make the guitar work for you, how to get it to do what you want. And learning the chords is not the only way to learn the guitar. If somebody gave you a guitar and you had no idea what it was, given enough time you could still learn how to make it play beautiful music. And if someone asked you how you did that, and asked you to teach them, maybe you would struggle to find an effective way. They could mimic exactly what you do, but it wouldn’t help them understand how to create music for themselves.
I used to learn piano. I’d show up to the lessons and practice the same songs over and over again, but I never enjoyed playing the piano, or even making music in general, until I started experimenting with my own methods of learning. In order to become better at something, you do need practice, and practice helps, but you also need to take an active part in the learning process. Practice will only take you so far.
Testing is the same. Like James Bach says, testing is a craft. It’s not something that you can teach as a series of steps. It’s something that you need to practice, and then take an active participation in your own learning and growth towards becoming better at it. That’s why it’s hard to measure if someone is a good tester. To go back to the piano analogy, I did AMEB (Australian Music Examination Board) exams for piano and I achieved grade 5. I put absolutely no emotion into my piano playing, I just followed the notes and directions on the sheet music. I learned a few scales. My knowledge and technique was probably grade 5 standard. But I was not a great pianist. Music is not a mindless, step-following activity. Nor is programming. Nor is testing.
I think what I wanted was an effective way of teaching testers how to be better testers. But showing them techniques will only take them so far. They need that interest and drive to learn more, otherwise they’re just doing what I did when I was learning the piano – following a series of steps. They’ll never become great testers, or great at anything, if they don’t take an active interest in their learning experience. I can’t wrap a process around a people problem.
Ultimately, in order to teach something, it’s more valuable to inspire a desire for learning than to transfer knowledge.
To that end, it’s important to acknowledge exploratory testing as a skill that requires practice. Some people say they are naturally “bug magnets”, but natural talent without dedication to self-improvement will only get you so far.