컨텐츠로 건너뛰기

자동 버그 헌팅 실전

미묘한 버그의 근본 원인을 빠르게 찾아 검증된 수정을 적용합니다. OpenCode는 스택 트레이스를 읽고, 실행 경로를 추적하며, 표적화된 변경을 제안합니다.

이 레시피를 사용하는 경우

  • 스택 트레이스나 실패한 테스트는 있지만 명확한 원인이 없을 때.
  • 버그가 간헐적이거나 동시성과 관련될 때.
  • 추측이 아닌 설명이 있는 수정을 원할 때.

전제 조건

  • 실패한 테스트 케이스 또는 신뢰할 수 있는 재현 단계.
  • 프로젝트에 OpenCode를 설정하고 LSP를 활성화.

단계

  1. 실패 신호 제공

    스택 트레이스나 실패한 테스트 명령을 세션에 붙여넣습니다.

    FAIL src/workers/queue.test.ts
    > Timeout: message processed twice under load
  2. 근본 원인 분석 요청

    이 테스트는 부하에서 간헐적으로 실패합니다. 프로듀서에서 컨슈머로의 메시지 흐름을 추적하고 왜 메시지가 두 번 처리되는지 찾아주세요.

  3. 추적 결과 검토

    OpenCode는 호출 경로를 따라가며 정확한 경쟁 조건(예: 공유 채널 주변의 뮤텍스 누락)을 지적합니다.

  4. 수정 적용

    제안된 변경(예: 잠금 추가)을 확인하고 OpenCode가 구현하게 합니다.

  5. 재현으로 검증

    부하 상태에서 테스트를 다시 실행하여 수정이 유효한지 확인합니다.

    npm test -- --grep queue

핵심 프롬프트

이것이 스택 트레이스입니다: [붙여넣기]. 코드의 실행 경로를 추적하고 근본 원인을 식별하세요. 부작용 없이 문제를 해결하는 가장 작은 수정을 제안하세요.

흔한 주의점

  • 증상 치료: 먼저 OpenCode에 근본 원인을 요구하세요. 표면적인 패치는 다른 곳의 버그를 숨길 수 있습니다.
  • 동시성 버그: 테스트를 여러 번 다시 실행하세요——단일 성공이 경쟁이 사라졌음을 증명하지 않습니다.
  • 환경 전용 버그: 재현할 수 없으면 로그와 타이밍 세부 정보를 공유하여 OpenCode가 경로를 추론하게 합니다.

관련 문서

  • 문제 해결 — OpenCode의 일반적인 문제와 해결 방법
  • LSP 통합 — OpenCode가 Language Server Protocol로 코드를 이해하는 방식

관련 레시피

관련 문서

다음 단계