Guide

Reproduction-steps checklist

Write clear steps for consistent, intermittent, and browser-specific bugs with expected results and a useful environment record.

Copy the checklist

Start with the state a teammate can recreate, then give one action per step. Record what you expected and what you saw. If the failure comes and goes, report attempts and failures instead of saying “sometimes”.

# Reproduction checklist

Title: [Name the observed failure, not a suspected cause]

Reproduction steps:
Starting state: [Page, signed-in role or clean session, test data, and relevant setting]
1. [One action with the exact control or value]
2. [Next action]
3. [Action that exposes the failure]

Expected result: [What should happen after the last step]
Actual result: [What happened, including the visible message or missing change]
Environment: [Tested release, page, browser and version, OS/device, viewport, relevant extensions or settings]
Evidence references: [Reviewed screenshot, recording, console excerpt, or issue link; omit private data]

Frequency: [Attempts and failures, for example 2 of 5; say if untested]
Comparison: [Other browser/device/session tested, its result, and its version; say if untested]

Before sharing: Repeat from the stated starting state. Remove personal data, tokens, and client details from steps and evidence.

Worked examples

Builder

Intermittent save failure in a dashboard

Example only: these counts describe a sample report, not a measured product failure.

Reproduction steps
  1. Start signed in as an editor on a test workspace with an existing draft. Open the draft in the dashboard.
  2. Change the draft title to “Release notes test”.
  3. Select Save once and wait for the save indicator to finish before trying again.

Expected result: The saved draft shows the new title after reopening it.

Actual result: On two of five example attempts, the save indicator finished but the old title remained after reopening.

Environment: Example: staging release 2026.10, Chrome 129 on macOS, desktop viewport 1440 × 900.

Comparison: Example: five attempts in a clean Chrome profile; record the result rather than assuming an extension caused the difference.

Agency / QA

Client contact form in one mobile browser

Example only: replace the sample environment with the tested client release and device.

Reproduction steps
  1. Start on the client staging contact page in a clean session, at a 390 px viewport, with test contact details.
  2. Enter a message, leave Email empty, and submit to show the validation message.
  3. Enter a valid test email address and submit again.

Expected result: The message remains in the form and a confirmation appears after the corrected submission.

Actual result: In this example, the message clears after validation on Safari; no confirmation appears on the next submit.

Environment: Example: Safari 18 on iPhone 15, iOS 18, 390 × 844 viewport, client staging release 2026.10.

Comparison: Example: repeat the same starting state and steps in Chrome on Android and record its version and result. A different outcome narrows the report; it does not prove a browser cause.

Turn your notes into a report

Paste your notes into the free bug-report generator. Its fields match this checklist: Title, Reproduction steps, Expected result, Actual result, Environment, and Evidence references. Review private details before sharing the finished report.

Open bug-report generator

Examples for your team

Builder example

A builder starts from a signed-in dashboard, opens a draft, changes a field, and records exactly which save attempt fails.

Start your 14-day free trial

Agency / QA example

A QA tester repeats a browser-specific failure in a clean session and records the frequency, viewport, and tested release.

Start your 14-day free trial

Capture the next report with ContextCapture

Start a 14-day free trial. The beta plan is $7.99 per month for unlimited projects and reports, with up to five team members.