자동 버그 헌팅 실전
미묘한 버그의 근본 원인을 빠르게 찾아 검증된 수정을 적용합니다. OpenCode는 스택 트레이스를 읽고, 실행 경로를 추적하며, 표적화된 변경을 제안합니다.
이 레시피를 사용하는 경우
- 스택 트레이스나 실패한 테스트는 있지만 명확한 원인이 없을 때.
- 버그가 간헐적이거나 동시성과 관련될 때.
- 추측이 아닌 설명이 있는 수정을 원할 때.
전제 조건
- 실패한 테스트 케이스 또는 신뢰할 수 있는 재현 단계.
- 프로젝트에 OpenCode를 설정하고 LSP를 활성화.
단계
-
실패 신호 제공
스택 트레이스나 실패한 테스트 명령을 세션에 붙여넣습니다.
FAIL src/workers/queue.test.ts > Timeout: message processed twice under load -
근본 원인 분석 요청
이 테스트는 부하에서 간헐적으로 실패합니다. 프로듀서에서 컨슈머로의 메시지 흐름을 추적하고 왜 메시지가 두 번 처리되는지 찾아주세요.
-
추적 결과 검토
OpenCode는 호출 경로를 따라가며 정확한 경쟁 조건(예: 공유 채널 주변의 뮤텍스 누락)을 지적합니다.
-
수정 적용
제안된 변경(예: 잠금 추가)을 확인하고 OpenCode가 구현하게 합니다.
-
재현으로 검증
부하 상태에서 테스트를 다시 실행하여 수정이 유효한지 확인합니다.
npm test -- --grep queue
핵심 프롬프트
이것이 스택 트레이스입니다: [붙여넣기]. 코드의 실행 경로를 추적하고 근본 원인을 식별하세요. 부작용 없이 문제를 해결하는 가장 작은 수정을 제안하세요.
흔한 주의점
- 증상 치료: 먼저 OpenCode에 근본 원인을 요구하세요. 표면적인 패치는 다른 곳의 버그를 숨길 수 있습니다.
- 동시성 버그: 테스트를 여러 번 다시 실행하세요——단일 성공이 경쟁이 사라졌음을 증명하지 않습니다.
- 환경 전용 버그: 재현할 수 없으면 로그와 타이밍 세부 정보를 공유하여 OpenCode가 경로를 추론하게 합니다.
관련 문서
관련 레시피
- refactor-codebase —
reason.bug-hunting.to-refactor - remote-server-troubleshoot —
reason.bug-hunting.to-remote - git-commit-workflow —
reason.bug-hunting.to-git
관련 문서
다음 단계
- remote-server-troubleshoot —
next.bug-hunting.to-remote