By: James Bach

I’ve been offering testing coaching sessions over Skype (via instant messaging) for the last year, now. I’ve done more than a hundred of them.

Coaching over instant messaging presents some interesting challenges. One challenge is that it takes more time than coaching face-to-face, because of the typing interface, and sometimes students have a lot of trouble putting their ideas into words, especially if they don’t speak English as a first language. On the other hand, we have a perfect transcript of what happens, and I use that history to plan later lessons. Another challenge is that students can become easily annoyed or intimidated by my aggressive Socratic style. I deal with this challenge by making it a feature— I only coach people for who want to be pushed and prodded to be much better testers. This kind of coaching isn’t for everyone, but if you want to be very very good at what you do, you should seek to train yourself under pressure situations.

Here’s a snippet of a typical session. (It has been edited to clean up the typical instant messaging messiness, but it retains the essence of the original transcript.) I had asked the student, Ronda (not her real name) for an example of a test. She was having trouble being specific with her answer:

For example: a test for performance of a web page. I would try the web page for different numbers of users simultaneously.

James Bach:
That’s not a test. You’re describing some sort of action, but it’s not a test.

It’s a test. I feel so.

James Bach:
You said “I’d try…” What does “try” mean? You’re not telling me what you’d do. If I asked you for an example of eating dinner, would you say “I would sit down to dinner” and then stop? That wouldn’t be an example of eating. It would be an example of sitting, I guess, and not even that, maybe.

Okay, I would simulate 100 users or whatever depending on the product.

James Bach:
Then what? Simulation is not testing.

Then I would see how the system is behaving.

James Bach:
What do you mean by “see?” You’re only telling me bits of it. Tell me the whole thing. Give me an example of one complete test. Something simple.

For instance, how would you test a door lock? Would you like me to give you an example of what I mean by an example of a test?


James Bach:
Okay. One way to test a locked door:

Let’s say that the lock is a typical tumbler configuration meant for ordinary residential use. I might install it in a reasonable model of a door. That means that the same material that a normal door is made out of, whatever the intended kind of door. Then I would open and shut the door without locking it, say, 50 times.

• I would shut it hard
• I would shut it softly
• I would be looking for anyway to jar the lock and make it lock unexpectedly
• then I would close and lock it
• I would try to open the door
• I would kick it and shake it
• I would try to see if the lock could come spontaneously open, through vibration or shock
• then I would open the lock and see that the door opened

Now, what you are seeing is several things:

1) I’m giving details sufficient to allow you to visualize what is happening.
2) I’m giving details sufficient to help you understand how I’m thinking and that I have ideas about this
3) I’m talking about CONFIGURATION. That means setting up for the test.
4) I’m talking about OPERATION. That means what specifically I do to exercise the product. (you spoke of simulation, for instance)
5) I’m talking about OBSERVATION. That means I tell you what I’m looking at in order to see problems.
6) I’m talking about EVALUATION. That means I’m telling you how I would recognizing a problem if it were to happen.

When you say “I will simulate 100 users” that’s only operation, not configuration, observation, or evaluation.

I get it.

James Bach:
When you say “I will see how it behaves” you are talking about observation, but you aren’t telling me WHAT YOU’RE LOOKING AT. You can look at 500 things! Which of them are you looking at? See?

Every test has these four parts: Configuration, operation, observation, evaluation, or else it’s not a test. It’s a part of a test, maybe, but not a test.

My preference is to mostly ask questions and challenge answers. However, in this segment, I was doing most of the writing. This is because poor Ronda was nervous and unsure of what to say. In those cases, I switch into lecture mode before going back to asking questions.

Here’s how my coaching sessions work:

  1. A student contacts me over Skype. (ID: SATISFICE)
  2. If I’m available, we do a session. I don’t schedule sessions in advance except for paying clients and members of AST.
  3. The process is Socratic. That means I ask questions and pose problems, then the student develops answers. I also instruct directly as needed. My goal is to help develop people into testers worthy of respect according to the standards of the Context-Driven School of Testing.
  4. We work on things that matter to the tester. If he has a goal to learn a specific kind of thing, we work on that. Otherwise, I’m happy to walk through my own syllabus of testing.
  5. I may require students to do homework as a condition of further coaching.
  6. I sometimes watch students test over Skype screen sharing.
  7. From complete beginners, or someone who doesn’t write English well, I may require the student to work with another coach first (one of my students or colleagues).
  8. Our sessions are not secret unless the student wants them to be. They are free to tell others that they are working with me.
  9. If students ask me a specific question, I will probably ask them to tell me their answer, first. I will expect them to have Googled around and thought about it some before we talk.

Why do I do this? I am motivated by people who entertain me with their passion for learning. Besides that, I want learn how to coach better. Finally, I’m developing material for another book. But here’s my business reason: I want to publish the edited transcripts of my coaching sessions. So, I need from each student permission to include the session in my writing (I remove names on request).

I’m a demanding tutor. I want to spread clarity and excellence in software testing. My offer is open to anyone in the world, as long as I believe I can help you. I give priority to paying clients, but I’ll coach anyone at no charge.