Definitions and Meaning: Error, Fault, Failure and Defect

by Nataliia Vasylyna | December 6, 2011 10:00 am

Note: the article was updated in March 2019.

The assurance of continuous software functioning is based on the absence of all possible errors, defects, failures and faults, commonly named in testing terminology as bugs. Even if the impact of some bug is inevitable, it is always possible to reduce the probability of its effect on the program and its processing. Project managers should clearly understand the software testing terminology to lead effective business communication and proper quality control. The article discloses such notions as defect, error, failure and fault to provide QA specialists[1] with reliable guidance.

Types of system bugs with examples

Defect[2] is a drawback, which usually forms at the stage of software production and does not allow to perform the function properly or ruins the entire functionality. Usually, it is identified as an error, which is found after the software release on the market. It may be not sufficient detail, which is noticeable during the processing of a certain function or it may be a critical feature of the entire program, which leads to improper performance of software functions. Below is the example of a bug report:

bug report example

To sum up, a defect is an unexpected result of software implementation, which differs from the initially required purpose and reduces the value of functions.

One Ends…. and Another Starts

Failure is an impossibility to start the performance of the functions or breach of the program processing after its successful start. The failure may be caused by:

Moreover, failures may be the result of intentionally planned illegal penetration into a digital system in the form of cyber-attack with the aim to acquire protected data or to sabotage the work of a system.

Fault is a reason, which enables the software defects to arise. This may be a condition, which is independent from technical peculiarities[3], but caused by misunderstanding and users mistakes. Fault can be considered as a source of all mentioned bugs and as a result of error, at the same time.

Error is a wrong procedural act, which is caused by improper running of the program or by users’ mistake. Error interrupts or stops the work of software and its appearance usually depends on program settings and its compliance with the device. Below is the example of a bug report written in JIRA:

bug report in JIRA

The reason of these drawbacks may be caused by internal defects of the program, that were formed during its creation or by external factors, such as:

In case of external impact, the problem can be solved by:

However, the internal software issues can be mostly fixed with improvement of the software architecture and removing of coding mistakes.

Possible consequences of missed errors

The drawbacks of software can cause the sufficient business losses due to the delays in the software performance. There is also a threat of misrepresentation or disclosure of confidential data[4] or its complete loss, if such data was involved in the work of a software, that was subjected to error. The most common errors are:

  1. The user is not able to login into the application.
  2. A developed feature is missing in the build ‘or’ completely failed.
  3. Internal Server error during the access to the application.
  4. Error while customer is making the payment, in case of an eCommerce site.
  5. Some security permission is required to access a major functionality/application under test.
  6. The application refuses to run or stops in-between.

These are not abstract suggestions. There are quite famous real cases, when error brought its impact from a digital environment to real life.

For example: a bug causes Uber notifications to be pushed to a device, even after logging out of your account on that device. In this case, the “cheating user”, who had once called Uber from his wife’s phone, was exposed when she received notifications of using Uber. Quite problematic, isn’t it?

Another example shows much more critical case: in January 2018, the citizens of Hawaii were notified to take immediate cover in the face of an inbound ballistic missile strike. It turned out to be a false alarm due to the “troubling” design flaws in the Hawaii Emergency Management Agency’s alert origination software.

Summing It Up

The most effective way to prevent possible bugs is careful professional testing[5] of software with clear understanding of QA testing terminology before its practical implementation. The bugs which were identified can be removed by strict analysis and improvement of code structure of the program, as an initial source of errors. Even if the errors were successfully investigated, it would be more effective to conduct regression testing after the identification of errors and bugs.

Learn more from QATestLab

Related Posts:

Endnotes:
  1. QA specialists: https://qatestlab.com/company/our-team/
  2. Defect: https://blog.qatestlab.com/2011/10/11/main-types-of-defects-in-software-testing/
  3. technical peculiarities: https://blog.qatestlab.com/2019/01/14/logistics-software-pitfalls/
  4. confidential data: https://blog.qatestlab.com/2018/11/26/gdpr-software-testing/
  5. professional testing: https://qatestlab.com/services/
  6. What Is Software Bug Seeding?: https://blog.qatestlab.com/2011/11/22/what-is-software-bug-seeding/
  7. Assessing Bug Priority and Severity: https://blog.qatestlab.com/2011/07/03/assessing-bug-priority-and-severity/
  8. Statistics of Errors in the Code: https://blog.qatestlab.com/2011/06/03/statistics-of-errors-in-the-code/

Source URL: https://blog.qatestlab.com/2011/12/06/definitions-and-meaning-error-fault-failure-and-defect/