d3ro-voice/docs/tdd-red/00-README.md
Yun Chan c3ddd36c6f
Some checks failed
deploy-site / deploy (push) Failing after 40s
docs: record the 1.1.0 release and add the infrastructure map
Release notes for 1.1.0 were split between an Unreleased section and the
version section, so the published notes would have omitted the update-feed
and desktop changes. Everything shipping in this version now sits under one
`## [1.1.0]` heading.

`docs/map/` becomes the entry point for what infrastructure exists per
platform and how far each feature is developed, with a documented update
protocol so feature work and this map do not drift apart again. The release
guide now states that installer binaries live in the update feed rather than
the repository.
2026-09-16 23:27:52 +09:00

77 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TDD-RED 프레임워크 · 2026
**"RED" 를 원론·증거·의견 기준으로 총체적으로 파악하고, 의미 있는 RED와 의미 없는 RED를 분리하고,
없는 것(가짜/의례적 RED)을 삭제하고, 흩어진 테크닉을 통폐합·구조화하고, 긴 시나리오로 재구성한 실행 프레임워크.**
> 작성 기준: Sep 2026. 2026년 전반~9월 자료(핵심은 2026-08 사전인쇄·Spec Kit v1.0.0) + 원론(Beck/Fowler/DHH 등) + 2026 생성형 AI 에이전트 시대 자료.
> 리서치 물량: **약 94개 외부 출처 정보 항목**(정확히 100개 번호, 일부 종합 링크 포함) / 14개 원문 1차 소스는 Playwright(headless → headful 폴백)로 직접 스크랩.
> **레드팀 검증 반영**: 5방면(원론·수치·실용성·일관성·2026최신성)을 거쳐 v1.1로 개정 — 보고서는 `scratch/tdd-red/redteam/01~05*.md`.
---
## 문서 인덱스
| 문서 | 내용 | 한 줄 요약 |
|---|---|---|
| `01-principles-and-sources.md` | RED의 원론·이론·논문·주요 인물 의견 전부 파악 | "RED는 무엇인가"의 땅다지기 |
| `02-meaningful-vs-meaningless-red.md` | **의미 있는 RED vs 의미 없는 RED** 분류표 | 핵심 산출물 1 |
| `03-cleanup-and-consolidation.md` | 없는/가짜 RED **삭제**, 테크닉 **통폐합**·구조화 | 핵심 산출물 2 |
| `04-long-scenarios.md` | RED를 **긴 시나리오**(행위 사양)로 재구성 | 핵심 산출물 3 |
| `05-framework.md` | 실행 프레임워크: 제어 루프·AGENTS.md·체크리스트·게이트 | 핵심 산출물 4 |
| `SOURCES.md` | 100개 정보 항목(약 94 외부) + 1차 소스 14개 | 증거 자료실 |
---
## 핵심 요약 (4줄)
1. **RED는 "실패하는 테스트를 먼저 쓰는 것"이 아니라, "한 가지 관찰 가능한 행위를 사양으로 명세하고, 그 행위가 없어서 **예상된 이유로** 실패함을 증명하는 것"**이다 (회귀=결함 재현, 특성화=레거시 전처리는 명시적 예외).
2. **의미 있는 RED** = 행위(behavior)를 하나만, 실제 결함을 잡을 수 있는 단정(assertion)으로, 구현이 아니라 인터페이스/결과를 검증하는 것. **의미 없는 RED** = 단정 없는 가짜 테스트, 구현 세부(내부) 테스트, 전부 목(mock)한 인공 시스템, 커버리지 채우기, 의례적 RED.
3. **2계층 실행**: 내부 루프(초 단위: RED→GREEN→REFACTOR) + 외부 게이트(GATE=VERIFY+REVIEW+DONE). 레드팀 검증으로 8단계 단일 목록을 폐기하고 단계 순서 모순을 해소했다.
4. **2026 에이전트 시대**: RED를 "에이전트에게 테스트-퍼스트를 프롬프트로 말하는 것"이 아니라 "**인간이 결정한 수용 기준을 보호 경로로 강제하는 완료 게이트**"로 격상한다. '숨김(held-out)'은 이 환경에서 실행 불가하여 '**보호(protected)**'(고치지 못하게)로 다운그레이드했다.
---
## 근본 정의 (Canon RED, Beck 2023 재확인 + 2026 + 레드팀 정정)
- 테스트 목록(행위 시나리오)을 먼저 **전부** 나열하라.
- 목록에서 **딱 하나**를 구체적이고 실행 가능한 테스트로 만들고, **실패를 확인하라**(실패 관찰 명문화는 Beck 『TDD By Example』·2026 가이드 결합 — Canon 본문은 실패를 전제만 한다).
- 그 테스트(+이전 모든 테스트)가 통과하도록 코드를 바꾸되, **가장 단순한 변경**으로.
- 선택적으로 리팩터(구현 설계 개선) — 행위는 바꾸지 않는다.
- 목록이 비울 때까지 반복 → **공포가 지루함으로 바뀔 때까지**.
- *Beck, "Canon TDD", Dec 2023 / 스크랩 `kentbeck_canon_tdd.txt`* (참고: Canon 본문은 2단계가 '하나를 구체 테스트로'까지이고 실패는 전제만 됨)
---
## 2026 자료 프레이밍 — 정정 (레드팀 실측 반영)
원래 "최근 4개월(2026-05~09)"로 과장됐으나, **실측상 4개월 창 안에 드는 외부 항목은 약 8개(8%)**에 불과하다.
다수(Google/TotT 03-10, Meta 02-11, Alderson 01-25, Drew Cain 04-09)는 2026년 1~4월 자료다. 아래 표는 실제 시기를 그대로 둔다.
| 항목 | 출처(년) | 핵심 | 증거 등급 |
|---|---|---|---|
| VS Code + Copilot 전용 **Red/Green/Refactor 에이전트** 가이드 | 2026(Living) | IDE가 TDD 3상을 에이전트 핸드오프로 공식화 | 공식 문서 |
| **TDD-Agent** (테스트 먼저 + 실행 피드백 반복) | 2026-08-17 | 저장소 수준 정답률·커버리지·뮤테이션 개선 보고 | **사전인쇄(비피어리뷰)** |
| **Spec-Driven Development(SDD)** 등장 | 2025~2026 | Thoughtworks Radar 2025 · GitHub Spec Kit · Amazon Kiro · Red Hat | **2차 인용·벤더 수치** |
| **Google "The Way of TDD"** (TotT) | 2026-03-10 | TDD가 은탄환이 아니라는 공식 인정 | 공식 블로그 |
| **Meta "Death of Traditional Testing / JiTTests"** | 2026-02-11 | 전통 테스트 유지보수 붕괴 → 즉시생성 테스트 — **RED 승격과 반대 방향(분기)** | 공식 블로그 |
| **TDD-Agent / TDAD / Spec-driven test gen** 사전인쇄 | 2026-08 | 테스트 품질·독립성·실행 피드백이 양보다 중요 | **사전인쇄** (TDAD 실재 제출은 2026-03) |
| Alderson "Turns out I was wrong about TDD" | 2026-01-25 | 에이전트가 TDD 경제성을 뒤집음 (단 test-first 순서는 명시 안 함) | n=1 실무 후기 |
| Emily Bache × Nizar "TDD Guard / Probity" | 2026-07-27 | 에이전트의 TDD 위반(과잉구현·테스트약화)을 **도구로 강제** | 인터뷰 |
| Drew Cain "TDD Is Out, SDD Is In" | 2026-04-09 | 테스트는 검증, 스펙은 의도 — "올바른 것을 만드는가" (저자·날짜 확인 필요) | 2차 인용 사례 |
| **합의(2026-09 시점)** | — | "RED를 행위 명세·독립 게이트로 승격"은 2026 신호 **일부 + 원론·실증의 결합** — 전부의 수렴은 아님(Meta JiTTests 등은 분기) | — |
---
## 디렉터리
```
docs/tdd-red/
├── 00-README.md ← 지금 이 파일
├── 01-principles-and-sources.md
├── 02-meaningful-vs-meaningless-red.md
├── 03-cleanup-and-consolidation.md
├── 04-long-scenarios.md
├── 05-framework.md
└── SOURCES.md (100개 정보 항목: 약 94 외부 출처)
└── 레드팀 검증 → `scratch/tdd-red/redteam/01~05*.md` (5방면)
```