-
TDD 란?개발 방법론/TDD 2021. 11. 23. 15:35반응형
TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다.
TDD 개발 주기
Red : 단계에서는 실패하는 테스트 코드를 먼저 작성한다.
Green : 단계에서는 테스트 코드를 성공시키기 위한 실제 코드를 작성한다.
Yellow : 단계에서는 중복 코드 제거, 일반화 등의 리팩토링을 수행한다TDD 예시
예시 코드를 보는 것이 가장 이해가 빠를 것이다.
for (String a : list) { this.create(a), this.read(a), this.update(a), this.delete(a) }
예를들어 위 처럼 하나의 for 문에 여러 메서드가 삽입 되어 있는 경우 for문을 동작시켜 테스트를 할 수 있지만,
여러 메서드가 묶여 있어 디버깅 과정이 까다로울 것이다.
for문 안에, System.out.println()을 사용하여 테스트 하거나 디버깅 모드 사용하여 디버깅을 하는 것이 대부분일 것이다.
하지만, for문 안에 각각의 메서드 마다의 기능 단위가 커지면 커질 수록 디버깅이 어려워 질 것이다.
TDD 예시 코드 적용
위의 코드 뭉치에 TDD를 적용 시켜보자.
@Test public void create테스트(){ String a = a; this.create(a); } @Test public void read테스트(){ String a = a; this.read(a); }
위처럼 기능 단위로 각각의 메서드를 바로바로 실행 시켜 볼 수 있다. 한 기능을 만들때 들어가는 메서드들을 각각 위와 같이 테스트 하며 개발하는 것을 TDD라고 한다.
TDD 적용 방법
업로드 예정
TDD 장 단점
- 장점
- 기능 단위의 빠른 피드백을 받을 수 있다.
- 작성한 코드가 가지는 불안정성을 개선 할 수 있다.
- 보다 튼튼한 객체 지향적인 코드 생산이 가능하다.
- 재설계 시간이 단축된다.
- 사전의 많은 버그를 발견할 수 있다.
- 단점
- 생산성의 저하(개발 속도 저하)
TDD는 필수?
TDD를 꾸준히 적용한다면, 시간 대비 비용이 더 커지지 않고 일정하게 유지된다.
초기 비용은 더 많이 들 수 있으나 전체적으로 봤을때 비용이 점진적으로 늘어나지 않는다.
TDD를 사용하는 편이 장기적으로는 효과적이라고 할 수 있다.
반응형 - 장점