Error, Bug and Defect: Definitions, Inconsistencies, Differences and Boundaries
Muhammad Nadeem, Khurram Shahzad, Muhamad Nadeem Majeed · 2024
The importance of a clear understanding of fundamental concepts in any scientific field has been widely recognized. Therefore, we argue the need for a clear understanding of the fundamental concepts of software engineering. The three foundational concepts, error, bug and defect, are integral part of software development lifecycle and they are integral part of the day-to-day communication between students, teachers and practitioners. We have observed in literature that these three concepts have been used interchangeably despite the fact that they are clearly distinct. In this study, we contend that the notations of error, bug and defect must be clear, consistent, un-ambiguous and distinguishable in terms of semantics, scope and boundary in these mistaken metaphors. To that end, in this research, we collected ambiguous definitions, inconsistencies and conceptual boundary of these three notations as defined in IEEE standards, software engineering books and research articles. Subsequently, the definitions are synthesized to elicit a clear understanding of these three notions. Hence, this study will promote the correct use of software engineering concepts in academic community, as well as among the practitioners.