Nodea — logo

Bug

A bug is a defect in software: a flaw in the source code, configuration or design that makes a program behave differently from what its authors intended — wrong results, erratic behavior or an outright crash. Bugs are an unavoidable by-product of building software; mature engineering does not promise zero defects, it builds processes that catch them early and limit the damage of the ones that slip through.

How the bug life cycle works

In organized teams a defect follows a formal path: a report (with reproduction steps, expected vs. actual behavior), triage (severity and priority), assignment, a fix, code review, regression testing and closure. By nature, bugs fall into recognizable families:

  • syntax errors — caught by the compiler or linter before the code ever runs,
  • logic errors — the program runs but computes or decides incorrectly; the hardest class to spot,
  • runtime errors — unhandled exceptions, null references, division by zero,
  • race conditions — concurrency defects that appear intermittently under load and vanish in the debugger,
  • regressions — features broken by later, seemingly unrelated changes,
  • security bugs — defects an attacker can weaponize, tracked publicly as CVEs.

Practical use — finding and fixing bugs

The developer's core loop is debugging: reproduce the failure, narrow the cause (debugger, logging, bisecting Git history), fix it, and add a test that keeps it fixed. At the process level, teams defend in depth with unit tests and integration tests in CI, static analysis, code review, and production error monitoring (tools like Sentry) that aggregates real-user exceptions and reveals a bug's true blast radius.

When reporting a bug, quality beats speed: include the environment (version, OS, browser), minimal reproduction steps, expected and actual results, and logs or screenshots. Reproduction is usually the most expensive part of a fix, and a precise report shortens it dramatically. Security-relevant defects deserve a separate, confidential channel — increasingly a formal bug bounty program.

Powiązane pojęcia

Najczęstsze pytania

Why is a software defect called a bug?

Engineers used "bug" for technical faults as early as the 19th century — Edison used the word in his letters. Computing folklore added the famous 1947 incident, when Grace Hopper's team taped an actual moth found in a relay of the Harvard Mark II into the logbook as the "first actual case of bug being found".