Mike Kelly’s blog

What I think about…

Software bugs, errors and defects: What’s the difference?

September 30th, 2008 in SearchSoftwareQuality

A while ago I answered the following question on SearchSoftwareQuality.com’s Ask The Software Quality Expert: Questions & Answers.

What’s the exact difference between an error, a defect and a bug?

Here is a clip from my answer:

I like James Bach’s and Michael Bolton’s definition of a bug:

"A bug is something that bugs somebody who matters."

I find I use this definition for many reasons:

  1. It’s easy to remember: I don’t have to go look it up in a slide I saw six months ago (like I did with the above definitions). I can remember it and explain it to someone off the top of my head, with little to no effort and with no appeal to authority. I don’t even need to attribute it to James and Michael if it’s a hallway conversation with a programmer or manager.
  2. It’s consistent with my experience: I find that this definition has applied to every project I’ve worked on. I’ve logged deviations from requirements that were closed as functions as designed. Those weren’t bugs. I’ve logged inconsistencies in implementation that were closed as functions as designed. Those weren’t bugs. I’ve even logged a security issue that allowed me to log into the production environment of a very large company without a user id or password. But that wasn’t a bug either. None of those bugged the people who mattered. They only bugged me.
  3. It’s simple to explain: When I tell someone a bug is something that bugs somebody who matters, about the only follow up question I get is "Well, who matters?" Everyone seems to intuitively understand that this definition has a ring of truth. I find that it keeps me out of debates on word definitions and spares me from appealing to authorities that no one agrees on.

You can find the full posting here.

8 Responses to “Software bugs, errors and defects: What’s the difference?”

  • Mike Kelly
    October 1st, 2008 at 5:47 am

    Email comment from Adam Goucher:

    “When I heard James explain this he also added… - bug has less verbal
    baggage associated with it. defect has a decent amount - bug/defect/
    error is also a product of the culture; at hp its history is in
    hardware engineering and in that world things are defects.”

  • Phil Kirkham
    October 1st, 2008 at 5:47 am

    I like your answer but I’m wondering why the question was asked and what the person who posed the question would do with the answer ?

    ( apart from the using it in an exam/interview ! )

  • Mike Kelly
    October 1st, 2008 at 5:52 am

    Unfortunately, I don’t get direct contact with the people who ask the questions. And, I suspect they get that particular question a lot. I think you might be right about the test though. That’s why I point them to the BBST materials.

    -Mike

  • Shrini K
    October 1st, 2008 at 10:48 am

    Cem Kaner mentioned (not sure about the source) that the word “defect” has “legal implications - one can sue you for selling them a defective software” where as the word “bug” has an “informal” flavour. He also further cautions to avoid or be sensitive to use “bug” in software that deal with insects or any Botany or bioloigical context where the word “bug” already has a “universally accepted interperation”.

    I think it is important to expand James/Michael’s definition because there are testing service models that are emerging (I just posted a long query to context driven testing forum about this) such as “pay by bug” or “output based” pricing in the work of IT. In such cases definition such “something that bugs some one who matter” will become very open for debate, lititation and arbiration.

    The definition of “software problem” (I think it is Michael Bolton who used this term) should be specific enough for such emerging testing service models.

    So, people who ask such questions may be someone who would be required to precisely need to define and use that word.

    Shrini Kulkarni

  • Joe Strazzere
    October 1st, 2008 at 9:15 pm

    Well that explains what you mean by “bug”. but it fails to answer the question posed in the title.

    “Software bugs, errors and defects: What’s the difference?”

  • Francis
    October 2nd, 2008 at 2:56 am

    Dear Mike,

    Sorry, I have to disagree with your definition.
    The thing you have defined is actually an "issue". According to the Cambridge Advanced Learner’s Dictionary, an issue is "a subject or problem which people are thinking and talking about". That matches your definition. Although issue is very often caused by a defect, an issue does not equivalent to a defect. I would define defect as "a derivation of actual from expected behaviour or features of a product".

    Besides, I consider defect, bug and error are the same and interchangeable.

  • Mike Kelly
    October 2nd, 2008 at 9:26 am

    Joe,

    The full answer can be found following the link to the full post. For posts like this one, I just post a snippet of the full response.

    “My advice is to talk to the people you work with to understand how they use the terms. If they use them differently then me (or British norm BS 7925-1), theirs is probably the opinion that matters.”

    The point being, it doesn’t matter what anyone else says the definitions are. Dictionary references or book references only matter on an exam. I don’t really concern myself with exams. The pragmatic answer is to say, “Talk with your team and come up with definitions that work for you.”

    That’s my answer.

  • Speedmaster
    October 2nd, 2008 at 9:53 am

    Good blog, glad I found it! ;-)