Wednesday, 23 July 2008

Software Testing, A Funny Business

Steve Martin's Autobiography starts with the following phrase:
"I did stand-up comedy for eighteen years. Ten of those years were spent learning, four years were spent refining, and four were spent in wild success... enjoyment when performing was rare - enjoyment would have been an indulgent loss of focus that comedy cannot afford. After the shows, however, I experienced long hours of elation or misery depending on how the show went..."
I spent the first ten years of my testing career learning, since then I've spent the years refining and learning. I haven't enjoyed the wild success yet. But then I test software rather than perform stand-up comedy... but on some projects- who can tell the difference?


The learning experience that Steve Martin describes relates fairly well to many jobs, but I want to point it out to software testers because many of us don't go the extra mile that Steve Martin attributes to his success.
First we learn from other people.
Steve describes in detail how he watched other people work, listened to their acts, recited them verbatim, studied the timing, used their jokes, learned their techniques.
I can not imagine a single tester who could not put this approach into practice: read some books, read some blogs, look for experience reports and put their descriptions into practice.
Use this 'learn the basics' stage as a starting point.
Learn the basic techniques, get them down pat.
Then move on - do not get stuck here.
Then we learn by working with other people.
Work with more experienced testers.
Experiment with less experienced testers.
Learn from everyone.
I learned so much by working on teams with more experienced testers.  And when I worked on teams with less experienced testers, we had nothing to lose and we could experiment wildly - what a great way to learn.
Experiment and try out new things.
Testers are made, not born.
"But there was a problem...I had absolutely no gifts. I could not sing or dance...Thankfully, perseverance is a great substitute for talent."
Reflect on what you do
Steve Martin shows some of his notebook pages in his book and describes his self critical process of making notes on what worked, what didn't, and what to try next.
Incorporate this practice into your test process. Learn from your mistakes. Learn from others' mistakes. Tweak what you do and observe the results. 'Be' your own experiment.
Study other disciplines and incorporate them into your discipline
Steve Martin studied philosophy and incorporated elements of that into his act.
The process of studying philosophy also changed they way that he approached the analysis of comedy and viewed his act.
We can't predict exactly how the study of other disciplines will affect what we do. We just know they do.
So do this.
Build theories and models of what you do, then break them
Steve Martin studied other people's theories about comedy. Then built his own models and pushed them and pushed them until he had created his unique style.
I eventually had to unlearn many of the things I learned from more experienced testers. The construction of my own models helped move me forward and helped me take responsibility for my own testing theories. I could no longer rely on the "call to authority" to convince others. I had to believe in my own models and learn how to convey them effectively.
I continue to learn how to convey them, because those models keep changing.
To do this - try and explain aspects of your craft to other people. Find new ways to view what you do. Stop using words like "Functional testing", "Integration testing" - find new ways to express what you think you mean when you say those words.
Keep learning - and not just learning from other people - learn from yourself.
Keep experimenting
Keep bringing new things into your act. Try out the new techniques and routines on the smaller crowds. However you choose to do it, keep bringing new techniques, approaches and thought processes into what you do.
Recognise when you stop advancing
Steve Martin describes in detail what happened when he got successful. That the system of success stopped him moving forward with his comedy and stopped him enjoying what he did. Steve Martin moved into films.
If you get to this point then perhaps you need to change: your industry, or your role - if you currently work as a team lead, perhaps you need to spend some time as a manager, if you have 'mastered' manual testing then perhaps you could automate. Choose to change.
When all else fails, wear an arrow through the head
Yeah I know, I don't need to say it, since we've all done it, we've all tested with an arrow through the head, and we've all had happy feet take over when we found a bug.
Enjoy it.
Uh-oh! I'm getting.. Happy Feet!  See, every once in a while that happens, I have no control over it. Sorry. Okay. We're moving along now.

4 comments:

  1. Reading this reminds me of the song by Michael Jackson: Man in the mirror.

    I'm Gonna Make A Change,
    For Once In My Life
    It's Gonna Feel Real Good,
    Gonna Make A Difference
    Gonna Make It Right . . .

    Testing can be a disheartening job, with many factors up against you. Sometimes its not so much funny as a frustrating business.

    A lot of the times you will be working in smaller teams, so it will be harder to find more and less experienced testers to learn from. But nevertheless I agree that you will always find something to learn from any tester. If you ever get a chance to learn from someone inspirational don't let it go and learn as much as you can.

    On a final note I totally agree about studying other disciplines and incorporating them. Looking at something from a purely software engineering viewpoint you will only get so far. Looking at it from a different angle you begin to question more and assume less.

    Hi Gav, Thanks for leaving a comment.

    I've used humour over the years, as one strategy to help alleviate frustration.

    I justify this approach to myself by adopting the belief that... in each attempt to look at the frustrating situation and find the humour in it, I tax my brain and force it to look at 'everything' from multiple angles and that, I think, helps my test analysis.

    I recommend drawing silly little cartoons with stick men.

    This doesn't mean that I have become immune to frustration, but I do have a strategy to deal with it... some of the time.

    :)

    Enjoy,

    Alan

    ReplyDelete
  2. I've read a lot of different books from fighter pilots to doctors looking for ideas to use in testing, never thought about comedians. Until now that is - great post, thanks !

    Wonder what I could learn from Bernard Manning...

    Hi Phil, :)

    I don't think I can quote any lessons from Bernard Manning here, I want this to rate as a family site :)

    ReplyDelete
  3. Alan excellent Post .. I must say .... thanks for writing ...

    The cycle of learning-experimenting-unlearning(making your own model) is a very interesting concept ... write more on it as you discover ....

    The process or unlearning and disowing (if were allowed to say so) the authority ... is even more interesting ... I would say that when you reach a stage where "realise" the need for unlearning and becoming your own guru - making models and concepts - you have reached a state of "equlibrium" or "steady state". I would not call it as mature state .. but it is a "stop" over during a long journey of learning ...

    Thanks
    Shrini

    Thanks Shrini,

    Your last paragraph triggered a memory of a phrase in Lao Tse. (I've quoted a publicly ,
    available translation so anyone can see the context and luxuriate in its ambiguity for themselves.)


    In the pursuit of learning, every day something is acquired.
    In the pursuit of Tao, every day something is dropped.


    from Chapter 48 of the Tao Te King

    And I particularly like Crowley's translation of Chapter 49


    The wise man hath no fixed principle; he adapteth his mind to his environment



    ReplyDelete
  4. I'm new to bloggong & My blog is about basics of Software Testing,Manual Testing,SDLC,Testing Techniques,Levels of Testing,Types of Testing,Test Planning,Test Execution,Test Development,Bug Tracking,Result Analysis,Test Design Techniques and QTP. so I write about that which I know.Give it a visit if you get a chance..
    feel to free to visit:http://softwaretesting-guide.blogspot.com/
    Regards,
    Murali

    ReplyDelete