Manage Defects
Learn how to manage defect lifecycle, triage bugs, and track resolution
Manage Defects
Triage, assign, and resolve defects through their lifecycle. This guide covers how to manage defects, prioritize what to fix, and verify that fixes work.
Workflow 1: Defect Triage (What to Do with New Bugs)
New defects come in continuously. Triage ensures each bug gets evaluated, prioritized, and routed to the right person.
Steps
-
Review new defects
- Check for defects with "Open" status
- Sort by creation date to see newest first
- Filter by severity to address critical bugs first
-
Assess defect quality
- Is the title clear and specific?
- Are reproduction steps provided?
- Is there sufficient context (screenshots, logs)?
- Action: Request more information if details are missing
-
Verify it's a genuine bug
- Is this a product issue or a test problem?
- Can you reproduce the issue?
- Is it a duplicate of an existing defect?
- Action: Close if not a bug, link if duplicate
-
Set or adjust severity
- Evaluate impact on users
- Consider affected workflows
- Assess if workaround exists
- Action: Update severity if default is incorrect
-
Assign priority
- Critical/High severity → Urgent or High priority
- Medium severity → Medium or Low priority based on context
- Low severity → Low priority unless high visibility
-
Route to the right owner
- Assign to developer responsible for the component
- Consider current workload and expertise
- Action: Assign or set to "Unassigned" if unclear
-
Update defect status
- Move from "Open" to "In Progress" if assigned
- Keep as "Open" if awaiting assignment or more info
-
Document triage decisions
- Add a comment explaining severity/priority choices
- Note any assumptions or uncertainties
- Record if triage is deferred for more information
Triage Outcomes
| Outcome | Status | Notes |
|---|---|---|
| Valid bug, needs fixing | In Progress | Assigned to developer |
| Valid bug, but not now | Open | Set lower priority |
| Not a bug (test issue) | Closed | Add explanation |
| Duplicate | Open | Link to original defect |
| Needs investigation | Open | Add comment with questions |
| Already fixed | Resolved | Link to fix if available |
Frequency
- Daily: For critical/high severity bugs
- 2-3x per week: For medium/low severity bugs
- Per milestone: Full backlog review
See Also
Workflow 2: Assign and Reassign Defects
Defects need clear ownership. Assign bugs to team members and reassign as context changes.
Initial Assignment
-
Navigate to the defect
- Open the defect details page
-
Choose an assignee
- Consider component ownership
- Check current workload
- Match expertise to the issue
-
Assign the defect
- Select the assignee from the dropdown
- Optionally add a comment explaining the assignment
-
Notify the assignee
- Qualflare sends notification to the assignee
- Consider @mentioning in Slack or email for urgent bugs
Reassigning Defects
When ownership changes:
-
Reassign the defect
- Update the assignee field
- Critical: Add a comment explaining why
-
Common reassignment reasons
- Original assignee is unavailable
- Issue belongs to a different component
- Workload balancing
- Expertise better matched elsewhere
-
Maintain context
- Previous assignee should share findings
- Link to related discussions or commits
- Document attempted solutions
Unassigned Defects
Keep bugs unassigned when:
- Owner is unclear during triage
- Awaiting team capacity planning
- Needs investigation before routing
- Candidate for backlog rather than active work
Best Practices
- One owner per defect: Avoid co-assignment
- Communicate changes: Always comment when reassigning
- Respect workload: Check assignee's current defect count
- Escalate stuck bugs: Reassign if defect isn't progressing
See Also
Workflow 3: Update Defect Status Through the Lifecycle
Defects progress through statuses from creation to resolution. Update status accurately to reflect the current state.
Defect Lifecycle States
| Status | Meaning | When to Use |
|---|---|---|
| Open | New defect, not yet investigated | Initial state after creation |
| In Progress | Someone is actively working on it | Assignee has started investigation or fix |
| Resolved | Fix is implemented, needs verification | Code change is committed/pushed |
| Closed | Fix verified, defect is complete | QA confirms the fix works |
| Reopened | Fix didn't work, bug still exists | Verification failed, bug remains |
Status Transitions
Open → In Progress
When: Assignee starts working on the bug
Steps:
- Assign the defect (if not already assigned)
- Change status to "In Progress"
- Optionally add a comment with initial assessment
In Progress → Resolved
When: Developer implements the fix
Steps:
- Commit and push the code change
- Link the commit or PR to the defect (in a comment)
- Change status to "Resolved"
- Add a comment describing the fix
- Assign to QA engineer for verification
Resolved → Closed
When: QA confirms the fix works
Steps:
- Verify the fix
- If tests pass, change status to "Closed"
- Add a comment confirming verification
- Optionally note test cases or launch used for verification
Resolved → Reopened
When: Fix doesn't work or introduces new issues
Steps:
- Attempt to verify the fix
- If the bug persists, change status to "Reopened"
- Add a comment explaining what's still broken
- Reassign to the original developer or a new owner
Any Status → Closed (Without Fix)
When: Defect is not a bug, won't be fixed, or is a duplicate
Steps:
- Determine the reason (not a bug, duplicate, won't fix)
- Change status to "Closed"
- Critical: Add a detailed comment explaining why
- For duplicates, link to the original defect
Closed → Reopened
When: Bug reappears after being closed
Steps:
- Verify the bug has returned
- Change status to "Reopened"
- Add a comment with new context (environment, version, etc.)
- Assign to appropriate developer
Status Update Best Practices
- Always comment: Explain why you changed the status
- Link your work: Reference commits, PRs, or test launches
- Don't skip Resolved: Go In Progress → Resolved → Closed (not directly to Closed)
- Keep it moving: Stuck defects indicate process problems
See Also
Workflow 4: Verify Defect Fixes with Test Re-runs
Before closing a defect, verify that the fix actually works. Re-run the tests that originally failed.
Steps
-
Identify linked test cases
- Open the defect
- Review the "Linked Case Runs" section
- Note which test cases originally failed
-
Create a verification launch
- Create a new launch for verification testing
- Include the test cases linked to the defect
- Consider adding related test cases (regression testing)
-
Execute the tests
- Run the launch in the appropriate environment
- Monitor test execution
-
Check the results
- Pass: Tests that previously failed now pass
- Fail: Original bug still exists or fix introduced new issues
-
Update the defect status
- If passed: Change status from "Resolved" to "Closed"
- If failed: Change status to "Reopened" and add comments
-
Document verification
- Add a comment linking to the verification launch
- Note the environment and any special conditions
Regression Testing
When verifying fixes, also run:
- Related test cases: Tests in the same feature area
- Integration tests: Tests that exercise the modified code
- Smoke tests: Quick checks that core functionality still works
This catches fixes that break other features.
Automated Verification
If using CI/CD:
- Configure the pipeline to run linked tests when code is merged
- Automatically update defect status based on test results
- Notify team if regression is detected
What If the Bug Intermittently Fails?
For flaky bugs:
- Run multiple times: Execute the test several times
- Check frequency: If it fails less often, the fix may have reduced but not eliminated the issue
- Document: Add a comment noting the flakiness and remaining frequency
- Decide:
- Close if improvement is sufficient
- Keep open if bug still occurs regularly
Best Practices
- Use the same environment: Reproduce conditions of the original failure
- Verify in production-like environment: Staging or pre-prod if possible
- Don't assume: Even if the developer says it's fixed, verify independently
- Check for side effects: Ensure the fix didn't break other things
See Also
- Run test launches
- Case runs - Understanding test results
Workflow 5: Generate Defect Reports for Retrospectives
Track defect trends and communicate quality status to stakeholders with regular reports.
Types of Defect Reports
Sprint/Milestone Summary
Report on defects for the completed iteration:
Metrics to include:
- Total defects opened vs. resolved
- Breakdown by severity (critical, high, medium, low)
- Average time to resolution
- Defects remaining (carryover to next sprint)
Use for:
- Sprint retrospectives
- Stakeholder updates
- Team performance review
Release Readiness Report
Before shipping, assess defect status:
Metrics to include:
- Open critical/high defects (should be zero)
- Open defects by component
- Defects linked to the release milestone
- Verification status of resolved defects
Use for:
- Go/no-go decisions
- Release notes (list of fixes)
- Risk assessment
Trend Analysis
Track defect patterns over time:
Metrics to include:
- Defect creation rate over time
- Average age of open defects
- Recurring defects (same bug reopening)
- Defects by component or feature area
Use for:
- Identifying problematic areas
- Process improvement
- Resource planning
Generating Reports in Qualflare
-
Navigate to the defects section
- Use filters to scope the report (milestone, date range, severity)
-
Export the data
- Use Qualflare's export feature (CSV, JSON)
- Or capture metrics from the dashboard
-
Create visualizations
- Chart defect trends over time
- Show severity breakdown
- Compare against previous periods
-
Add context
- Explain unusual patterns (spike in defects, long resolution times)
- Highlight critical issues
- Note process changes that affected metrics
Sample Report Template
# Defect Report: Sprint 24 (2026-01-01 to 2026-01-14)
## Summary
- **Total opened**: 12 defects
- **Total resolved**: 10 defects
- **Remaining open**: 2 defects (1 high, 1 low)
## By Severity
- Critical: 0
- High: 3 opened, 2 resolved, 1 open
- Medium: 6 opened, 6 resolved
- Low: 3 opened, 2 resolved, 1 open
## Aging
- Average resolution time: 4.2 days
- Oldest open defect: 8 days (DEF-123)
## Blockers
- DEF-456 (High) blocks payment feature release
## Trends
- Defect creation rate: stable vs. previous sprint
- No recurring defects
- Payment component has highest defect countDefect Metrics and KPIs to Track
Track these metrics over time to spot trends and process issues:
| Metric | Definition | What It Indicates |
|---|---|---|
| Defect density | Defects per 1000 lines of code or per feature | Code quality by area |
| Resolution time | Average days from open to resolved | Team efficiency |
| Reopen rate | Percentage of defects that are reopened | Fix quality |
| Escape rate | Defects found in production vs. pre-production | Testing effectiveness |
| Aging | Average age of open defects | Backlog health |
Communicating Defect Status to Stakeholders
When reporting to non-technical stakeholders:
- Focus on impact: How defects affect users and releases
- Simplify severity: Group into "blocks release" vs. "can defer"
- Highlight progress: Show improvement over time
- Be transparent: Don't hide critical issues
Prioritization When You Can't Fix Everything
Resources are limited. Prioritize defects to maximize impact.
Prioritization Framework
Use the RICE method or similar:
| Factor | Questions |
|---|---|
| Reach | How many users affected? |
| Impact | How severely are they affected? |
| Confidence | How certain are we about the above? |
| Effort | How much work to fix? |
Calculate: (Reach × Impact × Confidence) ÷ Effort = Priority Score
Practical Prioritization
When you can't fix everything:
- Fix criticals first: These block release or affect data integrity
- Address high-impact, low-effort: Quick wins that help many users
- Group related defects: Fix multiple bugs in the same area together
- Consider release timing: Defer low-priority bugs to future releases
- Communicate tradeoffs: Be transparent about what won't be fixed
When to Defer Fixes
It's okay to defer defects when:
- Low severity with workaround
- Affects small subset of users
- High effort to fix
- Product roadmap may obsolete the feature
Document the decision: Add a comment explaining why the defect is deferred and when it will be revisited.
Verifying Fixes Without Introducing Regressions
A fix that breaks other things is not a good fix. Protect against regression.
Regression Testing Strategies
- Run related tests: Execute tests for the modified component
- Run smoke tests: Quick checks of core functionality
- Run integration tests: Verify that integrated systems still work
- Run automated test suite: Catch unintended side effects
Before Marking as Resolved
Developers should:
- Run tests locally: Ensure all existing tests pass
- Test the fix: Manually verify the specific bug is fixed
- Test related functionality: Check for unintended consequences
- Review the change: Consider edge cases and similar code paths
After Marking as Resolved
QA should:
- Verify the fix: Confirm the bug is actually fixed
- Run broader tests: Check for regressions in related areas
- Test in different environments: Staging, different browsers/devices
- Monitor production: Watch for issues after deployment
Signs of Regression
Be alert for:
- Tests that previously passed now fail
- New defects filed for related functionality
- User complaints about features that worked before
- Performance degradation
If regression is detected: Reopen the defect and file a new defect for the regression.
Common Issues in Defect Management
Stuck Defects
Problem: Defects sit in "In Progress" for weeks
Solutions:
- Regular backlog reviews
- Reassign if original owner is blocked
- Break into smaller tasks
- Escalate to management if needed
Zombie Defects
Problem: Old, low-priority defects that never get addressed
Solutions:
- Periodic backlog cleanup
- Close if no longer relevant
- Re-evaluate priority during milestone planning
- Consider "won't fix" if truly obsolete
Churn
Problem: Defects repeatedly reopen and close
Solutions:
- Investigate root cause of repeated failures
- Improve fix verification process
- Add more test coverage
- Consider architectural changes if same area keeps failing
Overwhelmed Team
Problem: More defects than team can handle
Solutions:
- Prioritize ruthlessly (use framework above)
- Request additional resources
- Expand scope of testing to catch issues earlier
- Improve code quality practices to reduce defect creation
Related
- Track Defects - Logging bugs from test failures
- Defects - Defect structure and lifecycle
- Case Runs - Test results for verification