Showing Posts From

리스크

리스크 기반 테스트, 예산 없이 시작하다

리스크 기반 테스트, 예산 없이 시작하다

리스크 기반 테스트, 예산 없이 시작하다 또 반려됐다 자동화 투자 건의서 작성했다. 세 번째다. 이번엔 ROI 계산도 넣었다. 예상 절감 시간, 인건비 환산, 장애 감소율까지. 경영진 답변: "내년에 검토하겠습니다." 작년에도 들었다. 재작년에도. 회의실 나오면서 생각했다. 예산 없으면 못 하나? 아니다. 해야 한다. 품질은 돈으로만 사는 게 아니니까. 팀원들한테 말했다. "우리 방식으로 한다."전부 테스트는 환상 월요일 아침 팀 미팅. "이번 릴리즈 테스트 케이스 850개입니다." 신입 팀원이 말했다. 표정이 밝다. 나는 물었다. "일정은?" "3일입니다." 계산했다. 팀원 8명. 하루 8시간. 총 192시간. 케이스당 13분. 불가능하다. "다 못 한다." 팀원들 표정이 굳었다. "그래서 선택한다. 중요한 것만." 이게 리스크 기반 테스트다. 전부 하는 게 아니라 중요한 것부터. 예산 없으면 더 중요하다. 13년 전엔 나도 전부 하려 했다. 밤새워서라도. 지금은 안다. 그건 착각이다. 리스크 매트릭스 그리기 화이트보드 꺼냈다. 가로축: 발생 확률. 세로축: 영향도. 4사분면으로 나눴다. "우선순위 1: 높은 확률, 큰 영향" "우선순위 2: 낮은 확률, 큰 영향" "우선순위 3: 높은 확률, 작은 영향" "우선순위 4: 낮은 확률, 작은 영향" 팀원들이 포스트잇 붙이기 시작했다. 결제 로직 → 1사분면 로그인 → 1사분면 신규 AI 추천 기능 → 2사분면 관리자 통계 페이지 → 3사분면 이용약관 텍스트 수정 → 4사분면 850개 케이스가 정리됐다. 1사분면이 120개. 이것만 해도 충분하다.영향도 측정하는 법 개발팀 리드한테 물었다. "이번 릴리즈에서 결제 로직 변경 있나?" "네, 할부 옵션 추가했습니다." "작년 결제 장애 때 CS 문의 몇 건이었지?" "2300건이요. 환불 처리만 3일 걸렸습니다." 영향도는 이렇게 잰다. 과거 데이터. Jira에서 검색했다. 지난 6개월 Critical 버그. 결제 관련: 12건 로그인 관련: 8건 추천 관련: 2건 Confluence에서 장애 포스트모템 찾았다. 평균 복구 시간, CS 비용, 매출 손실. 숫자가 있으면 설득이 된다. 경영진한테도, 팀원들한테도. "이번엔 결제부터 집중 테스트합니다." 누구도 반대 안 했다. 발생 확률 판단하기 확률은 어떻게 아나. 코드 변경량 본다. Git diff 줄 수. 새 기능 > 기존 기능 수정 > 버그 픽스. 개발자 경력 본다. 시니어가 짠 코드 < 주니어가 짠 코드. 미안하지만 통계적 사실이다. 기술 스택 본다. 검증된 라이브러리 < 새로 도입한 라이브러리. 이번 릴리즈 분석했다.결제 로직: 500줄 변경, 주니어 개발, 새 PG사 연동 → 높음 로그인: 100줄 변경, 시니어 개발, 기존 OAuth → 중간 추천 AI: 신규 기능, 외부 API 의존 → 높음숫자로 보면 명확하다. 감이 아니라 근거다.850개를 120개로 팀 미팅 2일차. "4사분면 케이스는 스킵합니다." "3사분면은 스모크 테스트만." "2사분면은 핵심 시나리오만." "1사분면은 풀 테스트." 팀원 하나가 물었다. "4사분면 버그 나오면요?" "나온다. 근데 치명적이지 않다." "우리가 못 찾으면 유저가 찾는다. CS가 처리한다." "그게 현실이다." 13년 전 나라면 이 말 못 했다. 완벽주의였으니까. 지금은 안다. 완벽은 없다. 우선순위만 있다. 120개 케이스 배분했다. 시니어 팀원 → 1사분면 복잡한 시나리오 주니어 팀원 → 1사분면 단순 시나리오 각자 하루 15개씩. 3일이면 된다. 야근 없이. 자동화는 나중에 팀원이 또 물었다. "자동화하면 더 빠른데요." 맞다. 근데 자동화에도 비용이 든다. 스크립트 작성 시간: 케이스당 1시간 유지보수 시간: 월 20시간 CI/CD 파이프라인 구축: 80시간 툴 라이선스: 연 500만원 예산 없다. 인력도 부족하다. "지금은 수동으로 간다. 효율적으로." "1사분면 테스트만 반복되면 그때 자동화한다." 실제로 작년에 그랬다. 로그인 테스트 3달 연속 1사분면. 그때 Selenium으로 자동화했다. 개인 시간 써서. 경영진은 몰랐다. 팀 생산성만 올랐다고 봤다. 그걸로 충분했다. 개발팀이랑 협상 리스크 매트릭스 들고 개발 리드 만났다. "1사분면 기능 버그 나오면 배포 연기합니다." "2사분면은 핫픽스 가능하면 배포 진행합니다." "3, 4사분면은 다음 스프린트로 미룹니다." 개발 리드가 고개 끄덕였다. "합리적이네요." 리스크 기반 접근의 장점이다. 협상 카드가 생긴다. "전부 테스트해야 해요" → 개발팀: "일정 늦어지는데?" "1사분면만 보장합니다" → 개발팀: "그럼 배포 가능하겠네요." 예산 없어도 영향력은 키울 수 있다. 테스트 실행 3일 일정 시작했다. 첫날: 1사분면 결제/로그인 테스트 둘째날: 2사분면 신규 기능 핵심 시나리오 셋째날: 리그레션, 통합 테스트 팀원들 야근 안 했다. 120개만 하니까 가능했다. 버그 발견: 18건 Critical: 3건 (전부 1사분면) Major: 8건 (2사분면 5건, 1사분면 3건) Minor: 7건 (3사분면) Critical 3건 개발팀에 전달했다. "배포 블로커입니다. 수정 필요합니다." 개발 리드가 우선순위 올렸다. 이틀 만에 픽스 완료. Minor 7건은 백로그로. "다음 스프린트에서 처리하겠습니다." 경영진 보고: "치명적 버그 사전 차단, 일정 준수" 칭찬받았다. 배포 후 모니터링 배포 당일 저녁. 슬랙 알람 울렸다. CS팀에서. "결제 오류 문의 들어왔습니다." 심장 내려앉았다. 1사분면인데. 확인했다. 특정 카드사 무이자 할부 오류. 우리는 테스트했다. 근데 그 카드사는 안 했다. 테스트 환경에 그 카드 없었다. PG사에서 제공 안 했다. 밤 10시에 개발팀이랑 회의했다. 원인 파악, 핫픽스 배포. 새벽 2시 종료. 다음 날 포스트모템 작성했다. "테스트 환경 카드사 목록 확대 필요" "PG사 연동 시 전체 카드사 검증 프로세스 추가" 완벽은 없다 회고 미팅 했다. "우리가 못 잡은 버그 나왔습니다." "그래도 잘했습니다." 팀원들 표정이 어두웠다. "850개 다 했으면 잡았을까요?" 고개 저었다. "모르겠습니다. 테스트 환경 문제니까." "우리는 제한된 리소스로 최선을 다했습니다." "1사분면 집중해서 Critical 3건 사전에 잡았습니다." "하나 놓쳤지만 빠르게 대응했습니다." 이게 현실이다. 예산 없는 QA의 현실. 완벽은 환상이다. 우선순위가 전부다. 경영진 설득 분기 보고 때 자료 만들었다. 슬라이드 1: 리스크 기반 테스트 도입 전후 비교테스트 커버리지: 100% → 15% (숫자는 솔직하게) 치명적 버그 차단율: 75% → 90% 장애 복구 시간: 평균 8시간 → 4시간 팀 야근 시간: 월 80시간 → 월 20시간슬라이드 2: 비용 절감 효과장애 대응 인건비 절감: 월 300만원 CS 비용 감소: 월 150만원 예산 투입: 0원슬라이드 3: 향후 제안1사분면 자동화 투자 시 추가 절감 예상: 연 5000만원CFO가 물었다. "예산 없이 이렇게 했다고?" "네. 팀원들이 똑똑하게 일했습니다." "내년 자동화 예산 검토하겠습니다." 처음으로 긍정적 답변 들었다. 다른 팀에 전파 타 팀 QA 리드가 찾아왔다. "리스크 매트릭스 어떻게 만드나요?" 화이트보드 다시 꺼냈다. 설명했다. "과거 데이터 찾으세요. Jira, 장애 로그, CS 문의." "영향도는 숫자로. 발생 확률은 코드 변경량으로." "4사분면 나누고 1사분면만 집중하세요." 그 팀도 예산 없었다. 우리 방식 적용했다. 두 달 뒤 만났다. "팀 야근 절반 줄었어요." QA 커뮤니티에도 올렸다. 노하우 공유. 댓글 많이 달렸다. "우리도 예산 없는데 해볼게요." "리스크 매트릭스 템플릿 공유 가능한가요?" Confluence에 정리해서 링크 걸었다. 1년 후 올해 자동화 예산 나왔다. 3000만원. 적다. 근데 시작할 수 있다. 1사분면 케이스부터 자동화했다. 우선순위대로. 6개월 만에 40개 케이스 자동화. 수동 테스트 시간 30% 줄었다. 그 시간에 2사분면 커버리지 올렸다. 리스크 기반 접근은 계속한다. 예산 있어도. 효율의 문제니까. 경영진이 이제 묻는다. "리스크 1사분면 몇 개죠?" 전부 테스트했냐고 안 묻는다. 팀원들도 바뀌었다. 케이스 수로 자랑 안 한다. "Critical 버그 3건 잡았습니다" 이렇게 말한다. 예산은 핑계다 솔직히 말한다. 예산 있으면 좋다. 툴 사고, 교육받고, 인프라 구축하고. 근데 예산 없다고 품질 포기할 순 없다. 우리한테 있는 건 머리다. 리스크 분석, 우선순위, 과거 데이터. 13년 하면서 배웠다. 비싼 툴보다 똑똑한 전략이 낫다. 물론 둘 다 있으면 최고다. 근데 하나만 고르라면 전략. 내년엔 예산 더 받을 것이다. 리스크 기반으로 성과 냈으니까. 그때도 이 방식은 유지한다. 돈으로 품질 사는 게 아니니까.예산 없어도 머리는 있다. 그걸로 이긴다.