|
프롤로그 7
1. 첫 출근 13 2. 작은 균열 27 3. 데모의 날 36 4. 지뢰밭 47 5. 박도현의 포스트잇 56 6. 2주의 기적 63 7. 개발자의 코드, 테스터의 눈 70 8. 0원 결제가 통과했다 78 9. 결정 테이블의 악몽 88 10. 리뷰의 힘 102 11. 지도 밖의 버그 110 12. 협업의 기술 117 13. 중간 점검 124 14. 자동화의 유혹 132 15. 폭풍 전야 139 16. 품질은 속도 145 17. 최종 심사 151 18. 오디세이의 시작 160 에필로그 167 부록 1: 용어집 171 부록 2: 이 소설에서 만난 ISTQB CTFL 4.0 개념들 179 베타리더 183 |
Claude
클로드의 다른 상품
|
손가락이 잠시 멈칫하더니 금액란에 -10000을 입력했다. 마이너스 만 원. 일종의 장난 같은 거였다. 개발할 때 이상한 값을 넣어보곤 했는데 그게 습관으로 굳어진 것이다. 당연히 입력 단계에서 막히거나 백엔드에서 튕겨내야 정상이다. 어떤 결제 시스템이 음수 금액을 받겠는가. 준호는 설마 하는 마음으로 ‘처리’ 버튼을 눌렀다. 순간 프로그레스 바가 움직이더니 화면이 바뀌었다. 준호의 얼굴에서 여유가 사라지고, 표정이 굳어졌다.
‘결제가 완료되었습니다. -10,000원.’ 거래 번호: TXN-20240401-0847. 마우스를 쥐고 있던 준호의 손이 툭 떨어졌다. --- pp.20-21 “준호 님.” 도현이 모니터에서 시선을 거두고 준호를 보았다. “다 했다는 건 어떻게 알 수 있죠?” 그의 시선이 잠시 준호의 얼굴에 머물렀다. 나무라는 눈빛도, 다독이는 눈빛도 아니었다. 도현은 무언가 더 말하려다가 그만둔 듯했다. “……작성한 200개 항목을 전부 실행하면…….” “이 200개가 전부라는 건 어떻게 알아요?” 준호는 선뜻 대답하지 못한 채 스프레드시트를 보았다. 어젯밤, 무언가 더 적어 넣어야 할 것 같아 망설였던 그 텅 빈 201번째 줄이 떠올랐다. 그때 도현이 조용히 덧붙였다. “이 200개 중에서 가장 중요한 건 뭐예요?” 준호는 다시 화면을 훑어보았다. 1번 결제 수단 등록, 그리고 2번 정상 결제. 당연히 중요하다. 42번 환불 후 상태 변경. 이것도 중요하다. 155번 정산 월 마감 처리. 아마 중요할 것이다. 저마다 다 중요했다. 하지만 그중 “가장” 중요한 것이 무엇이냐는 질문 앞에서는 말문이 막혔다. “……모르겠습니다.” --- pp.32-33 “분할 결제도, 부분 결제도, 전액 결제도 전부 테스트했습니다. 기능 자체는 모두 확인했어요. 하지만 결제 도중에 다른 화면으로 나갔다가 돌아오는 경우는 테스트하지 않았습니다. 명세에 적힌 대로 작동하는지만 봤지, 사용자가 어떤 순서로 그 기능들을 오갈지는……” 말끝이 점점 잦아들었다. “생각조차 하지 못했어요.” “내가 사인한 ‘테스트 완료. 결함 없음.’ 그 한 줄이 3만 명에게 피해를 줬어요.” --- p.58 |
|
‘테스트 완료’라는 말 앞에서 다시 묻다
『37초』의 프롤로그는 실제로 일어난 세 사건에서 출발한다. 1996년 아리안 5호의 발사 실패, 1986년 방사선 치료기 테라크-25의 과다 피폭 사고, 2022년 판교 데이터센터 화재로 인한 카카오 서비스 장애다. 카카오의 전체 서비스와 기능이 복구되기까지는 약 127시간이 걸렸다. 책은 이 사건들을 통해 이전의 검증과 익숙한 사용 조건만으로 시스템의 안전을 확신할 수 있는지 묻는다. 확인한 사실과 확인했다고 믿는 것 사이에는 어떤 빈틈이 있는가. 그 빈틈을 찾기 위해 무엇을 살펴야 하는가. “사소한 ‘오류(Error)’가 ‘결함(Defect)’으로 숨어들고, 그 결함이 ‘장애(Failure)’로 터져 나오기까지. 그 아슬아슬한 연쇄 반응을 끊어낼 방어선, 그곳에 테스팅(Testing)이 있다.” QA 엔지니어는 무슨 일을 하는가 QA를 처음 배우면 용어만큼이나 낯선 질문들을 마주하게 된다. 어디까지 테스트해야 하는가. 무엇을 먼저 확인해야 하는가. 언제 테스트를 끝내도 되는가. 테스팅 이론을 알아도 실제 업무에서 이런 질문에 답하기는 쉽지 않다. 『37초』는 준호가 판단의 근거를 찾아가는 과정을 보여 준다. 할인율 10·20·50%를 확인하고 출시한 쿠폰 기능에서 0원 결제가 발생한다. 준호는 화이트보드에 적힌 세 숫자 양쪽에 0과 100이 더해지고 나서야 자신이 놓친 경계를 알아차린다. 200개 항목을 채운 체크리스트를 앞에 두고도 “이 200개가 전부라는 건 어떻게 알아요?”라는 질문에는 답하지 못한다. 준호는 이런 시행착오를 겪으며 테스트할 대상을 분석하고, 확인할 조건을 설계하고, 실행할 순서를 정하는 법을 배운다. 배움이 쌓일 때마다 준호의 〈QA 엔지니어링 체크리스트〉에도 질문이 한 줄씩 늘어난다. ‘요구사항을 읽었는가’, ‘경계를 확인했는가’, ‘지도 밖을 걸었는가’. 독자는 이 질문들을 따라가며 각 테스트 기법이 왜 필요한지, 어떤 상황에서 쓰이는지 이해하게 된다. 준호의 동료들도 각자의 자리에서 제품을 고민한다. 개발자는 정해진 시간 안에 기능을 완성해야 하고, PM은 출시 일정과 품질, 경쟁사의 움직임을 함께 살펴야 한다. 『37초』는 결함이 미칠 영향을 설명하고, 서로 다른 관점을 조율하며, 팀과 함께 품질을 높여 가는 과정까지 보여 준다. 독자는 테스트 기법과 함께 QA가 동료들과 일하는 방식도 살펴볼 수 있다. QA의 첫걸음을 준비하는 독자에게 황민은 12년간 소프트웨어 품질 분야에서 일하며 쌓은 현장 경험을 바탕으로 『37초』의 장면들을 구성했다. QA 엔지니어라면 한 번쯤 마주했을 상황들이 준호의 고민 속에서 구체적으로 그려진다. 책 앞머리에는 출간 전 원고를 읽은 현직 QA·테스트 엔지니어 세 사람의 추천사를 실었다. QA 엔지니어 수비는 “이 책을 읽고 나서는 ‘이거 한번 읽어보세요’라고 건넬 수 있게 됐습니다”라고 썼다. 테스트 엔지니어 조성혁은 “길을 잃은 주니어들에게, 이 책은 훌륭한 나침반이 되어 줍니다”라고 평했다. 5년 차 QA 엔지니어 황혜빈은 “QA의 경험이 없는 분들에게는 간접 경험을, QA의 경험이 있는 주니어 분들에게는 내가 처음 QA를 해나가던 감각을 일깨우는 책이라고 말할 수 있겠네요”라고 전했다. 모든 경우를 빠짐없이 테스트할 수는 없다. 그래서 테스터는 무엇을 확인했고 무엇을 아직 확인하지 못했는지, 다음 단계로 넘어가도 되는 근거는 무엇인지 설명할 수 있어야 한다. 『37초』는 QA라는 일을 처음 마주한 독자가 이런 판단의 기초를 쌓도록 돕는다. |