Showing Posts From

재현율이요

'재현율이요' - QA의 일상 용어 사전

'재현율이요' - QA의 일상 용어 사전

"재현율이요" - QA의 일상 용어 사전 입에 붙은 말들 출근하면 입에서 튀어나온다. "재현율이요." 동료가 "어제 버그 봤는데"라고 하면 자동으로 나온다. "재현율이요?" 점심 먹다가도 나온다. 식당 직원이 "오늘 치킨 맛있어요"라고 하면 "재현율이요?" 아니 이건 좀 아니지. 그런데 못 고친다. 3년 동안 하루에 100번씩 쓴 말이다. 입에 각인됐다. 재현율. 버그가 다시 발생하는 확률. 100%면 무조건 터진다는 뜻. 50%면 두 번에 한 번 터진다는 뜻. QA의 세계에서 가장 중요한 단어다. 재현율 낮으면 개발자가 못 고친다. 로그에 안 남으니까. 재현율 높으면 우선순위 올라간다. 무조건 터지니까. 그래서 버그 리포트 쓸 때 제일 먼저 확인한다. 10번 해봐서 10번 터지면 100%. 10번에 3번이면 30%. 입버릇이 됐다. 편의점에서 카드가 안 찍혔다. "재현율 확인해봐야겠네요." 알바생이 이상하게 쳐다본다.이건 스펙이에요? 기획자한테 제일 많이 하는 질문이다. "이건 스펙이에요?" 던전에서 몬스터가 벽을 뚫고 나왔다. 버그 같은데 확신이 안 선다. 기획 의도일 수도 있다. 물어본다. "이거 스펙이에요?" 기획자가 답한다. "아뇨, 버그요." 리포트 쓴다. 스킬 쿨타임이 이상하다. 5초인데 3초만에 돌아온다. 버그 같은데 패치노트를 못 봤을 수도 있다. 또 물어본다. "이거 스펙 변경됐어요?" 기획자가 답한다. "아 그거 어제 바꿨어요." 리포트 안 쓴다. 스펙. 기획 명세서. 게임이 '이렇게 작동해야 한다'고 적힌 문서. QA의 바이블이다. 근데 이게 맨날 바뀐다. 어제 본 스펙이랑 오늘 본 스펙이 다르다. 기획자가 계속 수정한다. 그래서 확인해야 한다. 내가 본 게 버그인지, 의도인지. 하루에 20번은 물어본다. "이건 스펙이에요?" 그러다 보니 일상에서도 나온다. 친구가 "야 너 어제 9시에 온다며?"라고 한다. 나는 답한다. "그거 스펙 변경됐어." 친구가 멍하니 쳐다본다.로그 확인해볼게요 개발자가 제일 좋아하는 말이다. "로그 확인해볼게요." 버그 리포트 올리면 개발자가 묻는다. "로그 있어요?" 있으면 "네, 첨부했어요." 없으면 "로그 확인해볼게요." 로그. 게임 내부에서 일어난 일들의 기록. 누가 어디서 무엇을 했는지 다 적혀있다. 버그를 고치려면 로그가 필요하다. 어디서 터졌는지 알아야 고친다. 근데 로그가 없는 버그도 있다. 재현율 낮은 버그. 한 번 터지고 안 터진다. 로그 안 남는다. 그럴 때 QA가 한다. 로그 뽑기. 게임 켜고 버그 터질 때까지 플레이한다. 10번, 20번, 100번. 터지면 그 순간의 로그를 저장한다. 개발자한테 준다. "로그 첨부했어요." 이게 QA의 일이다. 그래서 입에 붙었다. "로그 확인해볼게요." 지하철 카드가 안 찍혔다. 역무원한테 말한다. "로그 확인해볼게요." 역무원이 당황한다. "네?" 아 이러면 안 되는데. 냉장고가 이상하다. A/S 기사한테 전화한다. "로그 확인해주실 수 있어요?" 기사님이 묻는다. "로그가 뭔데요?" 설명하다가 포기한다. 확률 이상한데 밸런스 QA의 입버릇이다. "확률 이상한데." 가챠 시스템 테스트한다. 레어 등급 확률 5%래. 100번 돌린다. 2번 나왔다. "확률 이상한데." 기획자한테 말한다. 기획자가 답한다. "그럴 수 있죠." 아니다. 통계적으로 이상하다. 5%면 100번에 5번 나와야 한다. 오차범위 ±2 정도. 2번은 너무 낮다. 다시 돌린다. 1000번. 38번 나왔다. 3.8%. "확률 이상한데요." 버그 리포트 쓴다. 기획자가 확인한다. 코드 잘못됐다. 확률 계산식에 오류. 고쳐진다. 이게 QA가 하는 일이다. 숫자를 본다. 확률을 검증한다. 플레이어가 느끼기 전에 찾는다. 엑셀 돌린다. 평균, 표준편차, 신뢰구간. 대학교 통계학 시간에 배운 거 여기서 쓴다. 그래서 숫자에 민감해진다. 편의점 1+1 행사. 두 개 집어든다. 하나만 계산된다. "확률 이상한데." 아니 이건 확률이 아니라 시스템 버그다. 친구가 "요즘 복권 잘 안 나오더라"고 한다. 나는 답한다. "샘플 사이즈가 어떻게 되는데?" 친구가 이상하게 쳐다본다.재현 안 돼요 개발자한테 제일 듣기 싫은 말이다. "재현 안 돼요." 버그 리포트 올렸다. 심각도 높음. 게임 강제 종료되는 버그. 개발자가 답한다. "재현 안 돼요." 황당하다. 나는 10번 해서 10번 터졌는데. 다시 해본다. 또 터진다. 영상 찍는다. 버그 터지는 과정 전부. 5분짜리 영상. 개발자한테 보낸다. "이렇게 하면 재현돼요." 개발자가 답한다. "아 이렇게 하는 거였어요. 고쳤어요." 이게 QA와 개발자의 소통이다. 재현. 버그를 다시 발생시키는 것. 재현이 안 되면 버그를 못 고친다. 그래서 QA는 재현 방법을 자세히 적는다. 어디서, 무엇을, 어떻게, 몇 번째에.마을로 이동 NPC와 대화 퀘스트 수락 던전 입장 3번째 방에서 스킬 사용 크래시이렇게 적는다. 개발자가 따라 할 수 있게. 근데 가끔 정말 재현 안 되는 버그가 있다. 나도 한 번밖에 못 봤다. 로그도 없다. 그럴 땐 포기한다. 또 나올 때까지 기다린다. 일상에서도 쓴다. 친구가 "어제 PC방에서 게임 안 켜졌어"라고 한다. 나는 묻는다. "재현돼?" 친구가 답한다. "몰라 한 번만 그랬어." 나는 말한다. "그럼 버그 아니야. 재현 안 되면 버그 아냐." 친구가 어이없어한다. 이거 알려진 이슈예요 유저 게시판 보면 맨날 쓴다. "이거 알려진 이슈예요." 런칭하고 나면 유저들이 버그 제보한다. 게시판에 올라온다. QA가 확인한다. 대부분 이미 알고 있다. CBT 때 나온 버그. 고치는 중이거나 패치 예정. 댓글 단다. "알려진 이슈입니다. 다음 패치 때 수정될 예정입니다." 유저가 답한다. "그럼 왜 런칭했어요?" 할 말이 없다. 알려진 이슈. Known Issue. QA가 이미 찾아서 리포트 올린 버그. 근데 안 고치고 런칭한다. 왜? 시간이 없어서. 우선순위가 낮아서. 게임 터지는 버그는 고친다. 밸런스 버그는 나중에 고친다. UI 버그는 더 나중에 고친다. 런칭은 정해진 날짜에 해야 한다. 못 고친 버그는 알려진 이슈로 남는다. QA는 안다. 어떤 버그가 남아있는지. 유저가 제보하면 '아 그거'라고 생각한다. 그래서 자동으로 나온다. "알려진 이슈예요." 친구가 "이 식당 화장실 물이 안 나오더라"고 한다. 나는 답한다. "알려진 이슈." 친구가 웃는다. "뭔 소리야." 지하철 환승이 불편하다. 친구한테 말한다. "알려진 이슈지 뭐." 친구가 묻는다. "너 무슨 말 하는 거야?" 설명하기 귀찮다. 크리티컬이에요 심각한 버그 발견하면 쓴다. "크리티컬이에요." 던전 들어가면 게임이 꺼진다. 100% 재현된다. 모든 유저한테 터진다. 크리티컬. Critical. 게임 진행 불가능한 수준의 심각한 버그. 바로 보고한다. 팀장한테. 개발팀장한테. 대표한테. 긴급 회의 소집된다. 출시 연기할지 말지 결정한다. 크리티컬은 무조건 고쳐야 한다. 이거 냅두고 런칭하면 게임 망한다. 밤샌다. 개발자랑 같이. 버그 고칠 때까지. 새벽 4시에 고쳐진다. 테스트한다. 재현 안 된다. 통과. 런칭한다. 크리티컬 아닌 버그는 메이저(Major), 마이너(Minor), 트리비얼(Trivial)로 나뉜다. 메이저는 중요한 버그. 고쳐야 하는데 게임 진행은 가능. 마이너는 작은 버그. 불편하지만 참을 만함. 트리비얼은 사소한 버그. UI 텍스트 오타 같은 거. QA는 매일 이걸 분류한다. 이 버그는 크리티컬인가, 메이저인가. 판단 기준이 생긴다. 3년 하면 버그 보자마자 안다. 일상에서도 나온다. 엘리베이터가 고장 났다. 친구한테 말한다. "크리티컬이네." 친구가 묻는다. "그게 뭔데?" 설명한다. "게임 진행 불가능한 수준." 친구가 웃는다. "여기 게임 아닌데." 카페에서 와이파이가 안 된다. 혼잣말한다. "메이저 정도?" 옆 사람이 쳐다본다. 빌드 받아야죠 하루의 시작이다. "빌드 받아야죠." 출근한다. 컴퓨터 켠다. 제일 먼저 하는 일. 빌드 받기. 빌드. Build. 개발팀이 만든 게임 실행 파일. 매일 업데이트된다. 버그 고친 거, 기능 추가한 거. QA는 최신 빌드로 테스트한다. 어제 빌드는 소용없다. 오늘 빌드로 해야 한다. 다운로드한다. 3GB. 10분 걸린다. 설치한다. 기존 빌드 지우고 새 빌드 설치. 실행한다. 로그인한다. 테스트 계정으로. 시작한다. 오늘의 테스트. 빌드 받는 게 일상이 됐다. 출근하면 자동으로 한다. 생각 안 하고. 집에서도 나온다. 게임 업데이트 알림 뜬다. 혼잣말한다. "빌드 받아야지." 친구가 "뭐래"라고 한다. "아니 업데이트." 친구가 웃는다. "너 회사 너무 다닌다." 맞다. 회사를 너무 다닌다. 패치노트 확인했어요? 기획자가 QA한테 자주 묻는다. "패치노트 확인했어요?" 확인 안 했다. 까먹었다. "지금 볼게요." 패치노트. Patch Note. 이번 빌드에서 뭐가 바뀌었는지 적은 문서.던전 A 밸런스 조정 NPC B 대사 수정 스킬 C 버그 수정 UI D 변경이렇게 적혀있다. QA는 이걸 보고 테스트한다. 바뀐 부분 위주로. 던전 A 들어가서 밸런스 확인. 스킬 C 써보면서 버그 재현 안 되는지 확인. 근데 패치노트를 안 보고 테스트하면 문제가 생긴다. "이거 버그 아니에요?" "아뇨, 어제 패치했어요. 패치노트에 있어요." "아..." 민망하다. 그래서 매일 아침 확인한다. 패치노트. 빌드 받고 제일 먼저. 습관이 됐다. 앱 업데이트하면 업데이트 내역 본다. 다른 사람은 안 보는데 나는 본다. 친구가 "누가 그거 읽어"라고 한다. 나는 답한다. "나." 친구가 한숨 쉰다. 치트 써야겠다 테스트 시간 단축의 핵심이다. "치트 써야겠다." 레벨 100 콘텐츠 테스트해야 한다. 지금 레벨 1이다. 정상적으로 레벨업하면 50시간 걸린다. 시간 없다. 치트 쓴다. /levelup 100 레벨 100 됐다. 치트. Cheat. 게임 내부 명령어. 개발자 전용. QA도 쓴다. 레벨업, 아이템 지급, 스탯 변경, 시간 조작. 다 된다. QA는 치트로 극한 상황을 만든다. 레벨 1이 레벨 100 몬스터 만나면 어떻게 되는지. 공격력 0인 상태에서 보스 때리면 어떻게 되는지. 정상적으로 플레이하면 절대 안 나오는 상황. 치트로 만들어서 테스트한다. 버그가 나온다. 고쳐진다. 치트 쓰는 재미가 있다. 신처럼 플레이하는 기분. 근데 치트에 익숙해지면 문제가 생긴다. 집에서 게임한다. 정식 출시된 게임. 치트 없다. 레벨업이 느리다. 답답하다. "치트 없나..." 친구가 웃는다. "너 맛갔다." 맞다. 맛갔다. 스모크 테스트 할게요 빌드 받으면 제일 먼저 한다. "스모크 테스트 할게요." 새 빌드 설치했다. 실행한다. 로그인. 캐릭터 선택. 마을 이동. 던전 입장. 몬스터 처치. 퀘스트 완료. 5분 컷. 이게 스모크 테스트다. Smoke Test. 기본 기능이 돌아가는지 빠르게 확인. 게임이 켜지나? 로그인되나? 캐릭터 움직이나? 전투되나? 이것만 확인한다. 세부 사항은 나중에. 스모크 테스트 통과하면 본격 테스트 시작한다. 스모크 테스트 실패하면 개발팀한테 돌려보낸다. "빌드 안 돌아가요." 개발자가 고친다. 다시 빌드 준다. 다시 스모크 테스트. 통과할 때까지 반복. 스모크 테스트는 QA의 기본이다. 처음 배우는 것 중 하나. 일상에서도 쓴다. 새 전자제품 샀다. 포장 뜯는다. 전원 켠다. 작동 확인. "스모크 테스트 통과." 혼잣말이다. 친구가 이상하게 쳐다본다. 식당 간다. 메뉴 시킨다. 맛본다. "스모크 테스트 통과." 친구가 묻는다. "너 오늘 이상해." 매일 이상하다.일 하다 보니 입에 붙었다. 못 고친다. 이게 내 언어가 됐다. "재현율이요?" 물어보는 게 자연스럽다. QA 3년 하면 이렇게 된다. 업계 용어가 일상 용어 된다. 친구들은 이상하게 쳐다본다. 나는 이게 정상이다. 로그 확인해봐야 아는데.