Sunday, March 27, 2011

What is a software fault in testing?

I'm taking a grad class on software testing and we spent a whole class on the difference between faults, errors, and failures. I was dissatisfied by the definition of a software fault in testing. What's your definition?

From stackoverflow
  • Sounds like splitting hairs to me.

  • According to the ISQTB a fault is a defect. There definition of a defect is as follows:

    defect: A flaw in a component or system that can cause the component or system to fail to perform its required function, e.g. an incorrect statement or data definition. A defect, if encountered during execution, may cause a failure of the component or system.

    failure: Deviation of the component or system from its expected delivery, service or result.

    Basically, defects, bugs and errors are the same.

  • You might be interested in this SE Radio podcast where iirc, they're described as:

    • fault: The actual 'mistake' in the code
    • error: The bad state in the system that results from the fault.
    • failure: The variation from expected behaviour observed by the user as a result of the error.
  • In reality, it doesn't matter. Academic papers tend to be all over the map with the terminology they use. In industry there is more certainly not an accepted definition of each. Moreover, no one in industry cares what the difference might be. Fault, error, failure, bug, they are all treated about the same.

    gljivar : Actually, I am having a course on Chalmers now about Software Quality, and industry cares about them, at least Ericsson since a lot of lectures are performed by their employees.
  • A failure occurs when the observed behaviour differs from the expected one. Note that the reference is the expected behaviour, not the specification, since even the spec could be false.

    An error is the part of the system state which may lead to a failure.

    A fault is the cause of an error. A software fault lies in software, a hardware fault lies in hardware.

    You can find a deep overview of dependability concepts in Dependabilty and its threats: a taxonomy, by Algirdas Avižienis, Jean-Claude Laprie & Brian Randell.

  • error---this may be human error i.e.misunderstanding of requirements & spec

    fault---- error leads to fault

    if developers misunderstands the requirements then he should code as per his understanding which leads to error in actual code.

    failure---- fault leads to failure

    if developer did wrong coding then s/w should give incorrect o/p which may leads to failure of application.

    Blake Pettersson : So error leads to fault, fault leads to failure, failure leads to.. suffering?

0 comments:

Post a Comment