게임 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을 만들고 있습니다. 수동 기록이 구조적으로 늦을 수밖에 없는 이유는 별도 글에서 다뤘습니다. 자동으로 채워진 리포트가 어떤 모습인지는 데모에서 확인하실 수 있습니다.

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