TDD

안녕하세요. 오늘은 TDD, 즉 테스트 주도 개발이란 말을 듣기만 했던 제가 이 기회에 자세히 알아보고자 블로그에 한번 정리해보았습니다.

정의

  • 테스트 주도 개발 : 소프트웨어 개발 방식중 하나로써, 반복 테스트를 통해 소프트웨어를 개발하는 방법을 말합니다.

구현

  • 세가지 색으로 나눕니다.
  1. 빨강 - 테스트를 실패하는 코드

  2. 초록 - 테스트를 통과하는 코드

  3. 리펙토링 - 코드 정리

과정

아래와 같은 과정을 반복하게 됩니다.

실패하는 테스트 코드 작성 -> 작동하는 코드 작성 -> 코드 정리

자동화된 테스트가 실패하는 경우만 새로운 코드를 작성한다는 원칙도 있다고 합니다.

장점

  1. 중복적인 코드를 제거할 수 있습니다.

  2. 불필요한 기능을 제거하기 쉽습니다.

단점

  1. 코드 변경시 마다 유닛테스트 변경해야 합니다.

  2. 코드가 많으면 테스트이 작성하기 힘듭니다.

즉, 관리해야될 코드가 길어진다는 단점이 있습니다.

Written on January 12, 2018