클로드 코드

[클로드 코드 완독 챌린지] - 3주차 : 테스트 : 클로드 코드와 함께하는 TDD

sson-coding 2025. 10. 20. 14:48

테스트 피라미드와 클로드 코드

  • 테스트 피라미드 : 단위 테스트를 기반으로 하고, 통합 테스트와 E2E 테스트를 적절히 배치하는 전략

클로드 코드는 각 레벨의 테스트를 효과적으로 생성하고 관리할 수 있도록 도와준다.


단위 테스트

함수 테스트 생성

함수의 로직을 분석하여 완전한 테스트 스위트(Test Suite:같은 목적을 가진 여러 테스트를 모아놓은 집합)를 자동으로 생성한다. 이를 통해 개발자는 테스트 작성에 소요되는 시간을 줄일 수 있다.

> 다음 함수에 대한 Jsest 테스트 코드를 작성해줘
함수 코드

edge case 와 정상 케이스를 모두 포함해줘

리액트 컴포넌트 테스트

> 다음 React 컴포넌트에 대한 테스트를 작성해줘

React 코드

React Testing Library 를 사용해줘

TDD 워크플로

Red-Green-Refactor 사이클

TDD 는 테스트를 먼저 작성하고 구현하는 개발 방법론이다. Red-Green-Refactor 라는 3단계 사이클을 반복하면서 안전하고 견고한 코드를 만들어 나간다.

Red : 실패하는 테스트 작성

아직 구현되지 않은 기능에 대한 테스트를 작성한다. 이 테스트는 당연히 실패(Red) 하게 된다. 중요한 것은 요구사항을 명확하게 정의하는 테스트를 작성하는 것이다.

> 사용자 등록 기능을 TDD로 개발한다. 먼저 실패하는 테스트 부터 작성해줘. 요구사항은 다음과 같아
- 이메일과 비밀번호로 회원가입
- 이메일 중복 체크
- 비밀번호 해싱
- 입력값 유효성 검사

Green : 최소한의 코드로 테스트 통과시키기

테스트를 통과시키는 최소한의 코드를 작성한다. 이 단계에서는 코드의 품질보다는 테스트를 통과시키는 것이 목표이다.

> 작성된 테스트를 통과하는 UserService 클래스를 구현해줘. 최소한의 코드로 테스트만 통과하면 돼

Refactor : 코드 품질 개선

테스트가 통과하는 상태에서 코드의 구조와 품질을 개선한다. 테스트가 안전망 역할을 하므로 안심하고 리팩토링할 수 있다.

> UserService 코드를 리팩토링해줘. 의존성 주입, 에러 핸들링 개선, 타입 안정성 강화를 적용하고
테스트도 함께 수정해줘

테스트 커버리지 개선

테스트가 부족한 영역이 있을 수 있다. 누락된 테스트 케이스를 추가하여 높은 커버리지를 달성하고, 코드의 안정성과 신뢰성을 크게 향상 시킨다.

> 현재 코드의 테스트 커버리지를 분석하고,
누락된 테스트 케이스를 추가해줘.
목표 커버리지는 90% 이상입니다.

통합 테스트

API 통합 테스트

> Express API 엔드포인트에 대한 통합 테스트 작성해줘
POST ~
GET ~
PUT ~
DELETE ~

Supertest 를 사용하고, 데이터베이스는 모킹해줘

E2E 테스트(End-to-End Testing)

> 전자상거래 사이트의 구매 플로우에 대한 E2E 테스트를 PlayWright 로 작성해줘
1. 홈페이지 방문
2. 상품 검색
3. 상품 선택
4. 장바구니 추가
5. 체크아웃
6. 결제 정보 입력
7. 주문 완료 확인

Visual Regression 테스트

UI 의 시각적 변경사항을 자동으로 감지하고 검증한다. 프런트엔드 개발에서 발생할 수 있는 시각적 버그를 사전에 차단한다.

특히 반응형 디자인과 크로스 브라우저 호환성 문제를 조기에 발견할 수 있고, 수동 UI 테스트의 필요성을 크게 줄요 개발 효율성을 향상시킨다.

> Percy 나 Chromatic 을 사용한 visual regression 테스트를 설정해줘
주요 페이지의 스크린샷을 자동으로 비교하도록 설정해줘

테스트 자동화와 CI/CD

깃허브 액션 테스트 자동화

깃허브 액션 워크플로를 자동으로 생성하여 지속적 통합 환경을 구축할 수 있다. 특히 PR 생성 시 자동 테스트 실행으로 코드 품질을 보장한다.

> GitHub Actions workflow 를 생성해줘
- PR 생성 시 모든 테스트 실행
- 테스트 커버리지 리포트 생성
- 테스트 실패 시 PR 병합 차단
- 병렬 테스트 실행으로 속도 최적화

테스트 모니터링과 리포팅

테스트 대시보드 설정

테스트 결과를 시작적으로 모니터링할 수 있는 대시보드를 구축한다. 테스트 통과율 추이를 통해 코드 품질 변화를 한눈에 파악할 수 있고, 커버리지 그래프로 테스트 완성도를 지속적으로 추적한다. 실패한 테스트와 실행 시간 분석을 통해 성능 병목 지점을 조기에 발견하여 프로젝트의 전반적인 테스트 건강도을 체계적으로 관리할 수 있다.

> 테스트 결과를 시각화하는 대시보드를 만들어줘
- 테스트 통과율 추이
- 커버리지 변화 그래프
- 실패한 테스트 목록
- 테스트 실행 시간 분석