A new understanding of exploring

Exploratory testing is one of my favourite things to do and to teach. It’s also incredibly hard to explain what it is we do when we’re doing it. That’s why I’ve been enjoying doing Testopsies with Huib Schoots, and why I was excited to do a live, narrated exploratory testing workshop at the European Testing Conference this year. Even though I have some practice at explaining what I’m doing, it is still challenging for me to do that. Yet the better I (or we) get about explaining it, the easier it becomes to teach others. 

I recently had an “aha” moment about how exploratory testing looks to the non-initiated, as well as an understanding of the value of narration to explain our models and methods. 

I was struggling with a problem – I needed to access the source text of something that was rendered in a compiled file. I’d got as far as finding a tool that would decompile the file, but then I hit a wall. What came out for me was unintelligible. I didn’t even know where to start. So I asked a friendly developer for some help – as it turns out, this was the same person who has admitted to me in the past that he “gets why exploratory testing is important, but it just looks like clicking around”. 

He sat down at my computer and started opening various files. He did some searches for words we were looking for in the text, and found a file that contained them. Inspecting the decompiled code, he commented that it looked like it was structured syntactically and fired up an IDE with support for e.g.XML. He explained that we could then use formatting and an outline view to get a better overview. He pasted the source text in, hit the key combination to format it – and suddenly I could see the structure too. For me though, it was still pretty much garbage. So many tags! Explaining what he was doing, he searched for our string again, and then began collapsing tags around it that didn’t contain relevant information. After about 10 minutes, I had a workflow based on his findings:

• Copy the file to the IDE
• Format it using a key combination
• Use the outline view to find the one tag that interests me
• And there was the text I needed!

As we got closer to the aim, I thought out loud: “so this is what exploring looks like for developers”. For me, as an onlooker, it was magic. I could not have done those steps to find more information to get me to the next questions. And I don’t think that he knew in advance what steps he would end up following. If he hadn’t been talking about what he was doing, I wouldn’t even have recognized the process of exploring. It was like a light went on in both of our heads – he replied “oh so this is what you mean when you say exploratory! Cool!”

As well as solving my problem, I learned that talking about the process allows me to recognize the process – even when it’s done for different things. And a developer that didn’t quite get exploratory testing now has a better understanding of what it is and how to go about it. And finally, it has encouraged me even more to narrate my testing, especially when I’m pairing with people who want to learn more.