TDD (Test Driven Development)

cabbage·2023년 2월 23일
0

기타

목록 보기
13/26

TDD

  • Test Driven Development의 약자, 영어 뜻대로 테스트 주도 개발을 의미한다.
  • 반복 테스트를 이용한 소프트웨어 개발 방법론이다.
  • 작은 단위의 테스트들을 작성하고, 이 테스트들을 통과하는 코드를 추가하는 과정을 반복해 짧은 개발 주기를 반복해 소프트웨어를 개발한다.
  • 실제 코드를 작성하고, 코드가 잘 동작하는지 검증하기 위해 테스트 코드를 작성하는 것이 아니라 그 반대로 개발을 진행한다.
  • TDD를 사용해 구현할 기능에 대해 반복적으로 테스트하고, 코드를 수정하여 고품질의 소프트웨어를 만들 수 있다.

TDD 개발 방법

  1. 단위 테스트를 먼저 작성한다.
  2. 테스트를 통과하기 위해 코드를 작성한다.
  3. 다음 테스트 코드를 작성한다.
  4. 테스트를 통과하기 위해 코드를 작성하거나 수정한다.
  5. 1~4 단계를 반복하며 모든 실패, 성공 테스트 케이스를 작성한다.
  6. 중복 코드를 제거하고 리팩토링한다.

TDD 장점

1️⃣ 튼튼한 객체지향 코드

  • 소프트웨어 개발 시 기능 별로 철저하게 모듈화한다.
  • 이를 통해 종속성과 의존성이 낮은 모듈들로 조합된 소프트웨어 개발을 가능하게 해준다.
  • 모듈을 추가하거나 제거하더라도 소프트웨어의 전체 구조에 영향을 미치지 않게 한다.

2️⃣ 재설계 시간 단축

  • 테스트 코드를 먼저 작성함으로써 개발자의 작업 의도를 분명히하고 개발을 시작한다.
  • 테스트 케이스들을 작성하면서 다양한 예외사항들을 생각할 수 있다.

3️⃣ 디버깅 시간 단축

  • 자동화된 유닛 테스트를 전제로 갖기 때문에 버그가 발생하더라도 버그를 특정 짓고 손쉽게 찾아 디버깅할 수 있다.

4️⃣ 테스트 문서 대체 가능

  • 테스트 과정을 자동화하고 정확한 테스트 근거를 산출할 수 있다.

5️⃣ 추가 구현의 용이함

  • 배포가 완료된 소프트웨어에 기능을 추가하여 업데이트 배포할 때 우려되는 점은 추가할 기능이 기존의 기능에 어떤 영향을 끼칠지 모른다는 점이다.
  • TDD는 자동화된 유닛 테스팅을 전제로 하므로 추가할 기능, 기존의 기능들의 테스트 기간을 단축시킨다.

TDD 단점

생산성 저하

  • TDD의 가장 큰 단점은 생산성이 떨어진다는 것이다.
  • 처음부터 테스트 코드를 작성해야 하고, 테스트를 거쳐 코드를 수정해야 하기 때문에 일반적인 개발 방식보다 생산성이 떨어진다.

참고

profile
캐비지 개발 블로그입니다. :)

0개의 댓글