I was reading the differences between defect, error, bug and failure. I found a website that says about them. Are these correct?

A mistake in coding is called error, error found by tester is called defect, defect accepted by development team then it is called bug , build does not meet the requirements then it Is failure.

Error: A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. This can be a misunderstanding of the internal state of the software, an oversight in terms of memory management, confusion about the proper way to calculate a value, etc.

Failure: The inability of a system or component to perform its required functions within specified performance requirements. See: bug, crash, exception, and fault.

Bug: A fault in a program which causes the program to perform in an unintended or unanticipated manner. See: anomaly, defect, error, exception, and fault. The bug is terminology of Tester.

Fault: An incorrect step, process, or data definition in a computer program which causes the program to perform in an unintended or unanticipated manner. See: bug, defect, error, exception.

Defect: Commonly refers to several troubles with the software products, with its external behavior or with its internal features.

Source: Click here

  • I did my investigation and concluded that "error" can be used in two meaning in this context: 1) a mistake of a programmer OR 2) an invalid state of a runtime (caused by a fault and that may lead to a failure). So it's better to avoid using the word without clarification.
    – Alexey
    Sep 8, 2019 at 19:35

4 Answers 4


ISQTB foundation level material states the following:

A human being can make an error (mistake), which produces a defect (fault, bug) in the program code, or in a document.

If a defect in code is executed, the system may fail to do what it should do (or do something it shouldn't), causing a failure.

Defects in software, systems or documents may result in failures, but not all defects do so.

If you read this definition carefully, I think it is pretty self-explanatory.

  • So, according to above statements defect, bug and fault are same! Apr 20, 2017 at 10:02

As with most testing terminology it depends on the company, person and or industry. It is a means to communicate. When in doubt ask what people mean with it within its context.

For me bugs and defects are the same. Bugs are something from the 40ties according to Wikipedia.

featuring a dead moth that was removed from the device

I would push for calling all bugs defects instead, because dead animals do not anymore block computer systems.

Coding mistakes are just coding mistakes, they could cause errors.

An 'error' is a deviation from accuracy or correctness. A 'mistake' is an error caused by a fault: the fault being misjudgment, carelessness, or forgetfulness. Now, say that I run a stop sign because I was in a hurry, and wasn't concentrating, and the police stop me, that is a mistake. If, however, I try to park in an area with conflicting signs, and I get a ticket because I was incorrect on my interpretation of what the signs meant, that would be an error. The first time it would be an error. The second time it would be a mistake since I should have known better.


For build failures. Hmm. I think if the build cannot build it is a build failure. When it does not meet its requirements it just a defect, or an improvements depending on its classification. Calling it a failure does not add a lot of value. Still it might fail as a product, because its requirements were not met, but is the build a failure? Only time will tell, maybe the requirements were wrong to start with.

So from my perspective that quote you found on a website is not correct, but I think I could also create an argument for it being valid. :)


Honestly, it depends on the organization, the developement methodology, and the QA guidelines. You could say a defect is simply a bug report, a bug is a confirmed bug, an error is a user-facing error (or is user error - an error caused by the user), a fault is a type of bug, and a failure is when, for any number of reasons, the system does not meet the agreed upon standards or metrics that it was designed to meet.

All of these change depending on your organization and personal opinion. A website that expects 50 purchases per day and is very well designed and bug free, but only nets 49 purchases per day could be called a failure by management, despite being bug, defect, and error free.


In today's world of software functional testing services these are some terms that requires clarification and below are the details:

Error: Error is a human action that produces an incorrect result. It is deviation from actual and expected value. The mistakes made by programmer is known as an ‘Error’.

Failure: Failure is a deviation of the software from its intended purpose. It is the inability of a system or a component to perform its required functions within specified requirements.

Bug: A Bug is the result of a coding Error or Fault in the program which causes the program to behave in an unintended or unanticipated manner. Bugs arise from mistakes and errors, made by people, in either a program’s source code or its design.

Fault or Defect: A Defect is a deviation from the Requirements. A Defect is a condition in a software product which does not meet a software requirement. In other words, a defect is an error in coding or logic that causes a program to malfunction or to produce incorrect/unexpected result. This could be hardware, software, network, performance, format, or functionality.


A Bug is the result of a coding Error and A Defect is a deviation from the Requirements. A defect does not necessarily mean there is a bug in the code, it could be a function that was not implemented but defined in the requirements of the software.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.