The question above was prompted by a Skype Coaching session I held a couple of days ago. A new tester contacted me and asked me how they might get started with software testing, and what should they do first.
Almost immediately the person who contacted me (I haven’t asked their permission to share all the details, or their name, so I won’t) asked me questions about automation tools, and what programming languages they should know and work on. I asked them to stop, and I shared my philosophy with them about testing, which should have as little to do with programming as possible. Don’t get me wrong, programming is a perfectly wonderful skill, and I dabble in it at times, but I think we do a dis-service to those who want to be testers when we put at the primary requirement “must be a programmer with these skills and history”. What I want to know is “how does a person think? What kind of avenues do they follow? Are the random, or do they hand things on a structure that others can examine, review, and comment/critique?”
It was at this point that I decided to ask about something I believe every tester should know, and that’s “what do you know about the scientific method?” Yes, for those who have followed me for awhile, you already know that that is one of the topics we are developing for SummerQAmp, but one of the things I wondered was “how could someone actually demonstrate they understand this?” To that end, the question popped into my head, and I figured I might as well run with it.
“What Force Would it take to Shatter an Ice Cube?”
It’s a random question, and that’s what I wanted, something random and mostly removed from software testing. It’s often too difficult to step in and think about making a science experiment out of software, because it feels so intangible. Physical objects, though, are perfect for these though experiments, so I figured we’d use an ice cube as a starting point for the conversation.
What Force Would it take to Shatter an Ice Cube?
How would someone answer that?
They could make a guess.
They could throw an ice cube at a wall and say “that much force”… and they’d be right…. sort of ;).
But if we really wanted to know, at what point, with actual data, could I determine where an ice cube shatters…
We’d probably set up an experiment. right?
What would we want our experiment to tell us?
Could we determine the point where it happens?
How would we do so?
What would we need to make the experiment happen?
How would we make measurements? Do we actually need measurements?
What will our feedback be? What will tell how we are doing?
How are we gathering data?
How would we explain our results?
Can we “defend” our methodology?
What if new information came our way; could we account for that?
Would we need to repeat or redesign the experiment?
I explained that the process of thinking this through, or even setting up an experiment and actually doing it, would inform them more about their own understanding and curiosity of things than any primer on testing I could give them.
I remember last year discussing this for the first time with James Pulley,and how he said that the Scientific Method has to be Lesson Zero for any potential software tester. The more I consider this, the more I agree. Time will tell if the person who started this conversation follows up, but I think if they actually do this, and really think about this process in depth, as well as do some reading on the scientific Method and why it matters (and that it’s not helpful for everything), then we’ll be quite a ways down the road to understanding some of the foundations of what it takes to even start a conversation on what makes a good tester.
Agree? Disagree? Better experiments to suggest? I’m all ears :).