Modern QA2026Writing Clear Defect Tickets — tiles
Log inJoin
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.