In this article, we will discuss Errors, Defects, Failures, and related terms
like Faults, Bugs, Issues, Problems, and Flaws.
-
Error: A perfect synonym of Error can be a Mistake. The Error is
the state of being wrong. Any incorrect human action that produces a
problem in the system is called an Error. In different phases of software
development, anybody can make a mistake, including BA, Customer,
Architect, Developer, or Tester. A person can make an Error or Mistake,
leading to the introduction of a Defect. Not all errors lead to a Defect.
For example, a spelling error in a code comment will not result in
defects. The Error may occur because of the following reasons: time
pressure, human fallibility, Inexperienced or insufficient people on the
project, miscommunication, technology constraint, and complexity of the
project.
-
Defect:
Deviation between the expected and actual result of the system is called
Defect. Once we encounter a bug during testing, we log it as the Defect in
the tracker like JIRA, Pivotal, or Bugzilla. We can say that a Defect is
an error found before the application goes into production. Defects can be
categorized based on
- Severity: Critical, Major, Minor and Trivial
- Priority: High, Medium, and Low
-
Failure: Failure occurs when the Software fails to perform in the
production environment, or the deviation identified by the end-user while
using the application is called Failure. Not necessarily in all
circumstances, defects in application lead to Failure. Our Software can
fail because of environmental conditions like radiation, magnetism,
electronic fields, pollution, etc.
-
Fault: A fault is the cause of a failure. It could be a programming
error or misuse of the system by the user. The Fault is a flaw in a
component or system that may cause the system or component to fail to
perform its intended function. A fault is an incorrect step, process, or
data definition in a software product.
-
Bugs: When a developer makes a mistake in coding the part, we call
those mistakes Bugs. People widely say the bug is an informal name for the
Defect whereas, bugs are faults in the system or application which impact
software functionality and performance. Usually, bugs are found in unit
testing by developers. There are different types of bugs: Compilation
Errors, Run time Errors, and Logical errors.
-
Issue: Issue can be anything — even something specified and correct
according to the specification. It might be something that bothers the
user or anything that makes development harder. It could also be a design
choice that leads to errors.
-
Flaw: A flaw typically refers to an issue in Software Architecture
or the design/specification of the overall system. Flaws are not directly
wrong but cause an Issue.
-
Problem: It is termed as a difficulty experienced by a person,
resulting from an unacceptability that one comes across with a system in
use.