Recently on Twitter, Ben Simo posted an interesting photo of a set of road markings at the entrance to a driveway/car park etc.
Despite being a joke or rhetorical question my tester brain engaged immediately with the question posed by Ben and with the photograph presented.
After a minute or so of Logical Reasoning I’d reached my conclusion and was about to post a reply when I realised that the logical reasoning process all testers go through is different so why not share my own process with people in a blog post?
So here you go; this is mine:
- Assumption: The lettering has been printed in correct orientation for the intended audience.
- There is a road running horizontally along the bottom of the image, based on the white “central divider” line in the road. I will name this “road”
- There seems to be an entrance/exit to a driveway, road, car park etc based on the low kerb into the road, the parked white vehicle to the top-right of the image and the width of the entrance being wide enough for vehicles. I will name this “driveway”
- The spacing of the lettering (or the angle the photo is taken from!) indicates that there are two ways for it to be read:
- “Do Not Enter” and “Exit Only”
- “Do Not Exit” and “Enter Only”
- Both sets of sentences are in the same orientation, indicating that both are meant to be read together from the same viewpoint. If the sentences were meant to be read in isolation, one set of sentences would likely be rotated 180 degrees to be correctly oriented for each intended audience. This also suggests that the driveway is intended for traffic in one direction only.
- If I was turning from the road into the driveway I’d see both sentences correctly whereas if I was pulling out of the driveway into the road the sentences would be upside-down and not easily readable to me, therefore if the sign has been printed correctly the intended audience is one who would be attempting to “enter” the driveway.
- My conclusion is that the entrance/exit is meant to be used by people driving out of the driveway into the road. The sign is to tell people on the road not to enter the driveway.
- To answer Ben’s question; from the perspective of the intended audience of the sign, this is an Exit.
On Wednesday of last week the Software Testing Clinic held yet another excellent event in London; this time at the Thoughtworks offices in the West End (*love* your London office space Thoughtworks!) and the topic this month was Exploratory Testing.
During the clinic there was a lot of discussion as you’d imagine from a room of extremely intelligent and passionate testers and on one subject I made a comment along the lines of:
“I think there’s a difference between an assumption and a bias – a bias is always negative and an assumption mainly positive”
At that point I was (correctly!) questioned on that assertion by my friend Tony Bruce on why I think one is positive and one negative.
*cue mind melt in front of the whole group*
I felt 100% that a bias is a bad thing that serves no purpose in the mind of an exploratory tester but I couldn’t articulate why. I also knew that generally speaking the thought of assumptions doesn’t give me anywhere near the type of negative reaction than the thought of a bias does, but again I couldn’t explain why.
So I did the best thing I could – I stopped to question my opinion and whether it was actually an assumption or bias about assumptions and biases. 🙂
Let me start my thought process with two definitions:
1[MASS NOUN] Inclination or prejudice for or against one person or group, especially in a way considered to be unfair:there was evidence of bias against black applicants
the bias towards younger people in recruitment
1A thing that is accepted as true or as certain to happen, without proof:they made certain assumptions about the market[WITH CLAUSE]:
we’re working on the assumption that the time of death was after midnight
The same as I thought; one is “considered to be unfair” which lends to the negative connotation in my mind. The other is neither negative, nor positive; it is just something that has not been proven one way or the other.
How does that apply to my testing? Well from my perspective an assumption is something active – it’s the deliberate initiation of a thought designed to bring that thought to the front of my mind while testing so that I can prove/disprove it (Tony Bruce defined this as a ‘test idea’ which is definitely another great description for it – thanks Tony!)
Some examples would be:
- I assume that the logo at the top of this page will have a hyperlink back to the homepage.
- I assume that the navigation items all have hyperlinks to their correct pages.
- I assume that if I do not enter the mandatory fields on this form that some validation will take place and I will be presented with a suitable error explaining that the form could not be submitted in its current state and that I need to make some specific corrections in order for the form data to be submitted correctly.
All of those assumptions are things I actively think about and set out to prove or disprove during my testing. They are active, mainly positive thoughts used during testing.
One of my amazing colleagues Deborah also added that for seasoned testers it’s more likely that experience and domain knowledge over the years leads to a filtering of assumptions too; any time an assumption has been made in the past and it was wrong it was probably moved it out of a tester’s internal “safe” assumptions list and into an internal “unsafe” assumptions list (or in my case it’s removed from being an assumption completely and treated instead as an “unknown”)
A bias on the other hand is something passive and that I’m often unaware of until I break my normal processes, sit down and ask myself whether there’s any bias being applied.
It’s something I likely do as a natural process without realising it, whether that process came from previous experience, heuristics or just the way I think normally. A bias for me is generally a negative thing as it can potentially lead me away from things to explore that may be important or ways of working that are more efficient.
Some examples would be:
- I have a bias to navigating websites with my mouse; I use the mouse wheel to scroll, I move the mouse cursor to elements and click links rather than using keyboard navigation to scroll, tabbing through elements and select them with Space/Return. Unless I actively think about that (and in the process turn that bias into an assumption that tabbing through links and selecting them will be as effective as clicking) I could miss the fact that the tab order is completely erratic because of that bias.
- When testing new websites for clients I have a bias toward believing what the browser Status Bar tells me a link is. I know there’s a possibility the link displayed in the Status Bar won’t necessarily be the *actual* link but as I see no reason for a project owner to deceive me I trust that the link shown is the link that will be opened. It may be that the client has decided to make links look ‘neat’ by adding a hover status to them and I wouldn’t initially know because of that bias.
- I have a bias toward using my Windows machine for my test tools. Unless there’s a specific tool I need that is better on Linux or Mac I use what I’ve used for years. There are likely lots of excellent tools on other environments that I don’t know of because those environments aren’t used enough by me. My efficiency is undoubtedly compromised occasionally because of that bias.
So there you have it; my (possibly over-thinking it!) definition of how I see Assumptions vs Biases in exploratory testing.
EDIT: In this post I’m talking about the bias itself, not the outcome of the bias (which could be positive, neutral, negative or anywhere in between) which is a separate topic I want to blog about soon. 🙂