BugMojoBugMojoBugMojo
FeaturesPricingBlogGuidesAbout
Log inGet started
BugMojoBugMojo

Bug reports that actually help fix bugs — capture, replay, share.

A product of Softech Infra.

Product

  • Features
  • Pricing
  • Get started
  • Log in

Resources

  • Blog
  • Guides
  • Compare
  • Glossary

Company

  • About
  • Contact
  • Privacy
  • Sitemap
  • Engineering
  • Playbooks
© 2026 BugMojo. All rights reserved.
AllGuidesEngineeringPlaybooksCompareGlossaryAlternativesBy roleBug tracking by framework
  1. Home
  2. Blog
  3. Glossary
  4. What Is a Bug Report? Anatomy, Examples, and a Free Template
Glossary

What Is a Bug Report? Anatomy, Examples, and a Free Template

A bug report is a structured record that lets an engineer reproduce, diagnose, and fix one defect. Here is the anatomy, a copy-paste template, and which fields auto-fill from a capture.

ManviManvi·Jun 5, 2026·5 min read
Glossary
An isometric line-art bug report card with labeled rows for title, steps, expected vs actual, environment and severity, a lime connector auto-filling the environment row from a browser-capture glyph, and an MCP agent node reading the same fields
TL;DR
  • A bug report is a structured record of one defect that lets an engineer reproduce, diagnose, and fix it.
  • Six anatomy fields cover nearly every case: title, steps to reproduce, expected vs actual, environment, and severity.
  • Research is blunt: steps to reproduce and stack traces are the most useful fields — and the hardest for humans to supply.
  • In a BugMojo capture, environment and actual-result (replay, console, network) auto-fill; you write only the title, expected result, and severity.

Definition

A bug report is a structured record of a single software defect. It contains a title, steps to reproduce, the expected result versus the actual result, the environment, and a severity. Its job is to let an engineer reproduce and fix the bug from the report alone.

You will also see the formal term defect report. The ISTQB glossary defines it as a structured record of a defect, and lists the canonical fields: an ID, a summary, steps to reproduce, expected versus actual result, severity, priority, environment, and attachments. ISTQB also draws a line you should keep in mind — a defect is not the same as an incident. An incident is any event during testing that needs investigating, and only some incidents turn out to be real defects. Triage is the step that promotes an incident into a confirmed bug.

Why it matters

The whole point of a bug report is reproduction. Google's web.dev guide to filing a good browser bug puts it plainly: a minimal, reproducible test case is the single biggest factor in whether a bug gets fixed. It lists the core components you need — a clear description, steps to reproduce, the expected result, the actual result, a minimized test case, and environment details such as OS, display DPI, and browser version. Mozilla's bug writing guidelines say the same in different words: precise steps, an explicit expected-versus-actual pair, and the environment it happened in.

There is hard evidence for which fields matter most. In the most-cited study on the subject, Bettenburg et al. (FSE 2008) surveyed 466 developers and reporters across the Apache, Eclipse, and Mozilla projects. They found a structural mismatch: developers rank steps to reproduce, stack traces, and test cases as the most useful contents of a report — yet those are precisely the items reporters find hardest to supply. The same paper built a prototype quality tool, CUEZILLA, trained on 289 manually rated reports, that predicted report quality with 31–48% accuracy. The takeaway is that report quality is measurable, structured, and dominated by two fields most people skip when they are in a hurry.

The copy-paste mini template

Six fields, in order. Fill every one before you submit.

Title: [one specific sentence — what broke, where]

Steps to reproduce:
1. 
2. 
3. 

Expected: [what should happen]
Actual:   [what happened — include the error / stack trace]

Environment: [OS · browser/app version · build or commit · URL]
Severity:    [blocker / major / minor / trivial]
An anatomy diagram of a bug report card with five labeled stacked rows — Title, Steps to Reproduce, Expected vs Actual, Environment, Severity — where a lime connector auto-fills the Environment and Actual rows from a browser-capture glyph and a dotted lime line feeds the same fields to an MCP agent node
Anatomy of a bug report: five field rows. The reporter writes title, expected, and severity; a capture fills environment and the actual-result evidence (replay, console, network).

