Skip navigation.

Software Testing is like... Kung Fu?

context-driven testing | heuristics | perspectives
[textile]This evening, while discussing "James Bach's 'Against Certification' post":http://blackbox.cs.fit.edu/blog/james/archives/000199.html with my brother, an analogous relationship between teaching software testing and teaching martial arts came to light.

My brother teaches Wing Chun Kung Fu (or he might say he teaches his understanding of Wing Chun). His approach, however, is not to teach rigid techniques but instead to teach the techniques with an understanding of the concepts behind them in terms of relevant application. This allows his students to adapt the techniques within the framework of the underlying concepts.

Successful adaptation is only possible with a comprehension of the concepts because, for example, a specific blocking technique may assume a given context and not work outside of very controlled conditions. You cannot rely on your opponent striking you with a perfect technique. The block to the imperfect punch now also needs to become 'imperfect' (in terms of the purists technique) to be successful. But it needs to be the right sort of impefect to be successful. How do you know the adaptation that is most likely to be a success?

The decision for which technique to apply needs to be made instantly and to be successful will need to be adapted to the context. The only way to truely absorb the concepts is to gain experience of applying the techniques in a variety of contexts. In lieu of the student's experience, the teacher shares heuristics from their own experience.

Often, failure is as valuable, if not more valuable than success. They now know which adaptations *don't* work under given circumstances. Even the experience from applying another's heuristics may identify that those heuristics only worked for the individual who 'created' them. The individual is as much a part of the context as their environment!

Essentially, the more experience the student gets, the greater the proportion of their adaptations will be successful.

My brother cited Bruce Lee's outlook, highlighting that Mr Lee told his students not to copy his technique, but to understand the concepts and find the adaptation that best fit them and their context. The outcome of his outlook was Jeet Kune Do, a formless fighting system not restricted to specific techniques. There are no rigid techniques to copy but a set of concepts that his students were encouraged to adapt.

Our conversation drew to a close with his insight that in martial arts, you have *martial arts practitioners* and you have *martial artists*! The practitioner may copy the techniques verbatim of their master but may never be skillful enough to achieve success in real situations.

We concluded that the practitioner works on the assumption that there is a 'right' and a 'wrong' way to do each technique and are so focused on getting it 'right', they miss the lessons they can learn from getting it 'wrong'. This prevents them from seeing that even when they get the technique 'right' it may still be wrong for a given context.

The martial artist, however, will reflect and learn from each experience, abstract it and reach a level of comprehension for each success as well as each failure. The martial artist is focused more on the outcome (success or failure) of applying an adaptation of a technique in a given context, than they are on the name of the technique or minutia of whether it conformed to the rigid specifications of an ancient, perhaps outdated kung-fu manual.

"Use no way as a way, No limitation as a limitation." - Bruce Lee

Or is it football...

Interesting post which got me thinking back to the days when I coached kids soccer. I tried to teach skills and composure on the ball but my work in training was ofen undone on game day by parents on the touchline screaming their advice ( parents wanting a win = management wanting the product shipped now now NOW )
Some kids would try to use a technique in the wrong area of the pitch - do NOT try a Cruyff turn in your own penalty area with opposition players breathing down your neck. Appropriate choice of technique to match the area of play was something that marked out a good player from an average one.

I think I shall go and work on my Testing is Soccer analogy - thanks for the idea !

Exploratory Testing is a Martial Art

In James Bach's Rapid Software Testing course (which I teach) he identifies exploratory testing as a martial art. I expand on the metaphor by noting that when I see an application expose a weakness or a vulnerability, I grab hold of a limb and exert force until it bends or breaks.

I note also that Jerry Weinberg and a number of his students have studied Aikido.

---Michael B.

Interesting and Worrying post.

Some excellent points which I will pick up on when I have some more time (bar work I am busy prepping for LEWT2) for now however I am worried there are more like you out there in the wilds and this one is "unarmed and dangerous"!

An other part of the post that worries me, and it is more due to the fact it shakes my entrenched views, is the challenge to the sense of "good" for practioneers. I have previously viewed myself as a practioneer in some of the arts of testing and had felt it was a good thing. I had honed my thinking, my techniques and the way I approached each context and learnt from the wrong way and the lessons it provided.

Now I have to think about that once more, as it is possible I have been deluded in this attempt to be a great test practioneer and I should have been aiming for "tester".


Neill McCarthy
"Agile Testers of the World UNIT !"

Comment viewing options

Select your preferred way to display the comments and click 'Save settings' to activate your changes.