"Some birds aren't meant to be caged, their feathers are just too bright"- Morgan Freeman, Shawshank Redemption. This blog is from one such bird who couldn't be caged by organizations who mandate scripted software testing. Pradeep Soundararajan welcomes you to this blog and wishes you a good time here and even otherwise.

Wednesday, October 22, 2008

Your search for Bug Free Software ends here

Test 2008 was a scintillating software testing conference. I never slept before 2 AM every night around the conference dates. I had great discussions with interesting testing minds like Rahul Verma, Aswin Palaparthi, Shrini Kulkarni, Dhanashekaran , Ravindran, Shyam Sridhar and others.

During one of our conversations the topic of "bug free software" popped up and someone mentioned that he had hope to see bug free software within his life span as technology is growing rapidly.

I have heard a lot of people talk about bug free software so have you. What have your replies to them been? Have you been one such who hoped for bug free software?

Here are my answers:


  • Oh yeah, you don't need to wait for the technology to advance, bug free software already exists. Have you shipped software products to your customers? Were there bugs in the products you shipped? Did you charge your customers for the bugs? Did you make the bugs free for them? So, you did ship a bug free software! So, all software we ship is bug free!
  • I shall give you the link to download a software that remains in bug free state in a specific context. Unfortunately the bugs start showing up if you try downloading the file, opening the file, install the software or start using it. I can guarantee you its bug free if you don't do anything of that sort with it.
  • I think, even, accidentally humans can't produce bug free software. The idea of bug free software itself is the result of imperfect thinking and imperfect understanding of software and bugs. We might end up making better inferences and conjectures about what they are if we are on a continuous learning path.
  • "Software systems can easily become complex. Computers allow us mortals to create complex systems that are beyond our ability to fully understand. We testers seek out software problems based on what we understand. We cannot completely test the software. We use a variety of tools and approaches to learn as much as possible. However, we are unlikely to completely understand a complex software system." - Ben Simo
Here is an example of how imperfect our thinking is getting as the Earth is growing older and older: There are some professions in this world that are existing for thousands of years and yet there are no answers to many questions that people in that profession face. Software as a profession has started to be in existence over the past 30-40 years and most people think there are answers for all questions we face.

Here is another example - I am a perfect thinker.

--
Pradeep Soundararajan - http://testertested.blogspot.com - pradeep.srajan@gmail.com

"The test doesn't find the bug. A human finds the bug, and the test plays a role in helping the human find it." --Yours truly

11 comments:

rahul said...

i fully agree wtih you.
but;" you are not a theif untill you get caught"....so as long as bug is not found... we can say it is bug free :)

Pradeep Soundararajan said...

but;" you are not a theif untill you get caught"....so as long as bug is not found... we can say it is bug free :)

If someone could tell me how many bugs are there in the project, I have a special ability to catch all of them.

As no one says me that I am unable to use my special skills.

I found all the bugs in the product, say there were 8998349834 bugs and reported it to a developer who on the context of fixing introduced 309483984 bugs.

I then reported 309483984 bugs and in the context of fixing them he introduced 498549859485 more bugs.

If a developer can fix all issues I find without introducing new ones, maybe I can deliver a bug free product.

I can give you a link of a real bug free product but it costs 94849854985948504985094390439485948498504989485 dollars. As no one has bought it yet, no one knows it exists.

Shrini Kulkarni said...

Good post .... best of your in the recent times. Probably in I would rate it as best to articulate why "bug free" software is not possible.

Here is my friend who challenges every impossibility saying "to humans nothing is impossible. We are limited by what we think. Human race has always proved what appeared to impossible in their times. Edison, Write brothers, Alexander Fleming, Copernicus and list is endless"

It is harmful to hang around with people who are skeptics.

What do you have to say to him?

Shrini

Pradeep Soundararajan said...

@Shrini,

Good post .... best of your in the recent times. Probably in I would rate it as best to articulate why "bug free" software is not possible.

Thanks!

Here is my friend who challenges every impossibility saying "to humans nothing is impossible. We are limited by what we think. Human race has always proved what appeared to impossible in their times. Edison, Write brothers, Alexander Fleming, Copernicus and list is endless"

