TDD(Test-driven Development)란.

TDD(Test-driven Development)란.

2021, Mar 14    

정리를 하게 된 이유.

  • 테스트 주도 개발에 대해 어떤 프로세스인지, 이클립스,인텔리제이에 추가해서 간단하게 사용만 해봤지, 제대로된 테스트 주도 개발에 대해선 해보질 못해서 아쉬움이 항상 있었다.
  • 이번에 기초적인 이론에 대해 알아보고 회사에서 사용을 한번 해볼 수 있는 기회가 있었으면 좋겠다.

TDD란

  • 약자 그대로 테스트 주도 개발.
  • 기존의 SW를 개발하고 테스트 하는 방식이 아닌, 테스트부터 작성하면서 코드를 작성하는 방법.

TDD 개발의 진행 방식

  • TDD는 크게 3가지 단계가 반복적으로 이루어진다고 설명한다.
질문: 테스트 작성을 통해 시스템에 질문. ( 테스트 실패 )
응답: 테스트를 통과하는 코드를 작성해서 질문에 대답한다. (테스트 성공)
정체: 통합, 불필요한 부분 제거 등의 리펙토링 

위의 세가지를 반복을 통해 계속 작성해나간다.
  • 리펙토링 단계에서는 소스의 가독성이 적절한가?, 중복된 코드는 없는가?, 이름이 잘못 부여된 메소드나 변수명은 없는가?, 구조의 개선이 필요한 부분은 없는가?
  • 에 대한 부분을 고민하면서 소스를 리펙토링해준다.

TDD의 장점

  • 개발의 방향을 잃지 않게 유지해준다.
  • 품질 높은 소프트웨어 모듈 보유, 시스템 결함이 줄어든다.
  • 자동화된 단위 테스트 케이스를 갖게 된다. 유지보수 용이
  • 사용설명서 & 의사소통의 수단, 테스트 문서로 사용 가능
  • 설계 개선.
  • 주기를 짧게 설정하도록 권장해서, 성취를 얻으며 능률을 향상 시킨다.

엉클 밥의 TDD 원칙

  1. 실패하는 테스트를 작성하기 전에는 절대로 제품 코드를 작성하지 않는다.
  2. 실패하는 테스트 코드를 한 번에 하나 이상 작성하지 않는다.
  3. 현재 실패하고 있는 테스트를 통과하기에 충분한 정도를 넘어서는 제품 코드를 작성하지 않는다.