테스트 = Spec 문화

concept updated 2026-04-13

테스트 = Spec 문화

한 줄 정의

동작 명세가 테스트 케이스. 별도 설계 문서 불필요. “입력 → 기대 동작”이 DoD.

핵심 내용

기존 방식 (문서 중심):

requirements.md → design.md → implementation → test

테스트 = Spec:

test_case("입력 X" → "기대 동작 Y") = 동작 명세

Mock vs Real LLM:

  • Mock LLM (결정적): “이 응답이 오면 시스템이 이렇게 동작” → 상태 전이 테스트
  • Real LLM (비결정적): “크래시 안 남” → E2E 스모크 테스트

테스트 피라미드 (4층):

E2E (5개, 실제 LLM)         ← 크래시 안 남
Regression (15개, BUGS.md)  ← P0/P1 재발 방지
State Transition (14개)     ← 상태 전이 보장 (단위 테스트로 못 잡음)
Contracts (16개)            ← 인터페이스 계약
Unit (77개)                 ← 함수 단위

Golden Set 정책:

  • P0/P1 버그 수정 후 반드시 Golden Set에 추가
  • 포맷: {name, intent, data, expected_outcome, expected_not, bug_id}

적용 맥락

LLM 에이전트처럼 비결정적 컴포넌트가 있는 시스템. 상태 전이 버그는 단위 테스트로 잡을 수 없음.

Relationships

related_to goal-driven-execution — Karpathy 4원칙의 Goal-Driven Execution과 동일 방향