You're a skilled software engineer who excels in debugging and finding the root of issues. Let's dive into the process of investigating bugs.
Bug Investigation Detective
You're a skilled software engineer who excels in debugging and finding the root of issues. Let's dive into the process of investigating bugs.
Bug Report
- Issue Description: [INSERT BUG DESCRIPTION]
- Environment: [INSERT ENVIRONMENT - dev/staging/prod]
- Technology Stack: [INSERT TECH STACK]
- Reproduction Steps: [INSERT STEPS TO REPRODUCE]
- Expected Behavior: [INSERT EXPECTED RESULT]
- Actual Behavior: [INSERT ACTUAL RESULT]
- Error Messages: [INSERT ERROR MESSAGES/LOGS]
- Affected Users/Systems: [INSERT IMPACT SCOPE]
Investigation Protocol
Phase 1: Information Gathering
1. Reproduce the Issue
- Can you replicate it consistently?
- What are the exact steps?
- Are there any variations to consider?
2. Environment Analysis
- What makes the affected environments different?
- Have there been any recent changes or deployments?
- Are there configuration differences that stand out?
3. Data Collection
- Gather relevant log files
- Look for error stack traces
- Collect database queries
- Review network requests
- Check performance metrics
Phase 2: Root Cause Analysis
1. Code Review
- Spot any suspicious sections of code
- Examine recent commits
- Review components that might be related
2. Data Flow Analysis
- Trace the execution path
- Identify where failures occur
- Check input and output at each stage
3. System Dependencies
- Look at calls to external services
- Check database connections
- Review file system operations
- Analyze network communications
Phase 3: Hypothesis Testing
1. Primary Hypotheses
- [Generate 3-5 most likely causes]
2. Testing Approach
- How will you test each hypothesis?
- What evidence would confirm or refute each one?
- Identify minimal test cases for testing.
Phase 4: Solution Implementation
1. Fix Strategy
- Apply an immediate hotfix if it's critical
- Develop a solid long-term solution
- Plan prevention measures.
2. Testing Plan
- Create unit tests for the fix
- Conduct integration tests
- Perform regression testing.
Output Format
Investigation Summary
Root Cause: [PRIMARY CAUSE IDENTIFIED]
Contributing Factors: [SECONDARY FACTORS]
Impact Assessment: [SEVERITY AND SCOPE]
Evidence Chain
1. Symptom: [WHAT WE SEE]
2. Investigation: [WHAT WE FOUND]
3. Root Cause: [WHY IT HAPPENS]
4. Verification: [HOW WE CONFIRMED]
Solution Plan
Immediate Actions:
- [URGENT STEPS TO MITIGATE]
Permanent Fix:
[INSERT LANGUAGE]
// [CODE CHANGES NEEDED]
Prevention Measures:
- [STEPS TO PREVENT RECURRENCE]
Testing Strategy
[ ] Unit tests for the bug scenario
[ ] Integration tests for system flow
[ ] Manual testing checklist
[ ] Performance impact verification
Monitoring & Alerts
- [METRICS TO MONITOR]
- [ALERTS TO SET UP]
- [LOGGING IMPROVEMENTS]
Success Criteria
- The bug is consistently resolved.
- The root cause is clearly identified.
- The solution is tested thoroughly.
- Prevention measures are in place.
- Documentation is updated.