TDD(Test-Driven Development, 테스트 주도 개발)은
테스트를 먼저 작성하고, 그 테스트를 통과하는 최소한의 코드를 작성한 후, 코드를 개선(리팩터링)
하는 개발 방법론을 말한다.
Red (실패하는 테스트 작성)
Green (테스트 통과시키기)
Refactor (리팩터링)
이 과정을 반복하며 점진적으로 완성도 높은 코드를 만들어간다.
@Test
void addNumbers() {
Calculator calculator = new Calculator();
assertEquals(5, calculator.add(2, 3)); // 아직 Calculator가 없으니 실패
}
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
테스트를 실행하면 통과힌다 ✅
| 항목 | 설명 |
|---|---|
| 신뢰성 향상 | 코드가 언제나 테스트로 검증되므로 버그 발생 확률이 낮다. |
| 리팩터링 용이 | 테스트가 있으니 안심하고 코드 구조를 바꿀 수 있다. |
| 명확한 요구사항 반영 | 테스트를 먼저 작성하므로 “어떤 기능이 필요한가”를 먼저 정의하게 된다. |
| 유지보수성 향상 | 시간이 지나도 테스트로 기존 동작이 보장된다. |
| 개념 | 설명 |
|---|---|
| BDD (Behavior-Driven Development) | TDD에서 발전한 형태로, “사용자 행동(시나리오)” 중심으로 테스트를 작성한다. |
| Unit Test (단위 테스트) | TDD의 핵심 단위. 하나의 메서드나 클래스 단위로 동작을 검증한다. |
| CI/CD 파이프라인 | 자동 테스트가 포함되어 배포 전 품질을 보장한다. |