Testing terminology: Bug

Posted by Albert Gareev on Oct 16, 2008 | Categories: Notes

Reference page: Error, Bug, Issue, Incident 

Let’s start from definitions.

A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways.

“An unwanted and unintended property of a program or piece of hardware, especially one that causes it to malfunction.”

While definition in Wikipedia brings together all descriptions, Modern Computing Dictionary has more specific definition.

Although quite often bug is referred by programmers and testers with slight but important difference.

By testers.

  • As a malfunction or inconsistency in program’s behavior or outcome that deviates from expected one, proven to be correct
  • Expected result / behavior can be explicitly defined in documented requirements, by other components of a system, or based on the common sense


By programmers.

  • As a discovered,  documented, and localized behavior of a program
  • Bug, reported by testers, could be traced down to a number of co-dependent or independent bugs in code
  • Bug, reported by testers, could be caused external reasons: configuration settings of the application, Operating System, hardware, etc. As a result, either the program code is rewritten to adjust to or handle behavior of environment, OR the application is backed up by requirements to users to provide specific quality of environment

Common attributes of a bug.

  • Requires a proof and needs to be reproducible in order to start fixing process
  • In the most cases, found from an end-user site
  • In the most cases, found by a person who did not create the code containing the bug
  • In the most cases, can not be fixed by a person who found it
  • Often requires external (by testers) and internal (by programmers) investigation to be nailed down
  • Correction might be complex and might involve significant cost

Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
This work by Albert Gareev is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.