In the context of software testing, there are several terms related to defects and failures that may appear similar. Without a clear understanding of these terms and their definitions, miscommunication or misunderstanding can arise among stakeholders. Therefore, based on the ISTQB Glossary, which is provided by the International Software Testing Qualifications Board—a global organization that standardizes software testing terminology—the relationships between these terms have been organized as follows:
Failure/Defect/Error
The terminology related to software failures is grounded in the existence of three fundamental layers in software:
- Software exists to achieve some form of
Benefit
. - Providing a
Benefit
requires correctFunctionality
. - Ensuring
Functionality
operates correctly requirescorrectness
in the code.
When an issue occurs in any of these layers, a Failure
, Defect
, or Error
arises. The relationships among these terms are as follows: When a Failure
is observed, it indicates the presence of some Defect
, which can be traced back to a human Error
. The relationship is visually represented below:
The ISTQB Glossary defines the terms as follows:
Error
A human action that results in a defect.
Defect
An imperfection or deficiency in a work product where it does not meet its requirements or specifications or impairs its intended use.
Failure
An event in which a component or system does not meet its requirements within specified limits.
Validation / Verification
After establishing a consensus on the terminology, the next challenge is determining "what constitutes a Failure
." To tackle this challenge, the concept of quality
can be helpful. The ISTQB Glossary defines quality
as follows:
<quality>
The degree to which a work product satisfies stated and implied requirements.
From this definition, it is clear that failing to satisfy quality
can result in a Failure
. The ISTQB Glossary also includes a document called the "quality mind map." Relevant portions are extracted and presented below.
Source: ISTQB: Mind Maps of FL v4.0 Keywords
It is stated here that quality assurance
consists of both verification
and validation
. The differences between these terms are as follows:
<verification>
The process of confirming that a work product fulfills its specification.<validation>
Confirmation by examination that a work product matches a stakeholder's needs.
Verification
focuses on whether the work product meets the specified requirements, while validation
addresses whether it is suitable for stakeholder needs. Naturally, even if verification
is satisfied, the lack of validation
renders quality
meaningless. This concept is commonly heard not only in software but also in the business domain.
Error Stems from Human Mistakes
This ties back to the article's title. Since Error
refers to human actions, saying “the system caused an Error
” could lead to misunderstandings (although it might still loosely convey the idea, which makes it even harder to address). Additionally, commonly used terms like bug
and fault
actually correspond to Defect
. It is important to note that expressions like “there is a bug in the system” might make it unclear whether the speaker is referring to an Error
or a Defect
.
Given these considerations, it is crucial to ensure a shared understanding of terminology among stakeholders. Particularly when discussing Failure
, tensions may arise among stakeholders, so calm and consistent communication based on reliable sources is essential.
Top comments (0)