Saturday, June 4, 2011

Assumptions in software testing

"Today, I like to talk about assumptions in software testing.

In a daily life, we do make lot of assumptions. Maybe because we're so used to it, or because we've never seen other side of the situation.

In software testing, we should be very careful about these assumptions. PMs, Devs and business owners are making statements with a lot of assumptions when they write or speak about the application. Even if the spec did not mentions about assumption, we, testers, need to figure out what assumptions are made in the project team and understand the impact of that. 

Some assumptions are safe, but sometimes assumptions cost you a lot of money to the company.

I was lucky enough to have a Skype coaching with James Bach. And I learned that we, testers, need to be very careful about assumptions. Since I got permission from James Bach to share his teaching, I'll use his example to show the impacts of assumption.

" Let's say you are carrying a calculator. You drop it. Perhaps it is damaged. What might you do to test it?"

Think about this for a moment. 
Can you question the statement above?

First, I guess we visualize the situation. At least, I did. Wherever you are. And you drop the calculator. The situation seems pretty normal. Our focus seems to test the calculator to make sure it is working correctly.

What he was trying to teach here first, I think, is that do not jump on testing without understanding the situation clearly.

Can you ask what kind of calculator is it?
How did I dropped it? Where does it dropped? Where am I? Who am I?

You can come up with more questions to understand the situation. Right?

Then your test case will be narrow down. Then your testing is more focused on the correct situation.
Would that save the cost of testing?(time, energy and budget)

So now, let's talk about assumption. Assumptions are all that bad then in testing?
Here is what James Bach said.


Have you ever seen a building that was being built? Builders use scaffolding to put it up the scaffolding is not the building. it's a tool used to create the building and at the end they take the scaffolding down.
assumptions in testing is like scaffolding. at least, a LOT of assumptions are like scaffolding
some assumptions are like foundation. Scaffolding is temporary. Foundation is permanent.

The leaning tower of Pisa is leaning because the ground is not as solid as they thought it was... that's like a bad assumption. We use assumptions in testing, and that's a good thing. but you must distinguish between safe assumptions and dangerous assumptions. Assumptions are to testers as bees are to a beekeeper... if the beekeeper never wants to be stung, he better get rid of all the bees
but then he'll have no honey. so he keeps the bees but he's CAREFUL with them.
we make assumptions. but if an assumption is dangerous
we will either:
1. not make it
2. make it but declare it
3. make it but not for long

Now, your assignment is to make a list
of what factors make an assumption dangerous

The End

3 comments:

Sudheer said...

I really like your analysis. Every tester should keep this in mind.

Thank you
Sudheer yallala

manikanta said...

The package offer constitutes of the following models of resources:

Selenium Integrated Development Environment (IDE) Selenium benefits TWO
Selenium Remote-Control (RC) Selenium launch THREE
Selenium WebDriver
Selenium Grid Selenium launch FOUR
Selenium RC and WebDriver, in a mix are generally generally known as Selenium TWO. Selenium RC alone can also be called as Selenium ONE . For more info on this see this link

DevRabbit said...

Hello,
The Article on Assumptions in software testing is nice give detail information about ti.Thanks for Sharing the information about it. It amazing to know about it. Software Testing Company