This article is based upon some thoughts that I have had over the past year while watching my granddaughter playing and learning new things, she will be two years old in April. It is amazing how quickly children of that age learn to do tasks without being taught such as walking, the beginnings of communication and how to play and explore.
I am an exploratory tester and my thinking is how we can as tester harness what children do naturally? Some may say that they do exploratory testing and they feel it is natural. If that is the case why do so many testers have difficulty adapting to exploratory testing and keep falling back to scripted testing?
Peter (unlicensed testers) asks a lot of questions about children and learning in his blog article here: http://007unlicensedtotest.blogspot.com/2009/11/what-do-you-get-if-you-cross-7-month.html
Watching my granddaughter the other day I observed that she was trying to put her trousers on. At first she managed to get both legs into the same leg hole, she noticed that this did not feel right so started again but this time she tried to put both legs into one of the small leg holes and found that this did not work either. After this she then managed to get the trousers the correct way around and one leg in each hole but did not pull them up and ten tried to walk and fell over.
What can we learn from this?
We can see that she tried following different options and observing the results, she then thought she had completed the task but found that it was not really complete. So if we convert this to software testing we can see that she is using heuristics to determine how to do the testing, the trial and error approach. She is using her emotions and feelings that something is not correct and she is doing a lot of noticing, which is something that every good exploratory tester should be doing. There are also examples of mentally noting future areas to test, the fact that when she tried to walk she fell over. The next time she tried to put on her trousers she did manage to pull them all the way up before setting off to walk.
There are many other examples of trial and error that children appear to do when playing. If something does not feel right they will suddenly change the approach to the problem or in some cases they just give up.
What can we learn from children playing? I have observed that this exploring behaviour appears to start diminishing once children start to attend full time school. Why is this so?
Is it because schools start to impose on children their own ethos and standards and re-model children to not take risk?
One of the main elements of testing IMO is the taking of risks.
We all do the ‘Let us try this to see what happens’, ‘Let us try something else and see what happens.’ Many corporations are risk adverse and as such when testers are brought in they have to provide a return on investment (a hot topic on twitter at the moment) so they are less likely to follow a risky approach. Some may argue that exploratory testing is not risky and I would intend to agree with them. However the business world does not seem to afford the time to be able to cope with let us try this and see what happens and then let us try that and see what happens. They require order and structure and no risk.
Children on the other hand when learning and playing do not take risk into account they try and if it does not work try something else and if that does not work they continue trying until they get a result they are happy with. They remain focused on the task at hand but appear to be able to solve problems without the fear of failure.
So what happens as we get older? Why do we lose this ability to explore and learn without fear of failure? It appears to be a natural human instinct that somehow is gradually removed as we get older.
Is it to do with the education system and how they remove the risk factor and make everyone fear failure and taking risks? Do we become institutionalize in to conforming to the known path, to stop asking the probing questions and to stop playing? I am not sure I have the answer to these questions however I am sure as testers there are some valuable lessons we could learn from children and how they explore, learn and play. (Simultaneous learning, test design and test execution)
I wonder if James would not mind if we change the definition of exploratory testing to learn, explore and play?
I think everyone who wants to learn more about exploratory testing should take some lessons from children. Do not be afraid to explore, if you make a mistake learn from the mistake to improve the next time and have fun. Testing should be about having fun and enjoyment it should not be a chore. If it becomes a chore get a different job……
Does anyone have any interesting games for testers? If so I would love to hear from you.
___________________________________
My next blog should be on my experiences of being coached by Michael Bolton and Jon Bach on using and managing Exploratory Testing.
Funny, was thinking in much the same line as you did in your post: http://reinderotter.blogspot.com/2009/07/nature-vs-nurture.html
ReplyDeleteI didn't elaborate on the subject though, but the basics are there :)
What about the second time she puts her pants on? My guess is she'll put her left leg in, put her right leg in, pull them up, zip them then button them. A script.
ReplyDeleteIn reply to Chad.... Is not the second time an automated check see michael Bolton article on testing vs checking. ET requires thinking if you do something without thinking it then becomes automated.
ReplyDeleteActually, it would be execution. I don't understand how automating exeuction steps would constitute a check or a test. Thinking is not restricted to ET nor does the fact that one performs ET implicate thinking. Rather, I understand as much of an application as I can, develop a test approach, document what I believe would be the expected results, try to find a tool/script/application to automate/replicate as many of my manual steps as I can. This frees me up to observe the results.
ReplyDeleteDon't get me wrong, I have two daughters of my own and nothing makes me smile more than seeing the excitement on their faces when they figure something out. My point is that in a business, if I already know how to put pants on, why wouldn't I 1) document the steps for the next person 2) figure out a way to automate or replicate the steps in doing so which frees my time up other things?
The whole ET and test vs check movement is simply a lash against people doing only what has been placed before them. My response is this issue isn't exclusive to automation. Bad testing is bad testing whether you execute the steps or a machine does.
Some very valid points Chad and not to be dismissive of automation - it does have a valid place in testing/checking.
ReplyDeleteHowever using your points: What would happen if the next time I ran your script or automated test it failed because the design had changed - no longer pull up trousers but this time they have velco to hold them up. The next time they have a button and then a zip and so forth. How much time have you saved? How much time are you spending re-writing scipts or code?
I will give you a little bit of homework. (This was given to me as an example the other day and one I use within my workshop on ET)
I have managed to drop my calculator can you write some test scripts to ensure it still works?
Look forward to your reply :o)
What about the second time she puts her pants on? My guess is she'll put her left leg in, put her right leg in, pull them up, zip them then button them. A script.
ReplyDeleteMy daughter did this over several days with her snow pants.
- She found her hat and mittens in the pant leg.
- After she put on the right leg, she found that the left leg was inside out.
- She put her snow pants on, but then Mummy insisted that a t-shirt alone wouldn't be warm enough. Off came the snow pants.
- She put her snow pants on, and realized that she had them on back to front.
And in each, she dealt with those things without asking for help; so, not a script. If she were working from a script, she'd get stuck whenever she encountered a problem.
Some do actions get routinized. At that point, they're not really testing. The testing part involves new observations, new inferences, new discoveries, learning.
---Michael B.
Interesting and creative responses, both. But if I may elaborate on my second response, I was refering to the difference between execution and verification/validation/observation.
ReplyDeleteTo Mr. Bolton: Your examples are great, but I feel the same observations would be made whether the girl was told how to put pants on (script) or whether she just picked up the pants with a goal in mind and explored different techniques.
If her father gave her instructions on how to put them on, she puts her leg in (execution)and there's a mitten inside (verification/observation) she would/should notice something was amiss.
Admittedly, I do not know much of Exploratory testing, but I have been trying to read up on it. I interpret the spirit of it as 'testing with your eyes open' and not blindly doing what is in a script. A lot of the posts/blogs I've read tend to categorize scripted testing as mindless and robotic and I completely disagree. Of course, it could be if you let it, but so could anything.
I strongly believe there is a difference between scripted execution and scripted validation/verification and they should be distinguished. My teams never just accept green lights from our automated tests. We always delve into the logs, system responses, etc...
Have a great weekend (or whatever is left of it).
Regards,
cp
Oh, and to John's post:
ReplyDelete"I will give you a little bit of homework. (This was given to me as an example the other day and one I use within my workshop on ET)
I have managed to drop my calculator can you write some test scripts to ensure it still works?"
John, I'm a consultant with morals. I'd be happy to do this for you, but considering my rates, might I recommend dropping $10 on a new calculator? You can use what you would have spent on my services and take your wife/SO on a weekend getaway. :)
Again Chad some very valid points and I understand the rationale behind VVT. I am not advocating that ET is used for everything but it is a valuable tool (approach) in a testers arsenal.
ReplyDeletePS My wife and I are having a weekend getaway in the New Forest (Hampshire, UK)enjoying a nice quiet weekend - I just cannot resist having a look at what is happening in the testing world.
Regarding your rates - the £ is doing well against the US $. (wink)
Hi John,
ReplyDeleteGreat post and debate!
I read a post a while back where someone else also aligned testing to play (but more to do with games) which also struck a chord with me.
I think taking risks may be part of it or trying 'half baked' ideas. Do children have more 'half baked' ideas?
I'm also thinking about the desire to learn. Or the encouragement to learn?
Peter