Reproduction Steps
Writing clear, numbered, imperative steps that let any developer reproduce a bug
Reproduction steps format
- Imperative mood: "Navigate to…", "Click…", "Enter…", "Observe that…"
- Specific inputs: state type (valid/invalid), example values, file types and sizes
- Final step: "Observe that [actual broken behaviour]"
- Environment section: browser, OS, user role, feature flags — separate from steps
- Attachments: screenshot or screen recording attached, not described in steps
Question 0 of 5
Which set of reproduction steps is written correctly?
Numbered, imperative, specific steps ending with "Observe that..." is the correct format. Reproduction step requirements:
- Imperative mood: "Navigate", "Enter", "Click", "Observe" — not "I navigated" or "Try navigating"
- Specific URLs/values: full URL, exact button text in quotes
- Observe step: the final step always describes the actual (broken) outcome
What should the final step in a set of reproduction steps always describe?
The actual behaviour — the observable symptom. Structure of reproduction steps:
- Steps 1–N: imperative actions leading to the bug state
- Final step (Observe / Expected / Actual): what actually happens
- Actual: What happens when you follow the steps above
- Expected: What should have happened instead
A colleague writes: "Enter an email and submit the form." What is the problem with this step?
"An email" is vague — specify the type of input. Why input specificity matters in bug reproduction:
- A bug may only occur with a specific class of input (e.g., email with a
+sign, email already in the DB, very long email) - If steps don't specify the input, different engineers may use different inputs and cannot reproduce the bug
You need to include a step that involves file upload. Which phrasing is best?
Specify file type, size constraint, and the exact UI action sequence. What Option C gets right:
- File type: JPEG — rules out format-specific bugs
- Size constraint: "larger than 5MB" — reproduces the exact edge case
- Example filename: "test-large.jpg" — makes it concrete (the reviewer knows what to prepare)
- Action sequence: Click → Select → Confirm — each UI step named
Which items belong in a bug report's "Environment" section rather than inside the reproduction steps?
Browser, OS, user role, and feature flag state belong in Environment. Bug report sections:
- Title — [Component] symptom when condition
- Steps to Reproduce — numbered imperative actions
- Actual Behaviour — what happens
- Expected Behaviour — what should happen
- Environment — Browser/version, OS/version, App version, User role (admin/free/paid), Feature flags enabled, Device (mobile/desktop)
- Attachments — screenshots, logs, video