Bloggo back to the blog
Assumptions ahead… Beware-->
Recently I was asked to participate on the EuroSTAR community blog in an interview.
One of the questions I got there was what I would recommend for a young aspiring tester, my answer contained “[…] challenge everything and beware of assumptions.”
As testers we need to train ourselves not to take anything for granted, or to make any unconscious assumptions.
The reason for this is that once we make assumptions we don’t ask questions or challenge those particular assumptions. That is, at least if we’ve made the assumption unconsciously.
Later a few days ago I wrote on twitter: “Making an assumption in #testing is like turning on a filter. Beware…”
Having the filter activated when we go into testing may very likely result in us missing bugs, for example simply because we didn’t challenge a common view that the group held:
“Should it work like that? Well it always has worked that way, and we assume so…”
Filters a necessary evil?
But we still need filters and assumptions in order for us to function properly as testers, or dare I even say as humans.
We must make assumptions in our day to day work, otherwise we would simply never get anywhere or get anything done.
Also we would just end up asking questions about everything, making us a pain and bother to our colleagues:
“Should the application really start without crashing? Should the button be that shade of green? Should the application run on Windows Vista?”
It would take up precious time from those around us, and it would mean that we wouldn’t be focusing on factors that could be more important, and that would also mean we could potentially miss important bugs.
Then again when we make assumptions we need to strive to make the assumptions consciously, and perhaps even document the assumption in our sketchpad, and we should revisit our assumptions later on to challenge some of them.
“Should we really be running the software on Windows Vista? Windows 7 and 8 is released after all?”
Be aware when you’re making assumptions
The tricky part is knowing when you’re making an assumption, and that takes training. The challenge is that we as human beings are always making assumptions to function properly in the world:
“I assume the switch next to the door is a light switch. I assume people prefer it if I shake hands with them and smile when we meet the first time. I assume the cars will stop when the traffic light turns red ([Warning]: Potentially dangerous assumption)”.
Assumption can be seen as filters and when we apply them they can have a positive effect, just like filters enable us to see the sun light in a certain new aspect. In fact, in order to look straight at the sun we must apply filter or else be exposed to too much sun light/wavelenghts (think information overload in testing).
Last year when I started working for a new company in California and went over there for a two week visit I wrote a post afterwards “Make a plan, ask questions and challenge all assumptions”.
When new on a project you are the person that is (probably) the least “untainted” by assumptions, also since you are the new person you have a few weeks where you can ask all “the stupid questions”, in other words challenge even the most basic assumptions and get away with it.
Take that window of opportunity to act as a service to the project. That is finding out faulty assumptions, which in turn might reside on tacit assumptions, but also as a service for you to get up to speed on the project faster.
So as testers we need to train ourselves into:
– Recognizing when we make an assumption
– Which assumptions to make and which to challenge
– When it’s time for you to revisit you assumptions and challenge them again
Because at the end of the day we testers get paid for asking questions.
And questions gets asked when you don’t assume things.
Author: Kristoffer Nordström
Kristoffer Nordström is the Owner and founder of Northern Test Consulting AB. He has worked in the industry for over 8 years and is extremely interested in software testing, agile methodology and software development. Over the years he has developed several large scale test automation systems as well as started up and led non-functional and test tools teams. Kristoffer is a scrum master and a firm believer in supporting people and their personal development.
He is a experienced conference speaker and specialises in topics such as “Agile Testing”, “Test Developers” and “Test Automation”.