TDD란?

커피 내리는 그냥 사람·2021년 5월 31일
0

취업 및 면접준비

목록 보기
3/20

TDD

참고링크
참고링크

  • Test-Driven Development(테스트 주도 개발)
  • 즉 테스트를 염두에 둔 프로그램 개발 방법
  • 설계 -> 테스트 -> 개발(개발->테스트 가 아니라)

장점은?

총평 : 오류 개선 속도 빨라진다.

  1. 객체지향적인 코드 개발
    테스트 코드를 먼저 짜기 때문에 명확하게 기능 및 구조를 설계.

    테스트 위해서라도 재사용 가능한 코드를 짤 수밖에 없게 됨.

  2. 설계 수정 시간의 단축

    테스트 코드를 먼저 짜기 때문에 설계의 구조적 문제점을 바로 찾을 수 있다. 이로 인해 설계된 것을 수정하는데 시간이 단축될 수 있다.
    -> 결함을 일찍 찾을수록 고치는 비용이 적게 든다.

  3. 디버깅 시간의 단축

    유닛테스트 기반의 테스트 코드 작성 -> 모듈별로 문제점 쉽게 파악(영역별로 분할해서 찾을 수 있다고 함)

  4. 유지 보수의 용이성

    TDD로 인해 테스트 요소들이 사용자 관점으로 정의되고 진행되기 떄문에 입출력 흐름이 명확해지고 소수 수정 시 구조도 쉽게 파악이 가능하다. -> 재사용 테스트도 쉽다.

  5. 테스트 문서의 대체 가능

    테스팅을 자동화시킬 수 있어 보다 정확한 테스트 근거를 산출할 수 있다.(통합테스트보다 더 정확한 테스트가 진행되어서?)

그럼 단점은? :

총평 : 생산성 저하!!

  • 처음부터 두 개의 코드를 짜야 하고 중간 중간 테스트해가며 고쳐야 함.

  • 테스트 코드 자체가 작성하기 쉽지 않다.(팀원 전체가 익숙해져야 한다.)

  • 10~30% 할 일이 늘어난다.

  • 이제까지 하던 방식을 아예 새로 바꿔야 한다.

  • 규칙에 얽매여서 에자일이 되기 힘들 수도 있다.

  • 모든 상황에서 테스트코드를 작성해야 하는지도 생각해봐야 한다.(배보다 배꼽이 클수도 있다.)

profile
커피 내리고 향 맡는거 좋아해요. 이것 저것 공부합니다.

0개의 댓글