1. TDD란(Test Driven Development)
테스트 주도 개발.
반복 테스트를 이용한 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현
2. TDD 개발 주기

- Write Failing Test : 실패하는 테스트 코드 먼저 작성
- Make Test Pass : 테스트 코드를 성공하기 위한 실제 코드 작성
- Refactor : 중복 코드 제거, 일반화 등의 리팩토링 수행
💡 실패하는 테스트 코드를 작성할 때 까지 실제 코드를 작성하지 않고, 실패하는 테스트를 통과할 정도의 최소 실제 코드를 작성함으로써 실제 코드에 대해 기대되는 바를 보다 명확하게 정의하여 불필요한 설계를 피할 수 있고 정확한 요구 사항에 집중 가능
3. TDD의 장점
- 보다 튼튼한 객체 지향적인 코드 생산
- 재설계 시간의 단축
- 디버깅 시간의 단축
- 테스트 문서의 대체 가능
- 추가 구현의 용이함
이러한 장점에도 불구하고 모두 TDD를 따르는 것은 아님 왜냐하면 가장 큰 단점이 생산성의 저하이기 때문!
일반적인 개발 방식에 비해 시간이 10~30% 더 증가함
'CS' 카테고리의 다른 글
[CS / SW] 객체 지향 프로그래밍 (0) | 2023.10.24 |
---|---|
[CS / SW] 애자일 방법론 (0) | 2023.10.24 |
[CS / SW] 클린코딩 & 리팩토링 & 시큐어코딩 (0) | 2023.10.19 |
[CS / OS] 파일시스템 (0) | 2023.10.10 |
[CS / OS] 메모리 (0) | 2023.10.10 |
1. TDD란(Test Driven Development)
테스트 주도 개발.
반복 테스트를 이용한 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현
2. TDD 개발 주기

- Write Failing Test : 실패하는 테스트 코드 먼저 작성
- Make Test Pass : 테스트 코드를 성공하기 위한 실제 코드 작성
- Refactor : 중복 코드 제거, 일반화 등의 리팩토링 수행
💡 실패하는 테스트 코드를 작성할 때 까지 실제 코드를 작성하지 않고, 실패하는 테스트를 통과할 정도의 최소 실제 코드를 작성함으로써 실제 코드에 대해 기대되는 바를 보다 명확하게 정의하여 불필요한 설계를 피할 수 있고 정확한 요구 사항에 집중 가능
3. TDD의 장점
- 보다 튼튼한 객체 지향적인 코드 생산
- 재설계 시간의 단축
- 디버깅 시간의 단축
- 테스트 문서의 대체 가능
- 추가 구현의 용이함
이러한 장점에도 불구하고 모두 TDD를 따르는 것은 아님 왜냐하면 가장 큰 단점이 생산성의 저하이기 때문!
일반적인 개발 방식에 비해 시간이 10~30% 더 증가함
'CS' 카테고리의 다른 글
[CS / SW] 객체 지향 프로그래밍 (0) | 2023.10.24 |
---|---|
[CS / SW] 애자일 방법론 (0) | 2023.10.24 |
[CS / SW] 클린코딩 & 리팩토링 & 시큐어코딩 (0) | 2023.10.19 |
[CS / OS] 파일시스템 (0) | 2023.10.10 |
[CS / OS] 메모리 (0) | 2023.10.10 |