Many bugs can be prevented by challenging assumptions. Challenging the assumptions every one holds as well as paying attention to the seemingly small ones, will yield great results.
Small things can be the most dangerous as they tend to go unnoticed, then gang up on you. It’s more common for projects to get overwhelmed by a build up of small things. The devil’s in the detail.
To find assumptions, listen to the way people speak. Assumptions can found in sentences that contain:
- must, always, mandatory, required
- impossible, inconceivable, never
- should, ought
- doesn’t make sense
Doesn’t make sense is a favourite. This planet is filled with humans who do many things that make more money than sense.
Consider the following story:
As a customer
I want to know the average activity
So that I can compare this month’s activity against the average
Sounds simple… but if you look a little deeper:
- What do we mean by ‘know’?
- What do we mean by average? Geometric, harmonic or arithmetic mean?
- What activity?
- What do you mean by month? How many days are in it?
- Over what time span is the average calculated? Does it move?
- How are the numbers rounded? How is the tie broken?
Remember, the most hidden assumptions are those you yourself hold. As a tester, you need to challenge yourself and question everything.