DEFINITION: A Software Defect / Bug is a condition in a software product which does not meet a software requirement (as stated in the requirement specifications) or end-user expectations (which may not be specified but are reasonable). In other words, a defect is an error in coding or logic that causes a program to malfunction or to produce incorrect/unexpected results.
- A program that contains a large number of bugs is said to be buggy.
- Reports detailing bugs in software are known as bug reports.
- Applications for tracking bugs are known as bug tracking tools.
- The process of finding the cause of bugs is known as debugging.
- The process of intentionally injecting bugs in a software program, to estimate test coverage by monitoring the detection of those bugs, is known as bebugging.
"With IT lifecycle assurance the focus is increased on defect prevention rather than detection" - Maveric System
In software testing a defect is considered to be anything that can hamper the functioning or execution of the software application or service. The defect can be either a failure of a certain section of the code to function accurately, a flaw in the design of the system, or a fault, which could either be an error in the program. A fault can usually be described as an error in the accuracy of the semantics of a program.