How this shows up in a real BugMojo bug report

Here is where the Bettenburg mismatch becomes a product decision. The fields developers value most are the ones reporters struggle to write — so the right move is to capture those fields automatically rather than ask a human to type them. When you grab a bug with the BugMojo browser extension, the environment row reads itself from the browser and page (OS, browser version, URL, viewport). The actual result is backed by an rrweb session replay plus the console logs and network requests captured at the instant of failure, so the stack trace and the failing POST /api/cart are attached without anyone copying them. What is left for the human is exactly the part a machine cannot infer: a clear title, the expected result, and a severity. For the field-by-field craft of writing those well, see the guide on how to file a bug report.

The second shift is who reads the report. Most bug formats are prose written for people, which means an AI agent has to guess where the fields are. Teams that adopt structure tend to enforce it at the platform level — GitHub issue forms let maintainers 'customize and standardize the information you'd like contributors to include' through typed, required fields. BugMojo takes the same typed anatomy and exposes it over an MCP server, so an agent like Claude Code or Cursor reads the title, steps, expected-versus-actual, environment, console, network, and replay as structured context. That matters more every year: in the 2024 Stack Overflow Developer Survey, 62% of developers reported using AI tools in their workflow (up from 44%) and 76% are using or planning to. Bug context now has to be readable by machines, not just humans.

FeatureBug-report capabilityBugMojoManual report / generic issue form
Environment auto-filled from the browser/page—✓—
Actual result backed by an rrweb session replay—✓—
Console + network captured at the failure instant—✓By hand
Steps to reproduce derived from the real session—From replayTyped from memory
Bug context exposed to an AI agent over MCP—✓—
Aggregate uncaught exceptions across production at scale——✓
Deep workflow admin (custom states, SLAs, sprints)——✓
Two-sided: BugMojo auto-fills the hardest fields and exposes them over MCP, but it is not a production error-monitoring tool and not a Jira-grade workflow.
Key takeaway

A bug report is judged by one test: can a developer who has never seen the issue reproduce it from the report alone? The research says steps to reproduce and stack traces decide that — and that those are the fields humans skip. The fix is structural: capture the hard fields automatically, leave the human the title, expected result, and severity, and expose the whole typed anatomy so an agent can read it too.

Stop typing the fields a capture can fill

BugMojo's extension auto-fills environment and the actual-result evidence — replay, console, network — then exposes the whole typed report to Claude Code or Cursor over MCP. You write the title, expected result, and severity; the hard fields fill themselves.

Install the extension

Frequently asked questions

Frequently asked questions

Sources

  1. Bettenburg, Just, Schröter, Weiss, Premraj, Zimmermann — "What Makes a Good Bug Report?" (ACM SIGSOFT FSE 2008, 466 survey responses) — ACM SIGSOFT / Thomas Zimmermann (author copy) (2008-11-09)
  2. What makes a good bug report? — ACM Digital Library record (FSE-16 proceedings) — ACM (2008)
  3. How to file a good browser bug — steps to reproduce + minimized test case — Google web.dev (2024)
  4. Bug writing guidelines — precise steps, expected vs actual, environment — Mozilla / MDN (2024)
  5. defect report — ISTQB Glossary term definition — ISTQB (2024)
  6. About issue and pull request templates — typed, required issue-form fields — GitHub (2024)
  7. AI — 2024 Stack Overflow Developer Survey (AI tool adoption among developers) — Stack Overflow (2024)
Share:
Manvi
Manvi· QA Tester

Manvi is a Quality Assurance Tester with three years of experience. For her, quality is not just about finding bugs — it is about ensuring the best possible experience for every user.

On this page

  • Definition
  • Why it matters
  • How this shows up in a real BugMojo bug report

Get bug-tracking insights, weekly.

Engineering deep-dives, QA playbooks, and honest tool comparisons. No spam — unsubscribe in one click.