I have been into software testing for about 10 years now. And for about the same decade I have been playing improvisational theatre (impro). In this blog post I will share some thoughts about how unscripted testing and improvisation are similar and what I have learned from practising both.
The key element of impro is that everything emerges from the moment it happens. Characters, scene settings, props, dialogues, the story itself. All these aspects are developed by the players while they are on stage. To cut the matter short: there is no script the actors can follow which makes it fascinating to watch for the audience and likewise fascinating for the players themselves.
Whenever you read something about impro you will come across the name of Keith Johnstone. Keith is an educator, playwriter, actor and theatre director who has an international reputation of developing the theatrical style of improvisation.
In 1979 Keith wrote the book “Impro: Improvisation and the Theatre” which starts with:
“As I grew up, everything started getting grey and dull. I could still remember the amazing intensity of the world I’d lived in as a child, but I thought the dulling of perception was an inevitable consequence of age — just as the lens of the eye is bound gradually to dim. I didn’t understand that clarity is in the mind.”
I think, we as testers often face the risk of losing our “clarity of mind” when relying too much or even completely on test cases, procedures, written instructions or scripts on how we have to test. My experience is that working this way leads exactly to the “dulling of perception” as mentioned by Keith. And that’s what impro is about. It allows, no, it enforces you to break the routine.
In the theatrical context a play is basically a long script, a predefined sequence of actions. It does not allow the actors much variation, maybe to a very little degree. The same applies to testers following a script whether it is a test case with detailed step-by-step instructions, an automation script or a script that only exists in your head. In reference to James Bach’s and Michael Bolton’s “Rapid Software Testing” a script may be completely adequate for performing lots of checks but let’s not call this testing but checking. Testing is a human performance, an art, like improvisational theatre is.
In the following I would like to show you some of the techniques impro players use and practice in order to get very good improvisers. And how that might relate to testing.
Leave your Comfort Zone
Keith Johnstone writes in his book:
“At about the age of nine I decided never to believe anything because it was convenient. I began reversing every statement to see if the opposite was also true. […] As soon as you put a ‘not’ into an assertion, a whole range of other possibilities opens out […] When I began teaching, it was very natural for me to reverse everything my own teachers had done. I got my actors to make faces, insult each other, always to leap before they looked, to scream and shout and misbehave.”
Everybody of us has a comfort zone in which we are fine with ourselves. This is our preferred operating mode. Impro players and testers need to leave their comfort zone. If we get to the boundaries it will get uncomfortable. At the same time we widen our awareness and get the chance to see things we haven’t seen before. And if we even take a step across the boundaries it will get exciting.
Impro players use lots of associations for generating new ideas and, by doing that, also surprise themselves. If we as testers only look at the obvious we will only find “obvious bugs”. Using associations allows us to let our thoughts drift away without the fear of not finding back. Trust your brain, it’s amazing. It will remember your “path of thoughts” and guide you.
Everytime you hear or think something like “We cannot do this…” or “We have to do it that way…” try changing that to:
- “I have no idea if… but let’s try…”
- “What if…”
- “Why not test this feature in a way that ‘nobody’ would normally do?”
Make Your Partner Look Good
An impro player cannot do a good show without support by his/her teammates. Impro players need to watch and listen to their co-players and their audience very carefully to make sure everybody’s still in the boat. If they discover that the audience starts getting bored, they don’t serve the mission anymore.
We testers need to watch and listen to our audience. If they start getting bored, we don’t provide valuable information to them anymore and maybe we need a drastic change in our test strategy. Don’t act as the quality police but as a “valuable information service”.
Finally… Fail and Learn
As Keith Johnstone said:
“You can’t learn anything without failing.”
And that’s what I think testing is mostly about. Learning about the product, the customer, your stakeholders, tech and social skills, performing experiments, develop ideas and fail with them. Impro and testing are about uncertainty, exploring the unknown and expecting the unexpected… and welcome it. So start unscripted testing today and see what happens.