TDD- Test Driven Development

핫다리·2023년 2월 23일

CS

목록 보기
6/46

Test Driven Development의 약자로 테스트 주도 개발 이라고 한다.

반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.

애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First' 개념에 기반을 둔 단순한 설계를 중요시한다.

RED : 문제를 정의하는 것에 집중한다.
GREEN : 그 문제를 해결하는데 집중한다.
Refactor : 작성한 코드를 Clean Up 하는데 집중한다.

TDD는 어떤 상황에서 해야할까
1. 처음해보는 프로그램 주제

  • 나에 대한 불확실성이 높은 경우
  1. 고객의 요구조건이 바뀔 수 있는 프로젝트
  • 외부적인 불확실성이 높은 경우
  1. 개발하는 중에 코드를 많이 바꿔야 된다고 생각하는 경우
  2. 내가 개발하고 나서 이 코드를 누가 유지보수할지 모르는 경우
  • 외부적인 불확실성이 즉, 불확실성이 높을 때 TDD를 하면 된다.

TDD장점
보다 튼튼한 객체 지향적인 코드 생산
재설계 시간의 단축
디버깅 시간의 단축
테스트 문서의 대체 가능
추가 구현의 용이함

TDD 단점
생산성의 저하

  • TDD 방식의 개발 시간은 일반적인 개발 방식에 비해 대략 10~30% 정도로 늘어남.
profile
일단 만들고 본다

0개의 댓글