Bug Reporting
中文版: 见技能 bug-reporting 。
Prompts: see prompts/bug-reporting_EN.md in this directory.
When to Use
-
User mentions bug reporting, defect reporting, bug report, or defect report
-
Need to write or optimize defect reports
-
Trigger: e.g. "Help me write a bug report" or "Optimize this bug description"
Output Format Options
This skill defaults to Markdown output (consistent with Standard-version template). For other formats, specify at the end of your request:
Format Description How to Request (Example)
Markdown Default, easy to read and version control No need to specify
Jira Jira format with custom fields "Please output in Jira format"
GitHub Issues GitHub Issues format "Please output in GitHub Issues format"
Excel Tab-separated, paste into Excel "Please output as tab-separated table for Excel"
CSV Comma-separated, header row first "Please output in CSV format"
JSON Easy for program parsing "Please output in JSON format"
See output-formats.md for detailed specifications and examples.
How to Use
-
Open the relevant file in this directory's prompts/ and copy the content below the dashed line.
-
Append your requirements and context (business flow, environment, constraints, acceptance criteria).
-
If you need non-Markdown output, append the request sentence from output-formats.md at the end.
Reference Files
-
prompts/bug-reporting_EN.md — Bug reporting Standard-version prompts
-
output-formats.md — Markdown / Jira / GitHub / Excel / CSV / JSON request instructions
Code Examples
This skill provides the following real code examples:
Bug Report Templates and Examples - Complete defect report template collection
-
10+ real bug report examples
-
Multiple format templates (Markdown, Jira, GitHub)
-
Best practices and anti-pattern comparisons
-
Automated report generation scripts
Screenshot and Log Collection Tools (coming soon)
Bug Report Quality Checker (coming soon)
Check examples directory for more examples.
Common Pitfalls
-
❌ Unclear title → ✅ Use concise, clear title with key information
-
❌ Missing reproduction steps → ✅ Provide detailed, reproducible steps
-
❌ No environment info → ✅ Include OS, browser, version, etc.
-
❌ Just saying "doesn't work" → ✅ Describe difference between expected and actual behavior
-
❌ No attachments → ✅ Add screenshots, videos, log files
-
❌ Emotional descriptions → ✅ Maintain objective, professional tone
-
❌ Multiple issues in one report → ✅ Report each defect separately
Best Practices
- Title Writing
Good Titles:
-
✅ [Login] Login fails with special character password
-
✅ [Cart] Total price not updated after deleting item
-
✅ [iOS] App crashes on iPhone 12 at startup
Bad Titles:
-
❌ Login has problem
-
❌ Bug
-
❌ This doesn't work
- Reproduction Steps
Use numbered list, clear and specific:
Reproduction Steps
- Open app and login (username: test@example.com)
- Click "Cart" icon
- Add item A to cart (price: $100)
- Add item B to cart (price: $200)
- Click "Delete" button next to item A
- Observe total price display
Expected Result
Total price should update to $200 (only item B)
Actual Result
Total price still shows $300 (not updated)
- Environment Information
Provide complete environment info:
Test Environment
- OS: macOS 13.5
- Browser: Chrome 120.0.6099.109
- App Version: v2.3.1
- Test Environment: Staging (https://staging.example.com)
- User Role: Regular user
- Network: WiFi
- Screen Resolution: 1920x1080
- Severity and Priority
Severity:
-
Critical: System crash, data loss, security vulnerability
-
High: Core functionality unusable
-
Medium: Functionality works but has obvious issues
-
Low: UI issues, text errors
Priority:
-
P0: Fix immediately (blocks release)
-
P1: Fix ASAP (within this week)
-
P2: Plan to fix (within this iteration)
-
P3: Can defer (next iteration)
- Attachments and Evidence
-
📸 Screenshots: Annotate key areas
-
🎥 Videos: Show operation process
-
📄 Logs: Console logs, error logs
-
🔗 Links: Related docs, similar issues
- Impact Scope
Describe the problem's impact:
Impact Scope
- Affected Users: All users using cart
- Occurrence Rate: 100% (happens every time item is deleted)
- Business Impact: Users may pay wrong amount, leading to complaints
- Workaround: Total price displays correctly after page refresh
Troubleshooting
Issue 1: Defect marked as "Cannot Reproduce"
Symptom: Developers cannot reproduce the problem you reported
Solution:
-
Provide more detailed reproduction steps
-
Record video showing the problem
-
Provide test data and accounts
-
Check if it's environment-specific
-
Reproduce together with developers
Improved Example:
Reproduction Steps (Detailed Version)
Preconditions:
- Use test account: test@example.com / Test123!
- Cart already has 2 items
- Browser cache and cookies cleared
Detailed Steps:
- Open Chrome browser (version 120+)
- Visit https://staging.example.com
- Click "Login" button in top right
- Enter email: test@example.com
- Enter password: Test123!
- Click "Login" button
- Wait for page redirect to homepage (about 2 seconds)
- Click cart icon in top right (shows number 2)
- On cart page, find first item
- Click red "Delete" button on right side of that item
- Observe total price display in top right
Expected: Total price changes from $300 to $200 Actual: Total price still shows $300
Attachments:
- Video: bug-reproduction.mp4
- Console log: console-log.txt
Issue 2: Defect report considered unclear
Symptom: Multiple back-and-forth communications needed to understand the problem
Solution:
-
Use 5W1H principle (What, When, Where, Who, Why, How)
-
Add screenshots and annotate key areas
-
Use comparison table to show expected vs actual
-
Provide specific data examples
Improved Example:
Problem Description
What (What problem): Users cannot login with special character passwords
When (When it occurs):
- First discovered: 2024-02-06 14:30
- Occurrence frequency: Every time using password with
@#$%
Where (Where):
- Page: Login page (https://example.com/login)
- Component: Password input field
Who (Who is affected):
- All users with special character passwords
- Estimated 15% of users affected (based on password policy)
Why (Why it matters):
- Password policy requires special characters
- Users cannot login leads to churn
How (How it manifests):
| Password Type | Example | Can Login |
|---|---|---|
| Letters only | abcdefgh | ✅ Yes |
| Letters+numbers | abc12345 | ✅ Yes |
Contains @ | abc@1234 | ❌ No |
Contains # | abc#1234 | ❌ No |
Contains $ | abc$1234 | ❌ No |
Issue 3: Don't know how to determine severity
Symptom: Unsure whether to mark as High or Medium
Solution:
Use decision tree:
-
Does it cause system crash/data loss/security issue? Yes → Critical No → Continue
-
Does it affect core business process? Yes → High No → Continue
-
Is there a workaround? No → High Yes → Continue
-
Does it affect user experience? Severely → Medium Slightly → Low
Issue 4: Bug report too long, nobody reads it
Symptom: Report is very detailed but developers say it's too long
Solution:
Use "inverted pyramid" structure:
[Login] Special character password login fails
🔴 Quick Summary (30-second read)
Cannot login with passwords containing @#$% special characters.
Affects 15% of users, no workaround.
📋 Core Information
- Severity: High
- Impact: All users with special character passwords
- Frequency: 100%
- Environment: All browsers
🔄 Quick Reproduction (3 steps)
- Visit login page
- Enter password
Test@123 - Click login → Fails
📖 Detailed Information (expand when needed)
<details> <summary>Detailed Reproduction Steps</summary>
- Open browser...
- ...(detailed steps)
</details>
<details> <summary>Environment Information</summary>
- OS: macOS 13.5
- Browser: Chrome 120
- ...
</details>
<details> <summary>Technical Details</summary>
Console error:
Error: Invalid character in password field
</details>
Issue 5: Don't know how to describe intermittent issues
Symptom: Problem occurs sometimes but not always, hard to describe
Solution:
Record multiple observations:
Problem Description
Login functionality fails intermittently
Observation Log
| Time | Result | Environment | Notes |
|---|---|---|---|
| 2024-02-06 10:00 | ✅ Success | Chrome | First attempt |
| 2024-02-06 10:05 | ❌ Failed | Chrome | Second attempt |
| 2024-02-06 10:10 | ❌ Failed | Chrome | Third attempt |
| 2024-02-06 10:15 | ✅ Success | Chrome | Fourth attempt |
| 2024-02-06 14:00 | ❌ Failed | Firefox | First attempt |
Pattern Analysis
- Failure Rate: 60% (6/10 attempts)
- Possible Related Factors:
- Time: Higher failure rate in morning
- Network: More likely to fail on WiFi
- Load: May be related to server load
Possible Root Cause Hypotheses
- Server timeout when load is high
- Network instability causes request failure
- Session management issue
Issue 6: Defect marked as "Working as Designed"
Symptom: You think it's a bug, but told it's expected behavior
Solution:
-
Reference requirements docs or design specs
-
Explain user experience issues
-
Provide competitor comparisons
-
Suggest improvement solutions
Problem Description
Deleting cart item requires double confirmation, affects user experience
Why This Is a Problem
User Experience Perspective:
- User expectation: Direct delete after clicking (with undo)
- Actual experience: Need to click twice, increases operation cost
- Competitor comparison: Taobao, JD all use direct delete + undo
Data Support:
- User research: 85% of users think double confirmation is redundant
- Operation data: 60% of users pause over 3 seconds at confirmation dialog
Suggested Solutions:
- Direct delete, provide "Undo" button (recommended)
- Only confirm when deleting multiple items
- Add "Don't show again" option
References
- Requirements doc: PRD-2024-001 Section 3.2
- Design spec: Figma link
- Competitor analysis: attached-competitor-analysis.pdf
Issue 7: Don't know how to report performance issues
Symptom: Page is "slow" but don't know how to quantify
Solution:
Provide performance metrics:
Problem Description
Homepage loading speed too slow
Performance Data
Test Method: Chrome DevTools Performance panel
Test Results:
| Metric | Current | Target | Status |
|---|---|---|---|
| FCP (First Contentful Paint) | 3.2s | <1.8s | ❌ Over |
| LCP (Largest Contentful Paint) | 5.8s | <2.5s | ❌ Over |
| TTI (Time to Interactive) | 7.2s | <3.8s | ❌ Over |
| Total Blocking Time | 850ms | <200ms | ❌ Over |
Network Conditions: Fast 3G (simulated)
Performance Bottlenecks:
- Main thread blocked 2.3s (JavaScript execution)
- Images not optimized (total size 4.5MB)
- CDN not used
- Gzip compression not enabled
Attachments:
- Performance report: performance-report.json
- Network screenshot: network-waterfall.png
- Lighthouse report: lighthouse-report.html
Get More Help
If the issue is still unresolved:
-
Check FAQ.md
-
Check example README.md files
-
Reference bug report templates
-
Consult team's test lead
Related Skills: manual-testing-en, test-case-writing-en, test-reporting-en, functional-testing-en.
Target Audience
-
QA engineers and developers executing this testing domain in real projects
-
Team leads who need structured, reproducible testing outputs
-
AI users who need fast, format-ready deliverables for execution and reporting
Not Recommended For
-
Pure production incident response without test scope/context
-
Decisions requiring legal/compliance sign-off without expert review
-
Requests lacking minimum inputs (scope, environment, expected behavior)
Critical Success Factors
-
Provide clear scope, environment, and acceptance criteria before generation
-
Validate generated outputs against real system constraints before execution
-
Keep artifacts traceable (requirements -> test points -> defects -> decisions)
Output Templates and Parsing Scripts
-
Template directory: output-templates/
-
template-word.md (Word-friendly structure)
-
template-excel.tsv (Excel paste-ready)
-
template-xmind.md (XMind-friendly outline)
-
template-json.json
-
template-csv.csv
-
template-markdown.md
-
Parser scripts directory: scripts/
-
Parse (generic): parse_output_formats.py
-
Parse (per-format): parse_word.py , parse_excel.py , parse_xmind.py , parse_json.py , parse_csv.py , parse_markdown.py
-
Convert (generic): convert_output_formats.py
-
Convert (per-format): convert_to_word.py , convert_to_excel.py , convert_to_xmind.py , convert_to_json.py , convert_to_csv.py , convert_to_markdown.py
-
Batch convert: batch_convert_templates.py (outputs into artifacts/ )
Examples:
python3 scripts/parse_json.py output-templates/template-json.json python3 scripts/parse_markdown.py output-templates/template-markdown.md python3 scripts/convert_to_json.py output-templates/template-markdown.md python3 scripts/convert_output_formats.py output-templates/template-json.json --to csv python3 scripts/batch_convert_templates.py --skip-same