What is the Difference between defect, bug, error, failure ?


Are these different : Bug, Defect, Error, Fault and Failure ? 

After this post you will know about the following:
  • Bug Vs Defect
  • Defect Vs Error
  • Error Vs Failure
  • Failure Vs Fault

Must Read : 


What is an error?


Error is deviation from actual and expected value.
It represents mistake made by people.


What is a fault?


Fault is incorrect step, process or data definition in a computer program which causes the program to behave in an unintended or unanticipated manner. 
It is the result of the error.




What is a bug?


Bug is a fault in the program which causes the program to behave in an unintended or unanticipated manner.
It is an evidence that there is a fault in the program.
The software product has some malfunctioning code, and the malfunction is not identified or discovered by the developer. The malfunction is called Bug. The bug is always passive. 




Nice to Read : 

What is a failure?


Failure is the inability of a system or a component to perform its required functions within specified performance requirements.
Failure occurs when fault executes.



What is a defect?


A defect is an error in coding or logic that causes a program to malfunction or to produce incorrect/unexpected results.
A defect is said to be detected when a failure is observed.


When the software is used by customers the malfunctioning code might generate unexpected results. In other words, the passive bug becomes active and results in Defect.

Although these words are used interchangeably by developers, they do have precise meanings.

A software failure is a deviation between the specified and the actual behaviour. In other words, the software does not do what the requirements describe.

A software fault, or more commonly a "bug", is a mistake that may cause a failure. There are many types of faults: algorithmic faults (i.e. wrong branch logic), precision faults (i.e. 3.14 instead of 3.1417), etc.

An error, or more precisely an erroneous state, is a manifestation of a fault. In other words, the software execution is in a state such that further processing will lead to failure.


Defect: the software isn't doing what it's supposed to do. That means you are not coding properly. Pay attention and fix it, add or remove a feature.

Bug: it's doing something "weird". 

Error: error is good! It means you caught something.


Recommended Read :


Error as a term usually refers to a human error which introduces flaw(s) in software. Calling these flaws as defects could have legal implications (source:Cem Kaner?) as calling something defective vs calling it buggy have different legal meaning. 

Failure is a manifestation of the bug happening in production when the conditions for the bug get realised (which may happen or may never happen at all).

Fault is used interchangeably with bug, although a fault could be an accidental condition which was never planned for. That's where fault tolerance as a term was coined.

Would you agree to the above explanation? I don't know. Do you need to? Of course not.

Having said that, there are definitely overlaps in the terms and the way different testers interpret them. 


All of these words can be used somewhat interchangeably. 
An error can be almost anything but typically means a problem, a console log, or other operation where you can continue, but receive the incorrect result.

A fault is a crash and may be caused by dividing by 0, accessing bad memory, reusing a deleted pointer (address), etc.

A failure is typically a hardware problem like a disk crash, bad 'spot' on the memory card, a fan stops working, etc.


Hope you are able to tell :
  • Difference between Bug and Defect
  • Difference between Defect and Error
  • Difference between Error and Failure
  • Difference between Failure and Fault

Would like to hear from you :

There must be something that you would like to share and add to the points above. Please write in to tell what you feel and and about your experiences in the testing field.


Sources: Pleeger and Atlee. Software Engineering Theory and Practice, 3rd Ed. and Sadjadi's lecture notes: http://users.cis.fiu.edu/~sadjad...


Want reach out to millions of readers out there?

Would you like to see you post published here ?


Send in your posts to softwaretestinganeasyway@gmail.com . We will help you reach out to the vast community of testers and let the world notice you.