본문 바로가기
공부/파이썬 Python

TDD - Test-Driven Development(테스트 주도 개발)이란

by 혼밥맨 2021. 12. 11.
반응형

TDD - Test-Driven Development이란

 

TDD의 정의

 

테스트 중심 개발(TDD: Test-Driven Development)은 소프트웨어가 완전히 개발되기 전에 테스트 케이스로 변환되는 소프트웨어 요구 사항에 의존하는 소프트웨어 개발 프로세스로, 모든 테스트 케이스에 대해 소프트웨어를 반복적으로 테스트함으로써 모든 소프트웨어 개발을 추적한다.

 

TDD의 창시자

Kent Beck

 

즉, TDD란 테스트 케이스부터 작성함으로써 예상 결과값을 정해두고 테스트를 패스하기 위한 프로그래밍을 하는 것.

 

Waterfall Development Lifecycle을 보면 테스트는 4번 째 혹은 5번 째에 위치한다.

Waterfall Development LIfecycle

 

하지만, TDD는 테스트 케이스를 가장 먼저 작성함으로써 결함을 최소화하겠다는 것이 목표다. 

 

TDD의 장점

1. TDD는 가장 빠른 피드백을 받을 수 있다. 원하는 결과가 나오지 않으면 테스트 케이스에서 걸려지기 때문이다.

2. 에러를 초기에 발견할 수 있기 때문에 결함이 줄고, 원하는 방향에 맞는 프로그래밍을 할 수 있다.

3. 코드의 복잡도가 낮아진다.

4. 유지보수 비용이 낮아진다.

 

TDD의 단점

1. 개발시간이 늘어난다.

2. 테스트 케이스 또한 수정을 많이 거쳐야하기 때문에 추후 수정 부분이 증가한다.

반응형

댓글