Modules
Beginner5 min read

What is a Software Bug?

sign in to track

A software bug (or defect) is any unintended behaviour, output, or side effect in a software system that deviates from its specification or expected behaviour. Understanding the nature, taxonomy, and root causes of bugs is foundational to systematic defect prevention.

Key Points

  • Bug vs Defect vs Error vs Failure: Error (human mistake) → Defect (code flaw) → Failure (observable incorrect behaviour).
  • Bug taxonomy: logic errors, off-by-one errors, null pointer dereferences, race conditions, memory leaks, configuration bugs.
  • The earlier a defect is found, the cheaper it is to fix — requirements defects cost the least; production defects cost the most.
  • Not all bugs are worth fixing — cost of fix, risk of fix, user impact, and frequency of trigger all factor into the decision.
  • Root cause analysis (RCA) transforms individual bugs into systemic improvement opportunities.
Expert Pro Tip

Classify bugs by root cause, not just by severity. If you keep seeing the same root cause (e.g., missing input validation), it points to a process or architectural gap that fixing one bug won't solve.