게임 QA 버그 리포트 템플릿 — 복사해서 바로 쓰는 양식과 그 이유

재현율을 높이는 버그 리포트 템플릿. 각 필드가 왜 필요한지, 어떤 티켓이 재현 불가로 닫히는지까지 함께 다룹니다.

  • qa
  • bug-report
  • template

버그 리포트 양식을 찾고 계시다면 아래 템플릿을 그대로 복사해서 쓰시면 됩니다. 다만 이 글은 양식만 주고 끝나지 않습니다. 각 필드가 왜 있는지를 함께 다룹니다 — 이유를 모르는 필드는 결국 비워지고, 비워진 필드가 티켓을 "재현 불가"로 이끌기 때문입니다.

템플릿

## 제목
[씬/기능] 한 문장 요약 (예: [인벤토리] 가득 찬 상태에서 장착 아이템 드래그 시 UI 깨짐)

## 발생 환경
- 빌드 번호:
- 플랫폼 / OS 버전:
- 그래픽 API / 해상도 / 품질 설정:
- 접속 서버 / 활성 이벤트:

## 재현 절차
1.
2.
3.
- 재현율: (예: 5회 중 3회)

## 기대 결과 / 실제 결과
- 기대:
- 실제:

## 발생 직전 상황
버그를 인지하기 전 30초~1분 동안 무엇을 하고 있었는지.
(퀘스트 보상 수령, 씬 전환, 네트워크 끊김 등 "절차"에 안 들어간 것들)

## 첨부
- [ ] 발생 순간 영상 또는 스크린샷
- [ ] 로그 파일
- [ ] 게임 상태 (씬, 소지품, 진행도 등)

## 심각도 / 빈도
- 심각도: (진행 불가 / 기능 오작동 / 표시 오류)
- 빈도: (항상 / 자주 / 가끔 / 1회)

각 필드가 존재하는 이유

재현이 실패하는 원인은 대체로 셋입니다 — 조건 유실, 타이밍, 환경 차이. (이전 글에서 자세히 다뤘습니다.) 템플릿의 필드는 이 셋에 하나씩 대응합니다.

"발생 직전 상황"이 이 템플릿에서 가장 중요한 필드입니다. 재현 절차에는 당사자가 "조건"이라고 인식한 것만 들어갑니다. 인벤토리가 가득 차 있었다든가, 직전에 퀘스트 보상을 받았다든가 하는 진짜 원인은 절차가 아니라 흐름 속에 있었기 때문에 절차 칸에는 적히지 않습니다. 이 필드는 그 유실을 줄이는 안전망입니다.

"발생 환경"에 서버·이벤트 항목이 있는 이유 — 클라이언트 설정만 적으면 같은 빌드에서도 갈리는 버그(라이브옵스 이벤트 의존, 서버 상태 의존)가 잡히지 않습니다. 빌드 번호는 "QA가 본 빌드와 개발자가 재현하는 빌드가 다른" 사고를 막습니다.

"재현율"이 절차 옆에 붙는 이유 — 5회 중 3회짜리 버그를 개발자가 1회 시도로 "재현 불가" 처리하는 것을 막습니다. 타이밍 의존 버그라는 힌트이기도 합니다.

자주 보이는 안티패턴 세 가지

  1. 제목이 곧 본문인 티켓 — "인벤토리 버그"라고만 적힌 티켓은 검색도 안 되고 중복 판정도 안 됩니다. 제목은 [위치] 조건 + 증상 형태를 강제하는 것이 좋습니다.
  2. 첨부 없는 "UI 깨짐" — 시각적 버그는 글로 옮기는 순간 정보가 사라집니다. 스크린샷 없는 표시 오류 티켓은 반려하는 규칙이 오히려 왕복을 줄입니다.
  3. "가끔 끊겨요" — 성능 문제는 체감 표현으로는 진단이 안 됩니다. 최소한 발생 씬과 빈도, 가능하면 FPS 수치가 필요합니다.

템플릿의 한계

이 템플릿을 완벽하게 채워도 한 가지 문제가 남습니다. 환경·상태·로그 항목은 사람이 사후에 복원하는 정보라는 점입니다. 버그를 인지한 시점은 이미 버그가 발생한 다음이라, 발생 직전 상황은 기억에 의존하게 됩니다.

그래서 저희는 이 템플릿의 첨부 항목(영상·로그·게임 상태)을 자동으로 채우는 도구로 Rekon을 만들고 있습니다. 수동 기록이 구조적으로 늦을 수밖에 없는 이유는 별도 글에서 다뤘습니다.

양식은 시작점입니다. 팀에 맞게 필드를 빼고 더하되, "발생 직전 상황"과 "발생 환경"은 남겨두시기를 권합니다. 재현 불가 티켓의 대부분이 그 두 칸의 부재에서 나옵니다.