TDD = TFD(Test-First-Development) + Refactoring

실제 코드를 작성하기 전 테스트 코드를 먼저 작성하여 개발하는 SW개발 방법론

일반적인 개발 프로세스의 문제점

자체 버그 검출 능력 저하

소스코드의 품질 저하

자체 테스트 비용 증가

TDD의 개발 프로세스

디자인(설계)단계

  • 프로그래밍 목적을 반드시 미리 정의해야만 하고 또 무엇을 테스트해야 할지 미리 정의(테스트 케이스 작성)해야 함

테스트 코드 작성

  • TFD 개발 프로세스와 같은 방식으로 테스트 코드를 작성함. 도중에 발생하는 예외 사항(버그, 수정사항)들은 테스트 케이스에 추가하고 설계를 개선함

코드 작성 단계

  • 실제 코드 작성

반복적인 단계가 진행되면서 자연스럽게 코드의 버그는 줄어들고, 소스코드는 간결해짐. 또한, 테스트 케이스 작성으로 인해 자연스럽게 설계가 개선됨으로 재설계 시간이 절감됨


1) 하나의 작은 단위의 테스트 코드를 작성한다.

2) 테스트를 한다.

3) 테스트가 통과될 때까지 테스트 코드를 수정한다.

4) 테스트가 통과된 테스트 코드는 리펙토링을 한다.

5) 리펙토링한 코드를 테스트한다.

6) 리펙토링한 코드가 통과 될 때까지 코드를 수정한다.

7) 테스트가 통과되면 테스트 케이스에 있는 다음 테스트 코드를 작성한다.

Unit Test

단위테스트를 하는 이유는 TDD가 지향하는 Clean code that works을 실현하기 위한 일종의 방법임

0개의 댓글