ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TDD(Test-Driven-Development, 테스트 주도 개발)
    기술 이야기/TDD 2020. 10. 20. 15:53
    반응형

    TDD란 무엇인가

    • Tset-Driven-Development => 테스트 주도 개발
    • 짧은 개발 사이클에 의존하는 개발 프로세스
    • 새로운 기능에 대한 자동화된 테스트케이스 작성 ~> 테스트를 통과하는 간단한 코드 작성
    • 테스트 종류
      • 단위 테스트 Unit test : 소프트웨어의 최소단위, 보통 함수를 가리킴
      • 통합 테스트 Integration test : 단위 기능이 합쳐진 기능에 대한 테스트
      • 시스템 테스트 System test : 위 내용보다 더 큰 개념, 전체 시스템에 대한 동작 테스트
      • 인수 테스트 Acceptance Test : 고객이 ok할 수 있는지 판단하기 위한 테스트

    TDD의 장단점

    • 장점
      • 객체지향적인 코드 개발
        • 명확한 기능과 구조를 설계할 수 있음
        • 코드 재사용성을 보장하면서 코드를 작성하게 됨
      • 설계 수정 시간 단축
        • 설계를 만족시키기 위해 테스트 코드를 작성 ~> 설계의 구조적 문제 발견
        • 개발에 들어가기 전에 설계를 수정할 수 있음 (비용 절감)
      • 디버깅 시간 단축
        • 각 모듈별로 테스트를 진행 ~> point를 쉽게 찾게된다.
        • 단위 테스트를 진행하기 때문에, 분할된 영역만 수정하면 됨
      • 유지보수 용이
        • 테스트는 사용자 관점에서 정의되고 진행 ~> 입력과 출력의 흐름 명확해짐
        • 구조 변경 및 소스 수정 시, 구조를 쉽게 파악하고 빠르게 수정
        • ~> 리팩토링 속도가 향상되고 코드 퀄리티가 상승
    • 단점
      • 테스트 코드를 짜야하기 때문에 작업량이 늘어남 ~> 빠른 생산이 필요한 개발에 부적합
      • 어떤 부분을 어떻게 테스트할지, 어떤 프레임워크가 서비스에 부합할지 고려하고 선택하는데 시간이 걸린다. 또한, 새로운 분야에 대한 학습이 필요하기 때문에 러닝커브가 높다. ~> 팀 전체가 테스트에 익숙한 상태에서 TDD를 해야 효과를 볼 수 있음
      • TDD는 100%의 무결성과 케이스 적용 범위를 보장하지 않음
    반응형

    '기술 이야기 > TDD' 카테고리의 다른 글

    프로젝트를 TDD로 진행하며 느낀 TDD 경험담  (0) 2020.12.19

    댓글

Designed by Tistory.