How to Handle Non-Reproducible Bugs?
How to Handle Non-Reproducible Bugs β Interview Guide
Non-reproducible bugs (also called intermittent bugs) are issues that cannot be consistently recreated on demand. Interviewers ask this question to evaluate:
- Your debugging mindset
- Your structured problem-solving approach
- Your communication and collaboration skills
- Your ability to handle uncertainty calmly
Junior Testers – Less Experienced Candidates
π― What the Interviewer Expects
At this level, they want to see:
- A logical troubleshooting approach
- Basic debugging techniques
- Communication with team members
- Willingness to learn
β How to Structure Your Answer
Step 1: Clarify the issue
- Ask for exact error messages
- Check logs
- Understand environment details (browser, device, OS)
Step 2: Try to reproduce in different environments
- Test in staging and production
- Test with different data sets
- Try edge cases
Step 3: Add logging and monitoring
- Add temporary logs
- Enable debug mode
- Capture request/response data
Step 4: Collaborate
- Talk to QA
- Check with DevOps
- Ask teammates if they faced similar issues
π¬ Sample Interview Answer (Less Experienced)
βWhen I encounter a non-reproducible bug, I first try to gather as much information as possible β logs, screenshots, and environment details. Then I attempt to reproduce the issue in different environments and with different data sets. If it still doesnβt reproduce, I add additional logging to capture more details. I also collaborate with QA and other developers to see if they can replicate it. My goal is to reduce uncertainty step by step.β
π Example Scenario
Example: A user reports that sometimes the login page throws a 500 error.
- Checked server logs β Found occasional timeout.
- Reproduced under slow network simulation.
- Identified missing timeout handling.
- Added proper retry logic and error handling.
This shows structured debugging and practical thinking.
Senior Testers – Experienced Candidates
π― What the Interviewer Expects
- System-level thinking
- Observability knowledge
- Root cause analysis skills
- Experience with distributed systems
- Prevention mindset
β Advanced Structured Approach
1. Categorize the Bug
- Race condition?
- Concurrency issue?
- Data inconsistency?
- Environment-specific?
2. Improve Observability
- Structured logging
- Correlation IDs
- Distributed tracing
- Monitoring dashboards
3. Recreate Production Conditions
- Load testing
- Chaos testing
- Replay production traffic
4. Narrow Down with Hypothesis Testing
- Form a hypothesis
- Run controlled experiments
- Validate or eliminate possible causes
5. Prevent Future Occurrences
- Add monitoring alerts
- Improve test coverage
- Add circuit breakers or retries
- Document findings
π¬ Sample Interview Answer (More Experienced)
βFor non-reproducible bugs, I focus on improving observability first. I gather structured logs, enable tracing, and check metrics to identify patterns. I try to determine whether itβs related to concurrency, data issues, or environment-specific behavior. If needed, I simulate production-like conditions using load testing or traffic replay. I use hypothesis-driven debugging to narrow down possible causes. Once resolved, I ensure preventive measures like better monitoring, test cases, or architectural improvements are implemented.β
π Example Scenario
Example: Random duplicate orders appearing in production.
- Added correlation IDs to track request flow.
- Found two parallel API calls triggered due to frontend retry.
- Backend lacked idempotency checks.
- Implemented idempotency keys and locking mechanism.
- Added monitoring for duplicate transactions.
This demonstrates senior-level debugging and system design awareness.
π₯ Pro Tips for the Interview
- Stay calm β interviewers test emotional maturity.
- Use structured steps instead of random ideas.
- Mention collaboration.
- Highlight prevention, not just fixing.