What Is a Bug in Software and How Do You Track It?

A software bug is any flaw, error, or unintended behavior in a program that causes it to produce a wrong or unexpected result. Bugs get reported, recorded, prioritized, fixed, and verified — and a bug tracker like MantisBT is the system that holds that process together. If you need to understand what a bug actually is and how a team moves one from "something's broken" to "fixed and confirmed," this covers the definition, the lifecycle, and the practical steps.

What counts as a bug

A bug is not only a crash. It is any gap between what the software is supposed to do and what it actually does. Common categories:

  • Functional errors — a button does nothing, a total calculates wrong, a form saves the wrong value.
  • Crashes and hangs — the program stops responding or exits unexpectedly.
  • Performance problems — a page that should load instantly takes 30 seconds.
  • Usability and display issues — text overlaps, a label is misleading, a layout breaks on mobile.
  • Security and data issues — unauthorized access, data loss, or corruption.

Common causes include coding mistakes, unclear or changing requirements, integration problems between components, and environment differences (the developer's machine behaves differently from the user's).

The bug lifecycle: from report to resolution

Most trackers, including MantisBT, follow a similar path. A typical sequence:

  1. Reported — someone (tester, developer, or client) files the issue with details.
  2. Acknowledged / assigned — a maintainer reviews it and assigns it to a person or team.
  3. In progress — the assignee works on a fix.
  4. Resolved — a fix is submitted; the issue is marked resolved.
  5. Verified / closed — the reporter or a tester confirms the fix works, then closes it.
  6. Reopened — if the fix doesn't hold, the issue goes back into the cycle.

Not every bug follows every step in order, and teams often add states like "feedback" or "won't fix." The point of the lifecycle is that every bug has a visible status, so nobody has to guess whether it's been handled.

How a bug tracker captures a bug

A bug tracker is the shared record of every issue, its status, and who owns it. MantisBT is an open source, web-based issue tracker built on PHP that supports MySQL, MS SQL, and PostgreSQL databases, and runs on Linux, Windows, and macOS servers. It describes itself as balancing simplicity and power — users can get started in minutes and begin managing projects while collaborating with teammates and clients.

When a bug is filed in a tracker like MantisBT, the record typically holds:

  • A summary and description of the problem
  • Steps to reproduce and the expected vs. actual result
  • Severity and priority so the team knows what to fix first
  • Assignee, status, and project so ownership is clear
  • Comments and history as the issue moves through its lifecycle

That structure is what turns a vague complaint into something a developer can act on.

Keeping the team informed: notifications and access control

Two features matter most once more than one person is involved.

Email notifications keep the team and clients updated on issue updates, resolutions, or comments — so people don't have to poll the tracker to know what changed.

Access control lets you set per-project, role-based permissions, so different users see and do different things. That matters when clients, contractors, and internal staff all touch the same project.

MantisBT also emphasizes customizability — you can adjust issue fields, notifications, and workflow to match how your team actually works rather than forcing a fixed process.

How to report a clear, actionable bug

A good report saves everyone a round of back-and-forth. Before filing, gather:

  1. What you did — the exact steps, in order, that led to the problem.
  2. What you expected — the correct behavior.
  3. What actually happened — the wrong behavior, including any error message.
  4. Where and when — the version, environment, browser or device, and whether it happens every time.
  5. Evidence — a screenshot, log excerpt, or short recording if it helps.

Then file it in the tracker with a specific summary (not "it's broken" but "Save button returns 500 error on the profile page"). Assign a severity, and let the lifecycle take over.

Choosing whether a tracker fits

If your team is small and informal, a shared spreadsheet can work for a while. Once you have multiple projects, external clients, or more than a couple of contributors, a dedicated tracker earns its place: it centralizes status, automates notifications, and enforces access rules.

MantisBT is a reasonable fit if you want an open source, self-hosted option under the GPL, need role-based access control per project, and value customizable fields and workflows. It's worth evaluating against your own requirements — the project offers a demo and downloads so you can try it before committing. If you'd rather not run your own server, hosting options are also listed among its resources.

mantisbt.org
MantisBT is a popular free web-based bug tracking system. It is written in PHP works with MySQL, MS SQL, and PostgreSQL databases. MantisBT has been …
memtest.org
Memtest86+ is an advanced, free, open-source, stand-alone memory tester for 32- and 64-bits architecture computers. Compatible with BIOS & UEFI.
rmtrack.com
A web-based bug tracker, issue tracker, and defect tracker application. Downloadable. Free 14-day trial.