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.
- Start signed in as an editor on a test workspace with an existing draft. Open the draft in the dashboard.
- Change the draft title to “Release notes test”.
- 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.
- Start on the client staging contact page in a clean session, at a 390 px viewport, with test contact details.
- Enter a message, leave Email empty, and submit to show the validation message.
- 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 generatorExamples 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 trialAgency / 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