Take your test object. Turn it around. How does it smell? How does it taste? How does it feel? Can you suck at it as well as on the previous? What is the difference? Throw it away and see if Daddy also gets this one back to you… What I am talking about? This is the test strategy of most babies I have seen. And they learn so much about the outer structure of the test object, about what you can do with it, about Daddies reaction, … they don’t need to learn to test that. And they don’t need a script.
Does it sound familiar? What about this one:
“Exploratory software testing is a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the value of her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project.” (Source: Cem Kaner)
In my words: in exploratory testing you learn continuously, without a long-time plan upfront. You improve your abilities based on the previous learnings. You have a challenge to resolve. You got to thrive in a supportive context, with freedom and the ability to take responsibilities. This is exactly how I would have liked to get my children to learn. Now, this blog entry is not about what reality is, and how sometimes parents, school or other institutions demotivate the children up to the point that they are no longer fascinated of learning. I only would like to point out a few similarities…
The Theory of Cognitive Development
Being the mom of two now grown-ups I always was fascinated, how they learn to understand the world. And how eager they are to learn. Similar to the well-known psychologist Jean Piaget I tend to generalize these observations…. But as he got famous with his theory, let me try to describe and generalize a few of his concepts. For more details it is probably better you read at least the Wikipedia entry (where I also got the below definition from)… For my purpose there are two parts of his theory relevant:
- The processes of assimilation and accommodation: There is assimilation when a child responds to a new event in a way that is consistent with an existing schema. There is accommodation when a child either modifies an existing schema or forms an entirely new schema to deal with a new object or Event.
- In testers’ world: assimilation lets you place experiences into context, accommodation allows you to extend your understanding
- The logical model of cognitive development: intelligence develops in a series of four stages that are related to age and are progressive because one stage must be accomplished before the next can occur. For each stage of development, the child forms a view of reality for that age period. At the next stage, the child must keep up with earlier level of mental abilities to reconstruct concepts. Piaget conceived intellectual development as an upward expanding spiral in which children must constantly reconstruct the ideas formed at earlier levels with new, higher order concepts acquired at the next Level.
- In testers’ world this would mean that you need to learn testing in 4 stages, one being more complex than the other. Also, you always have to question the results of previous learnings.
So, in analogy to Piaget’s approach, as a tester you would start with rather simple steps to explore your object. Having understood, how the basic look and feel of the test object is (assimilation), you try to accommodate your view with what you have seen before. Then you start asking more questions, first yourself, then involving the team. When abstract reasoning comes into place you will be able to build models of your test object and get further understanding. You also will be able to perform a multitude of approaches.
Do you remember your puberty? Or the one of your children? This is the time, where the parents get embarrassing – as their model of the world had been successfully assimilated and now it is time to (obnoxiously) question it, i.e. to accommodate to the experiences the children have outside family. And, if you are lucky, they question everything and you have the chance to also accommodate as you are discussing all viewpoints and consequences of behaviors. And there are long discussions. Lucky you! Just use that approach and energy to question your test object. Do not take anything for granted. Enjoy the discourse!
Consequences for Testing Education
Piaget’s approach was the bases for quite some pedagogical research on educating children the right way when they are ready for it. There has been more research after him, but for simplicity let us stuck with him. How do I train a tester to learn exploratory testing? The good news is, you do not have to wait to get older, you can start right away, as you probably are older than 16…! A few viewpoints based on his model:
- Preserve the joy of learning
- Encourage the tester to just start with what seems natural (unless her inner child sleeps already)
- Enjoy assimilation and especially accommodation, there is so much fun in extending context and finding better ones
- Allow experiences on early stages first and mentor finding out what might be missing
- It is a good idea to start exploring on a very basic level (“smell, taste, feel, sound”) but then don’t stop with that model
- Support the tester by giving her aids for classification and abstraction
- This could be methods to structurally approach a test, heuristics, tours, or other structural approaches to test something
- I also like to communicate known typical issues, aka the experience of previous testers
- Help her to break the rules constructively
- Classifications and experiences are meant for being questioned
- Learn to be nicely obnoxious, arguing with good reasoning
- Support your reasoning with whatever it takes, tools, examples, models, …
And there is More We Can Learn From our Natural Born Testers
Apart from all psychology: there are a few more things I observed on my children and their friends. For example…
Have you ever seen them test some piece of furniture (at IKEA they would say MÖBELFAKTA)? They just go on and on and on until it finally breaks of fun is over. Do you have that endurance?
They do not take the same things for granted as we do. Me testing a mobile app with all those theories and approaches I learned vs. a 15year old with the killer instinct of the question “is this app useful?” will result in very different results. Questioning what is being implemented vs. the correct implementation makes quite a big difference in areas, where being a digital native is relevant.
Also, it is extremely dangerous a very good idea to prohibit something, especially when this is involving some tools (parental control software or alike). This way you would lay the best basis for ethical hacking education.