테스트 주도 개발(Test-Driven Development, TDD)은 소프트웨어 개발 방법론
실제 코드를 작성하기 전에 테스트 코드를 먼저 작성하는 방식으로
테스트가 개발 과정을 주도하는 핵심적인 역할을 하게된다.
TDD를 이용하여 개발을 하게된다면
실패하는 테스트 작성 (Red): 구현할 기능에 대한 테스트 코드를 먼저 작성, 아직 기능이 없으므로 테스트 실패
테스트 통과 코드 작성 (Green): 실패한 테스트를 통과시킬 수 있는 최소한의 코드 작성
코드 리팩토링 (Refactor): 테스트가 모두 통과하는 상태에서 코드 구조, 가독성, 효율성 개선
이 과정을 반복하게 된다.

TDD는 주로 단위 테스트를 중심으로 이루어지지만, 소프트웨어의 복잡성을 완전히 해결하려면 다양한 수준의 테스트가 필요함
목적: 소프트웨어를 구성하는 가장 작은 단위(함수, 클래스)가 독립적으로 올바르게 작동하는지 검증해야함
대상 코드의 내부 구현을 명확히 알고 작성하므로 화이트박스 테스트라고도 불림
특징
목적: 단위 테스트로 개별적으로 검증된 요소들을 결합하고, 서로 상호작용 할 때 에러사항이 없는지 검증해야 함
특징