TDD

굥굥·2021년 9월 9일
0

TDD

Test Driven Development

테스트 주도 개발
반복 테스트 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하여 단계적으로 반복하며 코드를 추가

1) 실패하는 테스트 코드

2) 테스트 코드를 성공시키기 위한 실제 코드

3) 중복 코드 제거 및 일반화

  • 실패하는 테스트 코드 작성할 때까지 실제 코드 작성하지 않음
  • 실패하는 테스트를 통과할 정도의 최소 실제 코드 작성
  • 이로써 실제 코드에 기대되는 바를 보다 명확하게 정의 가능
  • 불필요한 설계를 피하고 정확한 요구사항에 집중 가능

일반적인 개발 방식

1) 요구사항 분석

2) 설계 (디자인)

3) 개발

4) 테스트

5) 배포

요구사항이 처음부터 명확하지 않을 수 있기때문에 처음부터 완벽한 설계가 어려움
재설계를 통해 점진적으로 완벽한 설계로 나아가는데 이 과정에서 불필요한 코드가 남거나 중복 처리될 가능성이 있음
재사용 및 유지보수가 어려움

TDD 방식

1) 설계 (디자인)

2) 테스트

3) 개발

테스트 코드 작성 후 실제 코드 작성
설계에서 프로그래밍 목적과 무엇을 테스트 할 지 미리 정의해야 함
테스트 도중의 예외사항(버그, 수정사항) 등은 테스트 케이스에 추가하여 설계
이후 테스트에 통과한 코드만 개발 단계에서 실제 코드로 작성

이 작업을 반복하면서 버그가 줄어들고 코드가 간결해지며 테스트 케이스 작성으로 재설계의 시간 감소

장점 :: 기능별 철저한 모듈화, 재설계 및 디버깅 시간 단축, 추가 구현 용이
단점 :: 일반적인 개발에 비해 생산성 저하 (약 10~30%)

참조

[기술면접]TDD(Test-Driven-Development) 방법론에 대해서

0개의 댓글