티스토리 뷰
TDD 란?
테스트 케이스를 먼저 작성한 다음 테스트 케이스에 맞추어 실제 개발 단계로 이행하는 개발 방법론
TDD = TFD(Test First Development) + 리팩토링
TDD 원칙
- 원칙 1 - 실패하는 단위 테스트를 작성할 때까지 프로덕션 코드(production code)를 작성하지 않는다.
- 원칙 2 - 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
- 원칙 3 - 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.
TDD에 대한 생각
1. 명확하지 않은 요구사항에 대해서 구체적으로 다가갈 수 있다.
아직 이해하지 못한 도메인이나 기획에서 테스트 코드를 먼저 작성한다면 더 쉽게 리펙토링에 다가갈 수 있다고 생각한다. 예상한 입력과 출력에 대해서 테스트 코드를 작성한다면 머릿속으로 한 생각과 직접 작성한 부분에서의 차이를 더 빠르게 파악할 수 있다.
2. 프로덕션 코드를 짜기 전 미리 설계에 대해서 생각해 볼 수 있다.
테스트 코드를 짜는 게 어렵다면 테스트하려는 메서드에 많은 기능이 담겨 있는지 생각해 보자. 테스트가 어려운 부분을 분리한다면 더 좋은 설계가 나 올 수 있다고 생각한다.
반박글? TDD는 설계 기법이 아니다
3. 디버깅 시간을 줄여준다.
프로그래밍에서 대부분의 시간이 디버깅에 투입되는데, 테스트 코드가 작성되어 있다면 디버깅을 해야 할 범위를 제한함으로써 디버깅에 들어가는 노고를 크게 줄여준다.
댓글