Chap 02. TDD 시작

2022. 7. 20. 13:12개발 관련 책 읽기/테스트 주도 개발

목표 : 먼저 TDD에 대한 개념과 프로세스를 이해해보자.

 

TDD란

 테스트 주도 개발(Test-Driven Development, TDD)은 매우 짧은 개발 사이클 반복하는 개발 방법 중의 하나이다.

미국의 S/W 개발자이자 익스트림 프로그래밍 창시자인 Kent Beck이라는 분이 창시한 개발 방법론이다.

 

먼저, 요구사항을 검증하는 테스트 케이스를 작성 후, 그 테스트 케이스를 통과할만큼 코드를 생성 후 마지막으로 리팩토링을 하는 방식이다.

 

TDD를 설명하는 그림

 

TDD 이전의 개발 방식

 1. 기능에 대한 분석 및 설계

 2. 기능 구현

 3. 구현 코드에 대한 테스트 및 디버깅

 

TDD전의 개발방식은 한 번에 작성한 코드가 많을수록 테스트와 디버깅하는 시간에 대해 길어져서 비효율적인 시간낭비가 생기게 되었다.

TDD 개발 방식

 1.기능이 올바르게 동작하는지 검증하는 테스트 코드부터 먼저 작성한다.

 2.테스트 코드 작성 완료 후 실제 구현 코드를 작성한다.

 

TDD 개발 방식의 흐름

TDD 흐름

 

  1. 테스트 코드를 먼저 작성한다.
  2. 작성한 테스트를 통과하지 못하면 테스트를 통과할 만큼만 Product 코드를 작성한다.
  3. 테스트 통과한 뒤에는 개선할 코드가 있으면 리팩토링 한다.
  4. 리팩터링 수행 후 다시 테스트를 실행해서 잘 되는지 확인한다.
  5. 이러한 과정을 반복해서 점진적으로 기능을 완성해 나가는 것, 이것이 전형적인 TDD의 흐름이다.

 

레드-그린-리팩터
TDD 사이클을 레드-그린-리팩터로 부르기도 한다.

- 레드 :실패하는 테스트
- 그린 :성공한 테스트
- 리팩터 : 리팩토링 과정

 

TDD 특징 

  1. 테스트가 개발을 주도한다
  2. 지속적인 코드 정리(리팩토링)
  3. 빠른 피드백

 


참고자료

 

 

 

반응형

'개발 관련 책 읽기 > 테스트 주도 개발' 카테고리의 다른 글

Chap 01. TDD 준비  (0) 2022.07.20
테스트 주도 개발 시작하기  (0) 2022.07.04