TDD 진행 흐름

TDD 테스트 루프

TDD는 테스트 파일을 먼저 쓰는 형식이 아니라 실패를 명확히 보고, 최소 구현으로 통과시키고, 타입과 설계를 정리하는 피드백 루프입니다.

01

요구 사례 선택

가장 작은 비즈니스 규칙이나 버그 재현 사례를 하나 고릅니다.

example
02

실패 테스트 작성

아직 구현되지 않은 기대 결과를 테스트로 표현하고 실패를 확인합니다.

red
03

최소 구현

테스트를 통과하는 가장 작은 코드로 동작을 만듭니다.

green
04

리팩터링

중복, 이름, 타입 경계를 정리하되 테스트 결과를 유지합니다.

refactor
05

회귀 고정

발견한 버그는 재발하지 않도록 실패 사례를 테스트로 남깁니다.

regression
Unit
작은 규칙 검증 순수 함수, 도메인 규칙, 변환 로직처럼 빠르고 고립된 대상에 적합합니다.
빠른 피드백
Integration
경계 조합 확인 DB, 파일, HTTP 클라이언트 등 실제 경계와의 계약을 확인합니다.
fixture 필요
Type Test
타입 계약 고정 라이브러리나 제네릭 API는 런타임 테스트와 별도로 타입 기대를 고정할 수 있습니다.
tsd/expectType

TDD 품질 기준

실패 이유 테스트가 먼저 실패하지 않으면 테스트가 요구사항을 검증하는지 알기 어렵습니다.
구현 결합 내부 private 함수나 호출 순서에 과하게 묶인 테스트는 리팩터링을 방해합니다.
속도 유지 너무 느린 테스트만 있으면 TDD 피드백 루프가 끊깁니다.