It is harmful to hang around with people who are skeptics.

What do you have to say to him?


I consider myself to be a great fan of Sir Thomas Alva Edison and have spent a considerable amount of life collecting information about him. Those who opposed the idea of bulb were influenced by the businessmen who were making money for lighting through gas. They were not skeptics, they lacked skepticism.

Ask your friend to announce to the world that he invented an engine that works on water and delivers 99 kmpl, you would see petroleum organizations and Gulf countries worried about their future and trying to snub him.

Who is a skeptic?

Sir Thomas Alva Edison was skeptic. If he was not then he wouldn't have waited for about 32 hours watching the bulb glow before he announced to the world that "bulb" was invented.

He was a skeptic because he was trying to rule out the possibility that his team members beard hair could be the filament of a bulb.

----------------------------------

Yes, nothing is impossible. That's why some people called themselves God.

Yes, nothing is impossible. That's why corruption is wiped out in India.

Yes, nothing is impossible. That's why all projects that uses "best practices" have turned out to be great projects for the world.

Ravisuriya said...

Pradeep,

I watched a video of a Robot by Honda. Then, a thought came to my mind regarding the recent Chandrayaan. In this both mission, even a small error could cause whole mission go into a new lesson by committed mistake(s).

Also, I too agree and believe bug free software is not possible and we keep finding bugs in different contexts, when we view and question the product differently from what it is intended for. As nothing can be anticipated what a user will try, apart from the normal usage of the shipped product.

In my little and sand dust size learning, what I know is, identifying all the potential risks and rectifying them or letting knowing the presence of them to employer and to the user(s) for whom, being tested product is intended for with suggestions (like workaround(s) and fixing the bug(s)).

But still, there will be contexts (since test ideas are non-exhaustible with the questions) that can bring whole mission down by delivering them into a good lessons for next time when we take up the stuffs.

How would our scientists and engineers would have tested those Robots and probe, to minimize the risks (as bugs are always present)? And, also I am a reporter & tester who believes that TESTING is not a routine mechanical task, i.e., which is only the execution of scripted test procedures.

Surely, the scientists and engineers too would not have just questioned only those scripted testing procedures. But surely, would have done much more questioning. I am curious to know what positive testing, strategies and approaches, the mission or operation will involve to reduce the potential risks.


Ravisuriya

Ankur said...

Bug free software can be made if there is infinite time to test and fix issues.

Also bug free software would mean a perfect application, the only thing perfect in this world is God. So perfect application cannot be made....

Its humans who write code, and humans do err.....

Above are my few reasons.

Anna Borovcova said...

Whenever I hear philosofic questions such as Does free bug software exist? or What was first hen or egg? I disregard a question with siple answer. Of course, egg was first, dinosaurs laid eggs, too. Of course, bug free software exist, I know simple program that prints from 1*1 = 1 to 1*10 = 10. Just this few lines. I completly understand its code and know it is bug free.
Tester has to think outside bounds. Bug free software exists. But can any software be bug free? My aswer is another question, Do you want it really bug free? If it is easy such sa print Hello world, you can want it bug free. If it is more complicated, you do not want it bug free, if you truly understand what it would mean.

What do you think about my answers? (I just graduated from school and have work as par time tester for few years. I do not learn from mistakes, I have not opportunity to do many in testing. I do not learn from years of expiriences, I just have a lot of ideas and opinions and statisticly some must be right. :) So what do you think?)

James Lyndsay said...

"I consider myself to be a great fan of Sir Thomas Alva Edison and have spent a considerable amount of life collecting information about him."

So, Pradeep the fan, when did Thomas Edison receive his knighthood? And did he ever refer to himself as "Sir"?

It's not the honorific I'm concerned with - but I wonder how expert you are on Edison, if you've used a title in error. And that, by extension, makes me question other things that you claim to be expert in.

Just pushing your buttons.

Cheers - James the Sceptic.

Pradeep Soundararajan said...

@James Lyndsay - the Sceptic,

Thanks for your comment and time.

So, Pradeep the fan, when did Thomas Edison receive his knighthood? And did he ever refer to himself as "Sir"?

