Modules
Beginner⏱ 5 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.