Loading

Introduction to Defect, Error and Bug


In the world of software testing the terms bugs, defects and bugs are encountered every second of the day. But to the uninitiated or to a beginner in this field, all these terms may seem synonyms of each other. Therefore, it becomes useful to understand each of these terms individually.

Bugs

A bug is nothing but a programming error found in an application before it goes into production. It may cause the program to perform irrationally, come up with incorrect responses and then crash all together.

Types of Bugs

  • Algorithmic bugs such as division by zero.
  • Logic bugs such as Infinite loops (a loop having no termination point).
  • Resource bugs due to the use of uninitialized variables.

Defect

In the simplest of terms, defect is the difference observed between expected behaviour and the actual results which are noted post the event of testing a software. Essentially it marks the deviation of the product's performance from the customer's requirements. It differs from a bug in the fact that a defect is found out after the product goes into production.

Types of Defects:

  • Missing Defects: Occur due to client requirements not being met.
  • Wrong Defects: Occur due to incorrect implementation of requirements. A wrong defect marks the deviation from the mentioned specification.
  • Extra Defect: It is caused by a feature not initially on the list of client requirements but added later into the software. It's not specifically called a defect as such, since it may be an attribute desired or not desired by the end user. But since it is at variance from the specifications mentioned in the owner's manual, it's called a defect.

Error

An error is a programming mistake, generated due to incorrect loops or wrong syntax. Thus the birth of an error takes place at the time of coding itself. Its chief causes are an inadequate understanding of the internal structure of code, neglect on the part of memory management, etc.

Types of Errors:

  • Calculation errors due to incorrect approximations or formulae.
  • Error in handling of data such as overwriting of same files.
  • Errors due to configuration such as inadequate storage area for memory.