Error vs Defect vs Failure

    Error Defect Failure

    Differences between Error, Defect and Failure are explained below:

    Differences

    Error Defect Failure
    Also known as Mistake Also known as Bug, Fault
    ISTQB Definition: A human action that produces an incorrect result. ISTQB Definition: An imperfection or deficiency in a work product where it does not meet its requirements or specifications. ISTQB Definition: An event in which a component or system does not perform a required function within specified limits.
    An error can lead to a Defect. For example, a programming error can lead to a defect in the code. A Defect can lead to a Failure. For example, a defect in the financial report code can lead to the failure of generation of financial report. A Failure can lead to Frustration. For example, the failure of generation of financial report could make the client furious.
    Not all errors lead to a Defect. For example, a spelling error in code comment will not lead to any defects. Not all defects lead to a Failure. For example, some defects require very specific inputs or preconditions to trigger a failure, which may occur rarely or never.  Not all failures lead to Frustration. For example, what if the client’s failure to generate the financial report resulted in million dollar compensation from the software vendor? [Well, an unlikely example but you get the point.]

    More on Errors

    Human errors may occur for many reasons such as:

    • Stupidity: For example, a person might simply not be smart enough.
    • Negligence: For example, a person might neglect to code properly because he / she must rush to a date.
    • Inexperience: For example, a person might be a rookie.
    • Miscommunication: For example, a person might explain the business need incorrectly.
    • Misunderstanding: For example, a person might have understood the requirement to be an apple when in fact it was an orange.
    • Complexity: For example, the code / design / architecture / technologies / problem might be very complex.

    Also, an error in one place can result in a series of defects or a defect in an entirely another place. For example, a requirement elicitation error can result in a requirement defect which then results in programming error which results in defect in the code; at the same time, the error results in a defect in the related test case.

    More on Defects

    See Defect.

    Not all unexpected test results are due to actual defects. They may be false positives due to reasons like:

    • test cases being wrongly written
    • test cases being wrongly executed
    • defects in the test data
    • inappropriate testware or test environment

    False positives are reported as Defects but are later Dropped.

    On the other hand, the same reasons mentioned above may also result in false negatives; the test passes but defects still lurk. This is scary!

    More on Failures

    In addition to failures caused due to defects in the code, failures in software can also be caused by other reasons such as:

    • Faulty server hardware or configuration
    • Faulty client hardware or configuration
    • Faulty network hardware or configuration
    • Other adverse environmental conditions like radiation, electromagnetic fields, and pollution.

    (Icons used in the featured image were made by Anu Rocks, Raj Dev & MD Badsha Meah from www.freeicons.io)

    Last Updated on September 9, 2020 by STF