쉼 없이 도는 테스트, 사람이 어디까지 돌봐야 할까요? - 토스닥터(Toss Doctor)

5 days ago 21

토스 앱은 매주 새 버전을 내보냅니다. 그 과정에서 플랫폼별로 5~7개의 RC(Release Candidate, 배포 후보) 빌드가 쌓이고, 빌드가 나올 때마다 누군가는 회원가입부터 로그인, 자산, 송금까지 같은 화면을 손으로 눌러 봅니다. 핵심 기능이 망가지진 않았는지 빠르게 훑는 스모크 테스트죠. 빠지면 안 되는 일이지만, 매번 사람이 반복하기엔 품이 너무 많이 들어요.안녕하세요, 토스 QA Platform 팀입니다. 저희는 이 스모크 테스트를 자동화한 토스닥터를 만들어 운영하고 있습니다.토스의 기술 컨퍼런스 SLASH를 기억하시나요? '약은 약사에게, 테스트는 토스닥터에게'라는 세션으로 소개했던 그 도구가 바로 토스닥터 V1입니다. V1은 제 역할을 했습니다. 하지만 매주 돌리다 보니 불편이 쌓였어요. 테스트를 새로 짜는 데 손이 많이 갔고, 화면이 조금만 바뀌어도 테스트가 우수수 깨졌고, 깨진 뒤엔 "이게 왜 실패했지"를 사람이 하나하나 들여다봐야 했죠.그래서 토스닥터 V2에서는 네 가지를 뜯어고쳤습니다. 코드를 만드는 법, 화면 속 요소를 찾는 법, 실패를 판단하는 법, 그리고 고치는 법. 그리고 이 네 가지가 실제 디바이스에서 끊김 없이 이어지도록 실행 환경도 다시 만들었습니다. 오늘은 그 이야기입니다. 그리고 이 V2가 지금 저희가 쓰고 있는 '토스체커'의 근간이 됐는데요, 그건 맨 뒤에서 짧게 이야기하겠습니다.코드를 사람이 짜지 않게 됐습니다예전엔 테스트 하나를 만들려면, 화면을 열어 요소를 찾고 클릭·입력·검증을 절차적으로 코드에 옮겨 적어야 했습니다. 이 테스트가 무엇을 검증하는지는 코드 속에 묻혀 있었고, 새 기능이 나올 때마다 같은 작업을 처음부터 반복했어요.토스닥터 V2에서는 테스트를 두 단계로 나눴습니다. 먼저 사람은 '무엇을 검증할지'만 적습니다. 절차적인 스텝 대신, Gherkin 문법의 시나리오로요.# 송금 테스트 전용 계정을 사용합니다 Feature: 계좌 송금 Scenario: 송금 정보 입력하기 Given 송금 퍼널에 진입한다 When 받는 계좌와 보낼 금액을 입력한다 Then 송금 컨펌 화면이 노출된다Given-When-Then은 사람이 읽어도 바로 이해되고, AI가 코드로 옮기기에도 좋은 형식입니다. 그다음 /codegen 명령이 이 .feature 파일을 실제 실행 코드로 변환합니다. LLM에 Appium MCP를 붙여, 실제 디바이스를 보며 요소를 찾아 스텝을 구현합니...

Read Entire Article