In this article, we will discuss Errors, Defects, Failures, and related terms like Faults, Bugs, Issues, Problems, and Flaws.
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.
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 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.
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.
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 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.
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.
It is termed as a difficulty experienced by a person, resulting from an unacceptability that one comes across with a system in use.