여행과 숙박 / 숙박 중개

Airbnb: 오래된 화면 테스트 코드 전환

기업
Airbnb
국가
미국
도입 상태
운영
자료 공개
날짜 기준
자료 발표 시점. 도입 시작일과 다를 수 있음
근거 확인 방법
원문 본문 열람

업무 문제

Airbnb의 React 컴포넌트 테스트는 Enzyme으로 짜여 있었다. Enzyme은 옛 React 버전에 맞춰 만든 도구라 컴포넌트 내부에 깊이 접근하는 방식이 요즘 테스트 관행과 맞지 않았다. 두 도구의 구조가 근본적으로 달라 그냥 바꿔 끼울 수 없었다. Enzyme 파일을 지우면 코드 커버리지에 큰 구멍이 생긴다는 분석이 나왔다.

적용한 기술과 데이터

Airbnb는 2024년에 LLM 기반 이관 pipeline을 만들었다. 파일 하나를 state machine처럼 다뤘다. Enzyme 리팩터, Jest 수정, lint와 tsc 수정 순으로 검사를 통과해야 다음 단계로 넘어간다. 검사에 걸리면 오류 내용과 가장 최근 파일을 프롬프트에 넣어 다시 시도한다. 복잡한 파일은 context를 키웠다. 프롬프트는 40,000에서 100,000 token까지 늘었고 관련 파일을 최대 50개까지 끌어왔다. 대상 컴포넌트 소스, 옮길 테스트 파일, 검사 실패 내용, 같은 디렉터리의 형제 테스트를 함께 넣었다. 사람은 실패 사례를 골라 프롬프트와 스크립트를 고치는 일을 맡았고, 끝까지 자동화가 안 된 파일은 직접 고쳤다.

성과

첫 대량 실행에서 목표 파일의 75%를 4시간 만에 옮겼다. 이후 4일 동안 프롬프트와 스크립트를 다듬어 97%까지 올렸다. 남은 3%는 사람이 일주일 더 걸려 마무리했다. 전체로는 약 3,500개 Enzyme 테스트 파일을 6주에 옮겼다. Airbnb는 손으로 하면 1.5년치 엔지니어링 시간이 들 것으로 봤던 일이라고 밝혔다. 원래 테스트 의도와 코드 커버리지는 유지했다고 했다.

한계와 남은 과제

손으로 하면 1.5년이 걸린다는 수치는 실제 비교 실험이 아니라 Airbnb의 사전 추정이다. 이관 뒤 테스트 실행 시간이나 결함 발견율 변화는 원문에 없다.

출처

공개된 자료를 정리한 사례입니다. ATF Works 도입 고객의 결과가 아닙니다.

원문 보기 (새 탭에서 열림)