2 / 56 · 18 Test Management Tools · Jira Workflows for Defect Tracking← prev⊞ allnext →☰ Read as one page
1.2Writing Clear Defect Tickets
A good bug ticket answers three questions: What happened? What should have happened? How do I reproduce it?
The Template
Title: Checkout fails with 500 error when applying expired coupon code
Priority: High
Severity: Critical
Component: Checkout / Payments
Environment: Staging (v2.4.1), Chrome 120, macOS 14
Sprint: Sprint 23
Steps to Reproduce:
1. Add any item to cart
2. Proceed to checkout
3. Enter expired coupon code "SAVE20-2024"
4. Click "Apply"
Expected: Error message "This coupon has expired" displayed inline
Actual: Page returns HTTP 500, user sees generic error page
Additional Context:
- Valid coupon codes work correctly
- Bug introduced after commit abc123f (coupon validation refactor)
- Server logs show NullPointerException in CouponService.validate()
- Affects all users, not environment-specific
Attachments: screenshot.png, server-error-log.txt, HAR file
What Makes This Effective
- Title is specific: "Checkout fails with 500 error when applying expired coupon" is searchable and unambiguous. Compare with "checkout broken" which tells you nothing.
- Steps are numbered and precise: A developer can reproduce in under a minute.
- Expected vs Actual is clear: No guessing about what should happen.
- Additional context narrows the investigation: The commit reference and server log save hours of debugging.
- Attachments prove the issue: Screenshots and logs are evidence, not anecdote.