Pradeep is a great fan of Thomas Alva Edison but thanks for making me conscious of the fact that I was referring him as "Sir".

Being in United Kingdom, the word "Sir" might make you think of knighthood but here in India, the practice of addressing someone whom we respect a lot is by using the word "Sir". If I am wrong then other Indians reading this blog will correct me. So maybe that's why I attached the word to his name.

I did google search on "Sir Thomas Alva Edison" ( with double quotes ) and found my own posts in the search plus a few ( very few ) other people probably from other countries seem to have addressed him that way. That was interesting.

Although I have heard about Knighthood, I wasn't aware that "Sir" associates with knighthood. Thanks for the information.

I shall use the word "Sir" more wisely than what I used to hereafter.

And that, by extension, makes me question other things that you claim to be expert in.

I want to answer this in two ways: One, that I consider it funny and second, the serious answer

Funny: Oh yeah, I am an expert tester but probably you don't know the context in which I am an expert.

Serious: Please let me know of any place where I claimed that because I want to correct that important mistake of my life. If others have done it and I had little control over it, I shall try to see if I gain more control over it and ensure such incorrect ideas don't get published.

I learned in the last meet with James a month back that I was doing wrong by calling James Bach, an expert tester because he doesn't see himself that way and considers himself to be a student of the craft and loves being identified that way.

I learned that and since then, I have been conscious to not address him as expert tester.

Just pushing your buttons.

You pushed too many buttons at once and did you take note of how many you pushed? ;-)

Grass is said...

As always the cynical me...
Pradeep the figures that you have quoted above for the number of defects and the price of a bug free software, you have not used the number 1 or 2 in either of those figures. Do you what that shows?? That you are right handed and are more comfortable typing with your right hand rather than left, may be I'm wrong, just an interesting obsevation.

Nevertheless the bug free software is not a myth , it does exist. Infact it has been made by Microsoft. Have you opened a new project in VB6, a blank form and compiled it into excutable. It has no defects at all. It doe exactly what its supposed to.. nothing....

What I'm indicating is that the smaller and less complex a peice the greater the chance of it being defect free. So why can't we design all system on similar lines??
Simple, what we think is a simple peice is complex, and being lazy as we are , we want to squeeze in and end up complicating simple things. Plus since the advent of OOPS and other Object oriented design techniques we have introduced the most dangereous factor responsible for Defects, i.e. Interfaces. If you recall passing data from functions within the same program can be confusing at times, ever tried passing a handle to an arry of pointers, with each pointer pointing to a linked list of values !. That itself can lead to unstability, now we want seperate objects with different functions passing data across through complex chained logic which no one can segregate to simple functionality and then we say there are so many defects.

Place a single plate on a table. Pretty stable,
Please a single plate balanced on a cup on a table, slightly tipsy, but if not messed around with still stable.
Please a single plate balanced ona cup, balanced on a spoon on a table balanced on a chair's edge..and you think its gonna hold good... Good luck....

Pradeep Soundararajan said...

@Grass,

Pradeep the figures that you have quoted above for the number of defects and the price of a bug free software, you have not used the number 1 or 2 in either of those figures. Do you what that shows?? That you are right handed and are more comfortable typing with your right hand rather than left, may be I'm wrong, just an interesting obsevation.

I am right handed and left handed. I use my right hand and left hand for typing and I know of many occasions in which I use my left hand. I think I am right handed by the definition that I have heard about - right handedness.

Nevertheless the bug free software is not a myth , it does exist. Infact it has been made by Microsoft. Have you opened a new project in VB6, a blank form and compiled it into excutable. It has no defects at all. It doe exactly what its supposed to.. nothing....


How do you know what it is supposed to do?

What if a user expects that to throw up an error message or an information box that says "This is doing what it is supposed to do. So dont worry"?

What if I rename the executable to calculator.exe and send it to you, wouldn't you think it is something of a calculator that doesn't appear to be working?

It could be an issue if not a bug but the question always remains, "Is there a problem here?"

I wish you read "Perfect Software and Other Illusions about Testing -- Jerry Weinberg" that answers your questions as well.