Showing Posts From
1시간
- 25 Dec, 2025
배포 1시간 전, 갑자기 '테스트 범위 줄여주세요'
배포 1시간 전, 갑자기 '테스트 범위 줄여주세요' 오후 4시, 슬랙 메시지 배포는 6시다. 2시간 남았다. 리그레션 테스트 중이다. 핵심 플로우 80% 완료. 슬랙 알림 떴다. 개발팀장: "민수님, 5시까지 테스트 마무리 가능하세요? 배포 1시간 앞당겨야 할 것 같아요." 손이 멈췄다. 화면을 쳐다봤다. 테스트 케이스 234개. 완료 187개. 남은 거 47개. 계산했다. 1시간. 불가능하다. "범위 줄여야 할까요?" 내가 먼저 물었다. 항상 이렇다. "핵심만 보고 넘어가죠." 대답은 빠르다. 준비된 답처럼. 키보드 앞에 앉아있다. 어떤 걸 빼야 하지.4년차의 판단 테스트 범위를 줄인다. 말은 쉽다. 실제론 어렵다. 체크리스트 열었다. 빨간색으로 핵심 플로우 표시되어 있다. 로그인, 결제, 주문. 이건 무조건이다. 노란색은 중요. 프로필 수정, 장바구니, 검색. 파란색은 부가 기능. 공유하기, 즐겨찾기, 알림 설정. 파란색부터 지운다. 47개가 32개로 줄었다. 아직도 많다. 노란색을 본다. 프로필 수정은 이번 배포에 안 건드렸다. 패스. 장바구니는... 결제랑 연결된다. 건드리면 위험하다. 남긴다. 검색은 UI만 바뀌었다. 로직은 그대로. 간단히만. 32개가 21개로. 1시간이면 가능하다. 빡빡하지만. 엑셀에 정리한다. "테스트 제외 항목" 시트 만들었다. 제외 사유 적었다. "이번 배포 미반영", "회귀 위험도 낮음", "시간 제약". 문서화한다. 항상. 나중에 버그 나면 내 방어막이다.머릿속 시뮬레이션 테스트 시작 전에 생각한다. 만약 이거 안 하고 배포하면? 검색 기능. UI만 바뀌었다. 근데 검색 결과 정렬 로직은? 혹시 건드렸나? 지라 티켓 다시 확인했다. "UI 개선"만 적혀있다. 코드 변경 범위는 안 적혀있다. 개발자한테 물었다. "지훈씨, 검색 UI 수정할 때 정렬 로직도 건드렸어요?" "아뇨, CSS만 바꿨어요." "확실해요?" "네." 믿는다. 근데 테스트는 한다. 검색 한 번, 정렬 한 번, 필터 한 번. 3분이면 된다. 즐겨찾기는 뺀다. 이번 배포랑 상관없다. 2주 전부터 안 건드렸다. 근데 찜찜하다. 항상 이렇다. 머릿속으로 시나리오 그린다. 유저가 즐겨찾기 눌렀다. 안 된다. 컴플레인 들어온다. "QA는 뭐 했어요?" "이번 배포랑 무관한 부분이라..." "그래도 테스트는 했어야죠." 변명처럼 들린다. 항상. 그래도 뺀다. 시간이 없다. 리스크 관리다. 완벽한 QA는 없다.4시 30분, 실전 타이머 켰다. 1시간 30분. 집중한다. 로그인. 일반 로그인, 소셜 로그인, 자동 로그인. 통과. 회원가입. 이메일 중복, 약관 동의, 인증번호. 통과. 결제. 카드, 간편결제, 쿠폰 적용. 여기서 5분 더 걸렸다. 쿠폰 할인율이 이상하다. 슬랙 보냈다. "지훈씨, 쿠폰 10% 할인인데 9%만 적용돼요." "아 그거 반올림 이슈요. 수정할게요." 기다린다. 10분. 빌드 다시 받았다. 재테스트. 통과. 시계 봤다. 5시 20분. 남은 테스트 6개. 가능하다. 주문 내역. 취소, 환불, 배송 조회. 빠르게. 푸시 알림. 받음, 안 받음, 클릭 시 이동. 확인. 장바구니. 추가, 삭제, 수량 변경. 마지막. 5시 48분. 끝났다. 슬랙에 보고했다. "핵심 플로우 테스트 완료했습니다. 이슈 1건 수정 완료 확인. 배포 가능합니다." 개발팀장: "고생하셨습니다." 짧다. 항상 짧다. 배포 후, 6시 30분 배포 완료 메시지 떴다. 모니터링 시작한다. 센트리 확인. 에러 없다. 앱 리뷰 확인. 아직 조용하다. 슬랙 공지방 확인. 이상 없다. 긴장 풀렸다. 조금. 근데 찝찝하다. 테스트 안 한 26개 기능. 머릿속에 남아있다. 즐겨찾기, 공유하기, 프로필 수정... 만약 여기서 버그 나면? 확률적으론 낮다. 이번 배포에 안 건드렸으니까. 근데 완벽하게 안전한 건 아니다. QA는 항상 이렇다. 100% 확신은 없다. 확률 게임이다. 저녁 먹으면서 생각했다. '테스트 범위를 줄인다'는 건 '리스크를 떠안는다'는 거다. 내가 판단한다. 내가 책임진다. 무섭다. 가끔. 품질 vs 속도 4년 동안 배웠다. 완벽한 테스트는 불가능하다. 시간은 한정되어 있다. 리소스도 한정되어 있다. 버그는 무한하다. 선택해야 한다. 무엇을 테스트할 것인가. 무엇을 포기할 것인가. 회사는 속도를 원한다. 빨리 배포하고, 빨리 피드백받고, 빨리 수정한다. 애자일이라고 한다. 그럴듯하다. 나는 품질을 원한다. 버그 없는 앱, 매끄러운 경험, 안정적인 서비스. 이상적이다. 현실은 아니다. 타협한다. 매번. 중요한 건 기준이다. 어떤 기준으로 범위를 줄일 것인가. 내 기준은 이렇다.이번 배포 변경 범위 유저 영향도 과거 버그 히스토리 회귀 위험도이 네 가지로 판단한다. 결제는 무조건이다. 유저 영향도 최상. UI 변경은 가볍게. 로직 변경은 무겁게. 과거에 버그 많았던 기능은 꼼꼼히. 연관 기능 많으면 회귀 테스트 필수. 문서화한다. 항상. 판단 근거를 남긴다. 나중에 내 방어막이다. 개발자와의 대화 테스트 범위 줄일 때 제일 중요한 건 커뮤니케이션이다. 개발자한테 물어본다. "이번에 정확히 뭘 고쳤어요?" "연관된 부분은 없어요?" "어디까지 테스트하면 될까요?" 대답은 다양하다. 어떤 개발자는 친절하다. "여기 로직 바꿨고, 여기는 안 건드렸어요. 이 부분만 보면 돼요." 고맙다. 같이 일하기 좋다. 어떤 개발자는 애매하다. "음... 대충 다 봐주세요." 도움 안 된다. 내가 알아서 해야 한다. 어떤 개발자는 방어적이다. "제 로컬에선 문제없는데요." 알아. 근데 QA 환경에선 문제야. 신뢰 관계가 중요하다. 개발자를 믿어야 범위를 줄일 수 있다. "로직 안 건드렸어요" 말을 믿고 테스트를 패스한다. 근데 가끔 배신당한다. "안 건드렸다"는데 버그가 난다. 의도치 않은 사이드 이펙트. 그럴 땐 어쩔 수 없다. 다음부턴 더 꼼꼼히 본다. 4년 동안 배웠다. 말보다 코드 커밋 로그를 본다. "UI만 바꿨다"는데 로직 파일도 수정됐으면 의심한다. QA는 믿음과 의심 사이다. 배포 후 3일째 버그 없다. 다행이다. 테스트 안 한 26개 기능도 문제없다. 판단이 맞았다. 근데 항상 운이 좋은 건 아니다. 지난달 생각난다. 비슷한 상황이었다. 시간 없어서 범위 줄였다. 공유하기 기능 테스트 패스했다. 이번 배포 무관이라고 판단. 배포 3시간 후. 앱 리뷰 터졌다. "공유가 안 돼요." 확인했다. 새로 추가된 권한 체크 로직이 공유 기능을 막았다. 개발자도 몰랐다. 의도치 않은 버그. 팀장한테 불려갔다. "이번 테스트 범위에 공유 기능 없었나요?" "네, 이번 배포 변경 사항이 아니라서..." "그래도 기본 기능은 봐야죠." 할 말이 없었다. 핫픽스 나갔다. 야근했다. 집에 가면서 생각했다. 내 판단이 틀렸나? 시간이 부족했던 건가? 회사가 무리한 건가? 답은 없었다. QA는 이렇다. 버그 안 나오면 당연한 거고, 버그 나오면 QA 책임이다. 억울하다. 가끔. 내가 만든 체크리스트 실수 반복하고 싶지 않았다. 체크리스트 만들었다. "긴급 테스트 범위 축소 가이드" 절대 빼면 안 되는 것로그인/회원가입 결제 플로우 핵심 비즈니스 로직 법적/보안 관련 기능 이번 배포 직접 수정 항목조건부로 축소 가능UI만 변경된 기능 (로직 미변경 확인 필수) 부가 기능 (공유, 알림 등) AB 테스트 대상 (일부 유저만 노출)축소 시 문서화 필수 항목제외한 테스트 케이스 목록 제외 사유 잠재 리스크 배포 후 모니터링 계획이걸 팀 위키에 올렸다. 팀장이 좋다고 했다. "다음엔 이거 기준으로 합시다." 동료 QA가 물었다. "근데 이것도 지켜지지 않으면?" 웃었다. "그럼 또 야근하지 뭐." 현실은 그렇다. 가이드가 있어도 압박은 온다. "그냥 빨리 해주세요." 근데 있는 것과 없는 것은 다르다. 최소한 근거는 있다. 여자친구와의 대화 주말에 여자친구 만났다. 간호사라 바쁘다. 나도 바쁘다. 한 달에 두세 번 본다. 저녁 먹으면서 말했다. "요즘 일이 힘들어." "왜? 야근?" "그것도 있는데... 테스트 시간을 자꾸 줄이래." 그녀가 물었다. "그럼 뭐가 문제야?" "버그 놓칠 수 있잖아. 내 책임이 되고." "근데 시간 없으면 어쩔 수 없는 거 아니야?" "그래도..." 그녀가 웃었다. "나도 비슷해. 환자 많으면 한 명당 시간 줄어들어. 다 못 봐. 그래도 최선은 다해." "그게 되게 와닿네." "중요한 거 먼저 보고, 나머지는 다음에 보는 거지. 완벽은 없어." 간호사도 비슷하구나. 한정된 시간, 무한한 일. 우선순위 정하고, 트리아지하고, 최선을 다한다. 좀 위로됐다. "그래도 내가 놓친 버그로 유저가 피해 보면..." "너 혼자 책임 아니잖아. 팀이 있는 거고." 맞는 말이다. 근데 막상 당하면 혼자 책임지는 느낌이다. "다음에 그런 일 있으면 나한테 푸념해. 들어줄게." "고마워." 집에 오면서 생각했다. 완벽한 QA는 없다. 완벽한 간호사도 없다. 한정된 시간 안에서 최선을 다하는 것. 위로가 됐다. 조금. 4년차의 생존 전략 테스트 범위를 줄이는 건 기술이다. 경험이 쌓여야 한다. 신입 때는 몰랐다. 모든 걸 다 봐야 한다고 생각했다. 안 보면 불안했다. 2년차 때는 혼났다. 테스트 너무 오래 걸린다고. "핵심만 보세요." 3년차 때는 배웠다. 어떻게 줄이는지. 무엇을 봐야 하는지. 4년차인 지금은 안다. 완벽한 테스트는 환상이다. 리스크 관리가 현실이다. 내 생존 전략: 1. 문서화 모든 판단을 기록한다. 왜 이걸 제외했는지. 회의록, 지라 코멘트, 슬랙 메시지. 증거를 남긴다. 2. 커뮤니케이션 개발자한테 계속 물어본다. 정확히 뭘 고쳤는지. 어디까지 봐야 하는지. 애매하면 다시 물어본다. 3. 우선순위 기준 내 기준을 명확히 한다. 팀원들과 공유한다. 판단 근거를 설명할 수 있어야 한다. 4. 배포 후 모니터링 테스트 못 한 부분은 배포 후 바로 확인한다. 센트리, 앱 리뷰, 유저 문의. 빠르게 감지하고 대응한다. 5. 회고 배포 끝나면 복기한다. 놓친 게 있나, 개선할 점은 뭔가. 혼자 또는 팀과 함께. 이렇게 해도 완벽하지 않다. 그래도 최선이다. 밤 11시, 혼잣말 배포 끝나고 집에 왔다. 샤워하고 침대에 누웠다. 오늘도 살아남았다. 테스트 범위 줄이라는 말 들을 때마다 떨린다. 품질을 포기하는 것 같아서. 내 존재 이유가 흔들리는 것 같아서. 근데 이게 현실이다. 모든 걸 다 볼 수는 없다. 시간은 한정되어 있다. QA의 가치는 모든 걸 테스트하는 게 아니다. 중요한 걸 골라내는 거다. 리스크를 관리하는 거다. 4년 동안 배웠다. 완벽한 앱은 없다. 완벽한 QA도 없다. 그래도 나는 최선을 다한다. 주어진 시간 안에서. 내 판단을 믿고. 때로는 틀릴 수도 있다. 버그가 나갈 수도 있다. 그럼 배우고 개선한다. QA는 그런 일이다. 불확실성 속에서 판단하고, 책임지고, 다시 일어서는 것. 내일도 출근한다. 또 비슷한 일이 있을 것이다. "테스트 범위 줄여주세요." 괜찮다. 준비됐다. 핸드폰 꺼두고 잔다. 내일 또 싸운다."배포 1시간 전"은 QA의 일상이다. 완벽보단 최선을 택한다.