AI와 함께 iOS 테스트 커버리지 8배 향상! 무신사 개발팀의 비결

by DD
1개월 전
조회수 90

테스트 커버리지 9%라는 낮은 수치에서 시작하여, AI를 활용해 테스트 코드 자동 생성프롬프트 설계를 시도

AI를 활용하여 테스트 코드 작성 자동화를 시도하고, 개발자는 비즈니스 로직 검증에 집중하는 역할 분담

프롬프트 설계코드 리뷰 자동화를 통해 테스트 커버리지를 79%까지 향상, 80% 이상 기대

프로덕션 코드 수정 불가 등의 제약 조건을 통해 AI 작업 범위를 명확히 하고, 리뷰 부담을 줄임

AI 테스트 코드 자동화의 핵심: 프롬프트 설계

본문에서는 AI가 일관된 테스트 코드를 생성하도록 돕기 위해 체계적인 프롬프트 시스템을 구축한 점을 강조한다. TEST_PLAN.md를 기반으로, AI는 테스트 대상, 핵심 원칙, 단계별 워크플로우를 참조하여 테스트 코드를 생성한다.

4가지 핵심 원칙: 빌드 성공, 커버리지 70% 이상, 테스트 위치, 프로덕션 코드 수정 금지

단계별 워크플로우: 준비, Stub 작성, 테스트 작성, 품질 검토, 빌드, 커밋 등 7단계

AI 필수 확인 사항: 초기 상태 및 최종 State 검증, 실패 메시지 추가, Thread.sleep 금지 등 10가지

이러한 구체적인 제약과 가이드라인은 AI가 팀 컨벤션에 맞는 테스트 코드를 생성하도록 돕고, 개발자의 리뷰 부담을 줄이는 데 기여했다.

테스트 코드 품질 향상을 위한 노력

무신사 개발팀은 AI가 생성한 테스트 코드의 품질을 높이기 위해 다양한 노력을 기울였다. 특히, 빌드 전 품질 검토 체크리스트를 도입하여 빌드 실패율을 감소시켰다.

품질 검토 체크리스트: Stub 파일 분리, 모든 Action 테스트 커버리지 충족, 불필요한 테스트 제거, Bool 비교 방식, @MainActor 어노테이션 확인, 강제 언래핑 제거 등

자동 검증 명령어: grep 명령어를 활용하여 체크리스트 항목 자동 검증

Given-When-Then 패턴: 모든 테스트에 적용하여 가독성 및 유지보수성 향상

이러한 노력들은 AI가 생성한 테스트 코드의 품질을 높이고, 개발팀의 생산성을 향상시키는 데 기여했다.

AI 코드 리뷰 자동화로 리뷰 병목 해소

무신사 개발팀은 AI를 활용하여 코드 리뷰 병목 현상을 해결하고, 개발 생산성을 향상시켰다. Claude Code 기반의 PR 리뷰 프롬프트를 구축하여, 코딩 컨벤션 준수 여부와 테스트 스펙 충족 여부를 자동 검증했다.

AI 리뷰: 코딩 컨벤션 준수 여부, 테스트 스펙 충족 여부 자동 확인

자동 수정: AI 리뷰 코멘트에 /fix 답글 시 자동 수정 및 커밋

코드 오너십: 담당자 = 해당 Reactor의 코드 오너 원칙 적용

AI 코드 리뷰 자동화는 개발자의 컨텍스트 스위칭 비용을 줄이고, 코드 품질을 유지하는 데 기여했다.

AI 활용의 성공 요인: 팀 문화와 협업

본문에서는 AI를 활용한 테스트 코드 작성 프로젝트의 성공 요인으로 팀 문화와 협업을 강조한다. 매주 위클리 미팅을 통해 진척 상황을 공유하고, 프롬프트 개선, AI가 생성한 테스트의 품질 이슈, 프로덕션 코드 수정 예외 케이스 등을 논의했다.

위클리 미팅: 진척 사항 확인, 프롬프트 개선 논의, AI 테스트 품질 이슈, 예외 케이스 처리

코드 오너십: 담당자 = 해당 Reactor의 코드 오너 원칙 적용

매일 Daily Coverage Report 공유: 팀 전체의 동기 부여

AI는 도구일 뿐이며, 팀원들의 적극적인 참여와 협업이 성공적인 결과를 만들어냈다.

AI한테 테스트 코드를 맡겼더니 커버리지가 8배 올랐다