DEV Community

Yoshi
Yoshi

Posted on

The machine does not produce errors

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:

  1. Software exists to achieve some form of Benefit.
  2. Providing a Benefit requires correct Functionality.
  3. Ensuring Functionality operates correctly requires correctness 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:

deviation

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.

mind map
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.

References

Top comments (0)