ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 테스트 주도 개발
    테스팅 관련/Q&A 2020. 5. 23. 03:57

     

     


    테스트 주도 개발 방법론(TDD)은 좋은 아이디어일까?

    이 접근법은 어떠한 이익을 가져다줄까?

    단점은 무엇일까?


     

     

     

    더보기

    Test-Driven Development

    "테스팅 → 개발", 짧은 사이클을 반복하며 진행 (실패 - 성공 - 리팩토링)

    - 실패: 실패 예상 테스트 케이스 작성

    - 성공: 작성된 테스트에 통과하기 위한 최소한의 코드 작성

    - 리팩토링: 통과한 코드 수정 및 개선

     

    장점

    1. 객체지향적 개발: 좀 더 명확한 구조 및 기능 설계 가능. 재사용성 기반으로 테스트를 철저히 구조화시켜 작성되므로 기본적으로 객체지향성을 띄게 됨. 

    2. 품질 보장: 먼저 테스팅을 함으로서, 버그 방지시간 축소. 기본적으로 단위 테스트를 작성하기에 문제의 지점을 쉽게 찾아낼 수 있음.

    3. 방향성 유지: 요구사항에서 벗어나지 않도록 개발, 구현 기능이 요구 사항에 충족하는지 확인 가능(하나씩 테스트를 작성하며 진행하므로 어떤 기능을 개발하였고 어디까지 완료하였는지 쉽게 파악 가능)

    4. 설계 수정 시간의 단축: 테스트를 작성하며 결과를 예상할 수 있기에 설계의 구조적 문제로 인한 오류 개선 속도가 한층 빨라질 것. 일찍 발견할 수록 고치는 비용이 적게 듬.

    5. 유지보수의 용이성: 테스트 요소들이 사용자의 관점에서 정의되고 진행되기 때문에, 입력과 출력의 흐름이 명확해지고 추후 구조의 변경 및 소스 수정 시 구조를 쉽게 파악하고 빠른 수정이 가능해집니다. 더불어 재사용 테스트도 쉽게 가능.

    6. 테스트 문서 대체: 유닛 테스팅을 자동화 시킴과 동시에 보다 정확한 테스트 근거를 산출.

     

    단점

    1. 테스트 고려하여 코드 작성시 시간오래 소요될 수 있음.

    2. 빠른 개발 환경에서는 쉽게 도입이 어려움.

    3. 기능 하나를 구현하는데 테스트 코드를 작성하여 검증 및 구현, 개선시키는 작업을 해야하므로 생산성떨어질 수 있음.

     

    '테스팅 관련 > Q&A' 카테고리의 다른 글

    자동화: 테스팅 프레임워크 사용  (0) 2020.05.25
    테스트는 무엇일까?  (0) 2020.05.24
    커버리지 테스팅  (0) 2020.05.23
    sw 테스팅의 어려움  (0) 2020.05.23
    소프트웨어 테스팅 개념  (0) 2020.05.22
Designed by Tistory.